Update part
Updates a part. All fields optional; only supplied fields change. SKU and site are immutable. custom_fields is merged. Send only the fields you are changing: unknown keys are rejected with a 400, so a whole part read back from GET /v2/commander/parts/{part_id} cannot be posted back verbatim (it carries server-owned fields such as id, sku, on_hand and created_at).
Authorization
LuxorAPIKey Use your API key here.
In: header
Path Parameters
Part id (uuid).
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v2/commander/parts/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "sku": "HB-0001", "name": "S21 Pro Hashboard", "category": "hashboard", "site_id": "b0a5fad8-1234-5678-9abc-def012345678", "on_hand": 40, "reserved": 5, "available": 35, "supplier": "Acme Distributors", "unit_cost": "120.00", "threshold_method": "manual", "target_qty": 20, "reorder_qty": 8, "target_pct": null, "reorder_pct": null, "stock_status": "healthy", "fleet_demand": 0, "use_per_week": 2.5, "stockout_days": 98, "custom_fields": { "po_number": "PO-558" }, "archived_at": null, "created_at": "2025-09-02T09:30:00Z", "updated_at": "2026-04-20T10:15:00Z", "url": "/v2/commander/parts/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}{ "statusCode": 400, "code": "FST_ERR_VALIDATION", "error": "Bad Request", "message": "body/end_date Required"}{ "statusCode": 403, "code": "7", "error": "Forbidden", "message": "[permission_denied] site_id does not belong to this workspace"}{ "statusCode": 404, "code": "5", "error": "Not Found", "message": "[not_found] agent not found"}Create part
Creates one part per site in `site_ids` — a part belongs to exactly one site, so stocking a part at three sites creates three parts. Each is assigned a server-generated SKU (e.g. HB-0001); SKUs cannot be supplied. Returns every created part. Parts are always created with an on-hand quantity of 0: there is no opening-quantity field, so seed stock with a follow-up `POST /v2/commander/parts/{part_id}/stock/adjust` for each created part.
Bulk update parts
Applies the same `category`, `supplier`, and/or `threshold` change to many parts by id.