---
title: "List parts"
method: GET
path: "/parts"
tags: ["Parts"]
---

# List parts

`GET /parts`

Endpoint used to list part resources

## Query parameters

- `cursor` string — Last pagination reference
- `limit` integer — max number of Parts returned
- `partNumber` string[] — Will only show parts that have a vendor with this part number associated to them.
- `updatedAt[gte]` string, date-time — Return records whose updatedAt is at or after this ISO 8601 date-time (UTC).
- `updatedAt[lte]` string, date-time — Return records whose updatedAt is at or before this ISO 8601 date-time (UTC).
- `createdAt[gte]` string, date-time — Return records whose createdAt is at or after this ISO 8601 date-time (UTC).
- `createdAt[lte]` string, date-time — Return records whose createdAt is at or before this ISO 8601 date-time (UTC).
- `customFieldName` string[] — Filter parts by custom field value. Your query parameter should be your custom field name. (ie: To filter by a custom field named "Industry" with the value "Construction", you would do this "/parts?Industry=Construction"). <br><br>Adding multiple instance of the same custom field act as an <code>OR</code> and adding a different custom field act as an <code>AND</code>. (ie: To filter by a custom field named <code>Industry</code> with the value <code>Construction</code> OR <code>Transportation</code> AND the custom field <code>Manufacturer</code> with the value <code>ACME</code>, you would do this <code>/parts?Industry=Construction&Industry=Transportation&Manufacturer=ACME</code>). <br><br>If your custom field label is the same as a reserved query parameter such as <code>limit</code>, <code>sort</code>, <code>expand</code>, etc, you can add <code>__c</code> to your custom field filtering (ie: To filter by a custom field named <code>limit</code> with the value <code>ten</code>, you would do this <code>/parts?limit__c=ten</code>). <br><br>Note that your custom field needs to be created beforehand. Only number and single line text custom field types are supported.
- `sort` 'id' | 'createdAt' | 'updatedAt' | '-id' | '-createdAt' | '-updatedAt' — Attribute on which to sort the list. (for descending order, prefix attribute with '-').
- `expand` string[] — To expand multiple fields: `expand=extra_fields&expand=vendors`

## Headers

- `x-organization-id` integer
- `x-organization-ids` string

## Response `200`

Successfully fetched Parts list

- object
  - `parts` object[], required
    - `id` integer, required — Global ID of the part
    - `name` string, required
    - `description` string, nullable, required
    - `barcode` string, nullable, required — String encoded barcode
    - `locationId` integer, nullable, required — ID of the location where the part is located. Deprecated: for Parts with multiple locations, use the new field in `locations`
    - `locations` object[], required — Detailed list of locations where the part is stored, including properties such as available quantity, minimum quantity, reserved quantity, and area within each location.
      - `locationId` integer, required — ID of the location where the part is located
      - `availableQuantity` integer — Quantity currently in stock
      - `minimumQuantity` integer, nullable — Minimum quantity before you should restock
      - `maximumQuantity` integer, nullable — Maximum quantity you want to stock. Must be greater than or equal to minimumQuantity.
      - `area` string, nullable
      - `reservedQuantity` integer, nullable — Quantity currently reserved for work orders. Deprecated: Use `committedQuantities.reserved` instead.
      - `committedQuantities` object — Quantities of the part currently committed to work orders, broken down by stage.
        - `kitted` integer — Quantity of parts that have been kitted for work orders
        - `reserved` integer — Quantity of parts reserved for work orders
        - `staged` integer — Quantity of parts that have been staged for work orders
      - `assignedQuantity` integer — Quantity currently assigned to work orders at this location
    - `area` string, nullable, required — Area of the part. Deprecated: for Parts with multiple locations, use the new field in `locations`
    - `unitCost` integer, nullable, required — Cost in cents. For example, for $1.20, put 120.
    - `availableQuantity` integer, required — Total quantity currently in stock. If your plan includes multi-location parts, this is the quantity across all part locations. Deprecated: Use `inStockQuantity` instead.
    - `minimumQuantity` integer, required — Total minimum quantity before you should restock. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `orderedQuantity` integer, required — Total quantity currently on order from purchase orders. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `reservedQuantity` integer, required — Total quantity currently reserved for work orders. If your plan includes multi-location parts, this is the quantity across all part locations. Deprecated: Use `committedQuantities.reserved` instead.
    - `partTypes` string[], required — List of part types
    - `createdAt` string, date-time, required — Date & time at which the part was created
    - `updatedAt` string, date-time, required — Date & time at which the part was last updated. This doesn't include comments
    - `inStockQuantity` integer — Total quantity currently in stock. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `committedQuantities` object — Quantities of the part currently committed to work orders, broken down by stage.
      - `kitted` integer — Quantity of parts that have been kitted for work orders
      - `reserved` integer — Quantity of parts reserved for work orders
      - `staged` integer — Quantity of parts that have been staged for work orders
    - `assignedQuantity` integer — Total quantity currently assigned to work orders across all stages.
    - `maximumQuantity` integer, nullable — Total maximum quantity to keep in stock. Null when no part location has a max set. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `externalId` string, nullable — External ID for this part, unique per organization.
    - `organizationId` integer — ID of the organization that owns this resource
    - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Part Number") (expand with query parameter)
    - `vendors` object[] — List of vendors of the part (expand with query parameter)
      - `vendorId` integer — Id of the vendor
      - `partNumber` string — Part number given to the part by this vendor
    - `assetIds` integer[] — List of asset IDs (expand with query parameter)
  - `nextCursor` string, nullable, required — The cursor to retrieve the next page of Parts.
  - `nextPageUrl` string, nullable, required — Path with query parameters that can be used to retrieve the next page of Parts.

## Other responses

- `400` — Error with query
- `401` — Invalid token

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
