Luxor PlatformAPI DocumentationCommanderParts

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

PATCH
/v2/commander/parts/{part_id}

Authorization

LuxorAPIKey
authorization<token>

Use your API key here.

In: header

Path Parameters

part_id*string

Part id (uuid).

Formatuuid

Request 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"}