Luxor PlatformAPI DocumentationCommanderParts
Get part stock movements
Returns a paginated history of stock movements for a part. Every movement is at the part's own site.
Authorization
LuxorAPIKey authorization<token>
Use your API key here.
In: header
Path Parameters
part_id*string
Part id (uuid).
Format
uuidQuery Parameters
page_number?integer
Range
1 <= valueDefault
1page_size?integer
Range
1 <= value <= 5000Default
25Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/commander/parts/497f6eca-6276-4993-bfeb-53cbbbba6f08/stock/movements"{ "movements": [ { "id": "c1a2b3d4-e5f6-7890-abcd-ef1234567890", "part_id": "28c660ae-a12c-4da7-9243-03385b104cf1", "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811", "delta": -2, "reason": "correction", "ticket_id": null, "note": "string", "changed_by": "string", "created_at": "2026-04-20T10:15:00Z" } ], "pagination": { "page_number": 1, "page_size": 1, "item_count": 0, "previous_page_url": null, "next_page_url": null }}{ "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"}Adjust part stock
Applies a signed stock delta to a part with a reason (restock, correction, damaged, other). The site is taken from the part — a part belongs to exactly one site — so `site_id` is deprecated: it is still accepted for older integrations, but ignored. Returns the updated part.
Get part stock series
Returns a monthly restocked/consumed/total-stock time series for a part, at the part's own site.