---
title: "Update part"
method: PATCH
path: "/parts/{id}"
tags: ["Parts"]
---

# Update part

`PATCH /parts/{id}`

## Path parameters

- `id` integer, required

## Query parameters

- `skipWebhook` boolean

## Request body

- object
  - `name` string
  - `description` string, nullable
  - `area` string, nullable — Area of the part. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent. See https://help.getmaintainx.com/multi-location-parts#integration-issues-with-multi-location-parts for more information.
  - `unitCost` integer, nullable — Cost in cents. For example, for $1.20, put 120.
  - `availableQuantity` integer — Total quantity currently in stock. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent. See https://help.getmaintainx.com/multi-location-parts#integration-issues-with-multi-location-parts for more information.
  - `minimumQuantity` integer — Total minimum quantity before you should restock. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent. See https://help.getmaintainx.com/multi-location-parts#integration-issues-with-multi-location-parts for more information.
  - `barcode` string, nullable — String encoded barcode
  - `locationId` integer, nullable — ID of the location where the part is located. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent. See https://help.getmaintainx.com/multi-location-parts#integration-issues-with-multi-location-parts for more information.
  - `partTypes` string[] — List of part types
  - `assetIds` integer[] — List of asset IDs
  - `teamIds` integer[] — List of team IDs in charge of the part
  - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Part Number")
  - `vendors` object[] — List of vendors of the part
    - `vendorId` integer — Id of the vendor
    - `partNumber` string — Part number given to the part by this vendor
  - `externalId` string, nullable — External ID for this part, unique per organization.
  - `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.
  - `vendorIds` integer[] — List of vendor IDs. Deprecated: Use the `vendorId` field inside `vendors`.
  - `createdAt` string, date-time — Date & time at which the part was created
  - `updatedAt` string, date-time — Date & time at which the part was last updated. This doesn't include comments
  - `deletedAt` string, date-time, nullable — Date at which the part was deleted
  - `locations` object — List of locations to add, update or remove.
    - `addedUpdated` object[] — List of locations to add or update
      - `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
    - `removedLocationIds` integer[] — List of location IDs to remove from the part

## Response `200`

Successfully edited part

- object
  - `part` object, required
    - `id` integer, required — Global ID of the part
    - `name` string, required
    - `description` string, nullable
    - `area` string, nullable — Area of the part. Deprecated: for Parts with multiple locations, use the new field in `locations`
    - `unitCost` integer, nullable — Cost in cents. For example, for $1.20, put 120.
    - `availableQuantity` integer — Total quantity currently in stock. If your plan includes multi-location parts, this is the quantity across all part locations. Deprecated: Use `inStockQuantity` instead.
    - `inStockQuantity` integer — Total quantity currently in stock. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `minimumQuantity` integer — Total minimum quantity before you should restock. If your plan includes multi-location parts, this is the quantity across all part locations.
    - `barcode` string, nullable — String encoded barcode
    - `locationId` integer, nullable — ID of the location where the part is located. Deprecated: for Parts with multiple locations, use the new field in `locations`
    - `locations` object[] — 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
    - `partTypes` string[] — List of part types
    - `assetIds` integer[] — List of asset IDs
    - `teamIds` integer[] — List of team IDs in charge of the part
    - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Part Number")
    - `vendors` object[] — List of vendors of the part
      - `vendorId` integer — Id of the vendor
      - `partNumber` string — Part number given to the part by this vendor
    - `externalId` string, nullable — External ID for this part, unique per organization.
    - `orderedQuantity` integer — 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 — 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.
    - `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.
    - `vendorIds` integer[] — List of vendor IDs. Deprecated: Use the `vendorId` field inside `vendors`.
    - `thumbnail` object, nullable
      - `id` number, required — Global ID of the attachment
      - `mimeType` string, required — MIME type of the file
      - `fileName` string, required — Attachment's file name
      - `url` string, required — Url of the file. Valid for 60 minutes.
      - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
      - `width` number, nullable — Width if the file is an image
      - `height` number, nullable — Height if the file is an image
    - `attachments` object[] — List of attachments linked to the part
      - `id` number, required — Global ID of the attachment
      - `mimeType` string, required — MIME type of the file
      - `fileName` string, required — Attachment's file name
      - `url` string, required — Url of the file. Valid for 60 minutes.
      - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
      - `width` number, nullable — Width if the file is an image
      - `height` number, nullable — Height if the file is an image
    - `createdAt` string, date-time — Date & time at which the part was created
    - `updatedAt` string, date-time — Date & time at which the part was last updated. This doesn't include comments
    - `deletedAt` string, date-time, nullable — Date at which the part was deleted

## Other responses

- `400` — OrganizationId was not provided
- `401` — Invalid token
- `404` — Could not find the specified part.
- `409` — Conflict with existing part

---

[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)
