Skip to main content

Overview

Every list endpoint in the Endstate API — GET /v1/units, GET /v1/collections, and GET /v1/chips — uses cursor-based pagination. You receive a page of results and a cursor you can use to fetch the next page. This approach is stable under concurrent writes: inserting a new record never causes you to see a duplicate or skip an item mid-iteration.

Request parameters

limit
integer
The maximum number of records to return. Defaults to 50. Maximum is 100.
cursor
string
An opaque cursor pointing to the start of the next page. Omit this parameter on the first request. On subsequent requests, pass the next_cursor value from the previous response.

Response envelope

Every list response wraps results in a consistent envelope. The resource key matches the endpoint — units, collections, or chips. (Unit objects are trimmed throughout this page for brevity; see Units for the full shape.)
pagination.limit
integer
The limit that was applied to this page.
pagination.has_more
boolean
true if there are additional records beyond this page. false when you have reached the last page.
pagination.next_cursor
string | null
The cursor to pass as cursor on the next request. null when has_more is false.

How to page through results

When has_more is true, take the next_cursor value and pass it as the cursor query parameter on your next request. Repeat until has_more is false.
Cursors are opaque strings. Never parse, decode, or construct them — their format may change without notice. Treat each cursor as an opaque, indivisible value.

Worked example

The following two requests fetch the first page of units and then the second page. First request — no cursor
Second request — pass next_cursor as cursor
has_more is false and next_cursor is null, so this is the last page.

Combining filters with pagination

Some list endpoints accept exact-match filters that narrow the result set before pagination is applied: Pass filters alongside limit and cursor as additional query parameters:
When filtering by external_id on units or collections, the API returns at most one result because external IDs are unique within your organization. You can still use the standard pagination envelope — has_more will be false.

Next steps

Errors

Understand the error envelope and how to branch on stable error codes.

API reference

Full request and response schemas for every endpoint.