Skip to main content
Every /v1 list returns the same envelope, whether it is paginated or not:

Which lists are paginated

Lists that are not paginated return every item in a single page with "hasMore": false and ignore limit and cursor. Write the same loop for every list anyway: if one of them becomes paginated later, your code keeps working without changes.

Query parameters

integer
default:"50"
How many items to return, from 1 to 200. Only digits are accepted. A value of 0, a negative number, a decimal, text or a number above 200 is refused with 400 and the code common.invalid_request.
string
The nextCursor of the previous page, copied exactly. A cursor that cannot be read is refused with 400 and the code common.invalid_request; the server never silently restarts from the first page.
string
On GET /v1/orders and GET /v1/fulfillments only. It must be one of the status values listed for that operation in the Endpoints group (for example pending_approval for orders or dispatched for fulfillments). Any other value is refused with 400 and the code common.invalid_request.
string
On GET /v1/inventory/balances only: keep the boxes of one catalog item. An id that matches nothing returns an empty page.
string
On GET /v1/inventory/balances only: keep the boxes of one warehouse. An id that matches nothing returns an empty page.

Walk every page

Last page

Cursor rules

  • The cursor is opaque. Treat it as a token. Do not decode it, build it or change it; its format can change without notice.
  • A cursor marks a position, not a page number. The next page starts right after the last item you received. Items created while you walk are neither skipped nor repeated: new orders and fulfillments appear at the end, because those lists run oldest first.
  • Send the same filters on every page. The cursor stores only the position. If you change status, catalogItemId or warehouseId halfway, the next page applies the new filters from that position.
  • Filters are applied on every request. If an order changes status while you walk GET /v1/orders?status=approved, it can leave the filter before you reach it.
  • Use a cursor only with the operation that issued it. A cursor from one list is not valid on another.
  • Use limit=200 for full scans. Fewer, larger pages use less of your rate limit.

Errors