Get part
Returns a single part including its site, that site's stock, and derived stock health.
Authorization
LuxorAPIKey Use your API key here.
In: header
Path Parameters
Part id (uuid).
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/commander/parts/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "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"}Get parts
Returns a paginated list of parts with search and sorting. Each part belongs to exactly one site and carries that site's stock, so a part stocked at several sites appears as one entry per site. Narrow to one site with `site_id`. For nested AND/OR logic, pass the `filter` query parameter as URL-encoded JSON; when supplied, it supersedes the flat filter params (category, supplier).
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.