The shop's stock log, newest first
The shop's stock log, newest first: every reservation, sale, restock and manual adjustment with the on-hand and reserved counts it left behind and the actor who caused it.
/v1/clients/{clientId}/inventory/movementsThe shop's stock log, newest first: every reservation, sale, restock and manual adjustment with the on-hand and reserved counts it left behind and the actor who caused it. Optional variant_id narrows it. Needs authority over the client — membership of its organization, an API key bound to this client, or tenant staff holding clients:manage; anything else is refused not_client_member or insufficient_scope (403), and an unknown client client_not_found (404). Cursor paged: pass the last id you saw as cursor; limit is clamped to 1-100 and defaults to 50.
Authorization
bearerAuth A tenant API key (sk_{env}_{id}_{secret}), a wallet user token, or an IdP access token. Which principal the credential resolves to decides the scopes it carries; see the authentication guide.
In: header
Path Parameters
uuidQuery Parameters
uuidLast seen id from the previous page. The listing resumes after that row, so an id that belongs to no row in the listing is refused invalid_request (400) rather than answered with an empty page.
uuid1 <= value <= 10050Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/clients/497f6eca-6276-4993-bfeb-53cbbbba6f08/inventory/movements"[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "variant_id": "8a2d415d-59aa-4132-bef3-011f97c4a0f6", "kind": "adjustment", "quantity": 0, "on_hand_after": 0, "reserved_after": 0, "reason": "string", "order_id": "93101167-9065-4b9c-b98b-5d789a3ed9fe", "actor_type": "string", "actor_id": "string", "created_at": "2019-08-24T14:15:22Z" }]Change a tracked variant's on-hand count, with a reason
Changes a tracked variant's on-hand count, either by delta or to an absolute set_to, with a reason, and answers with the variant and the movement row it wrote.
The shop's default markup and rounding
The shop's default markup and rounding rule, which is what variants priced cost_plus derive their price from.