List your orders
Cursor paginated and filterable. The filters are the same ones the dashboard's own table uses — one shared query builder — so a filtered list here and a filtered table there can never disagree, and no filter can widen what the key is allowed to see.
The list is deliberately lean. For every parcel, the artwork and the proof photo, read one order with GET /orders/{id}.
Request
- Base URL: https://0.0.0.0:3000/api/v1
- URL: https://0.0.0.0:3000/api/v1/orders
- Auth: API key in header x-api-key
Query parameters
Continue from a previous page — pass the next_cursor you were given.
Orders per page, 1–100. Defaults to 50.
Comma-separated fulfilment statuses. Unknown values are ignored rather than erroring.
Comma-separated hold reasons: DESIGN_PROBLEM, WRONG_LABEL, OUT_OF_STOCK, OTHER. Only an order currently ON_HOLD carries one, so no status is needed beside it. Unknown values are ignored.
Comma-separated shop labels, matched verbatim as they were imported.
Your own order id, matched as a PREFIX. 1047-ETSY-9F2 finds that row; it also finds every -1, -2 row a batch split it into.
true or false only. Any other value is treated as no filter at all.
Comma-separated warehouse ids.
ISO-8601. Orders placed at or after this moment.
ISO-8601. Orders placed at or before this moment.
ISO-8601. Only orders changed after this moment, on our clock: the order itself, a new or changed shipment (label, tracking number), or an address edit. Each order carries changed_at; send the largest value you saw as the next updated_after, minus a few minutes of overlap, and de-duplicate on id.
Response
A page of orders. next_cursor is null on the last page.
Changes
No recorded changes to this operation across all 1 revision of this API.