Overview
List endpoints in the Arcus API use cursor-based pagination: you ask for a page withlimit, and you ask for the next page by passing the ID of the last record you received as starting_after. Unlike offset pagination (?page=3), cursor pagination is stable: inserting or deleting records between pages does not cause items to be skipped or duplicated.
The examples below use GET /v1/orders. By default that endpoint lists only quotes, sales orders, and invoices; pass document_type to page through returns, purchase orders, or late-fee invoices instead.
List response envelope
A list endpoint returns this envelope:
Stop paging when
has_more is false. Do not rely on a total count to decide when you are done.
Parameters
Paginating forward
Paginating backward
On list endpoints that acceptending_before, pass it instead of starting_after to get the records before a known ID. Check the endpoint’s reference page; where it is not listed, page forward only.
SDK usage: auto-pagination
All SDKs support automatic page iteration:Filtering and sorting
Most list endpoints support additional query parameters for filtering:GET /v1/orders returns the newest orders first and filters by document_type, account_id, order_status, payment_status, created_after, and created_before. Filter parameters vary by resource. See each endpoint’s reference page for the full list.
Notes on performance
- Use the largest
limitthe endpoint allows when bulk-fetching to minimize round trips - Cursors are stable: you can safely resume a paginated scan after an interruption by restarting from the last ID you successfully processed

