---
title: "Create new part"
method: POST
path: "/parts"
tags: ["Parts"]
---

# Create new part

`POST /parts`

## Query parameters

- `skipWebhook` boolean

## Headers

- `x-organization-id` integer

## Request body

- object
  - `name` string, required
  - `description` string, nullable
  - `area` string, nullable — Area of the part. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent.
  - `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.
  - `minimumQuantity` integer — Total minimum quantity before you should restock. Deprecated: Use new field inside `locations`. Will cause error if both fields are sent.
  - `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.
  - `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
  - `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`.

## Response `201`

Successfully created part

- object
  - `id` integer, required — Global ID of the part

## Other responses

- `400` — OrganizationId was not provided
- `401` — Invalid token
- `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)
