List Orders
GET/api/storefront/instances/:id/orders
Every order the store has that SKU.io has mirrored, filtered, sorted and paginated. Archived orders are hidden unless filter[archived] says otherwise.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Each row carries the store's own facts (status, payment, totals, customer, addresses, shipping method), the link to the SKU.io sales order it became (sales_order_id, sales_order_route, sales_order, sku_sales_order), and four fields worth knowing:
is_importable— whether this order can still become a SKU sales order at all.error_log(same value assku_order_error) — why the last creation attempt failed, or null.sku_order_hold_reason— set only while the connection's "require mapped products" setting is on and this importable, unarchived, not-yet-imported order still has unmapped line SKUs; it names them.unmapped_items_count— how many of its lines matched no product;items_countis the total.last_synced_at— when the order was last confirmed against the store (the completion stamp of the last import run), not when the row was last written.
Line objects on this list carry only the line identity (id, sku, sku_product_id); the other line fields come back null here. Fetch a single order for the full lines, shipments and raw payload.
Operator filters. Beyond the quick filters above, each column accepts filter[<column>.<operator>]:
- Numeric (
id,total): is, is_not, is_one_of, is_not_one_of, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty. - Text (
order_number,external_id,external_reference,customer_name,customer_email,shipping_method_name,status,payment_status,currency_code): contains, does_not_contain, is, is_not, is_one_of, is_not_one_of, starts_with, does_not_start_with, ends_with, does_not_end_with, is_empty, is_not_empty. - Date/time (
placed_at,store_updated_at,paid_at,cancelled_at,created_at,updated_at): is, is_not, before, after, on_or_before, on_or_after, between, is_empty, is_not_empty, today, yesterday, tomorrow, past_week, past_month, past_year, next_week, next_month, next_year, days_ago, days_from_now, past_days, next_days.
status, payment_status and currency_code expose only the operator forms here — their bare keys are the comma-separated quick filters documented above.
Authentication: Bearer token (session or PAT).
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.