GET endpoint that returns a collection paginates with opaque cursors. There are no page numbers, no offsets, no totals — cursors are forward-only pointers into the result set.
Parameters
| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
limit | integer | 20 | 100 | Items per page. See Limit validation for how out-of-range values are handled. |
cursor | string | — | — | Opaque cursor from a previous response. Omit to start from the beginning. |
Limit validation
Anton currently has two limit-handling paths across list endpoints. Both cap the page at 100 items, but they differ on how an overflow is surfaced:| Behavior | Endpoints | Response to limit=200 |
|---|---|---|
| Strict | Newer list endpoints (for example, beneficiaries, instruments, webhook subscriptions, webhook events). | 400 invalid_limit — the request is rejected outright. |
| Silent cap | Older list endpoints (for example, payouts). | Request succeeds; server silently applies the 100-item ceiling (and falls back to the default of 20 when the input cannot be parsed). |
limit values in the 1..100 range. Do not rely on the silent-cap behavior — Anton may migrate all endpoints to strict validation in a future release, at which point over-limit requests will uniformly return 400 invalid_limit.
Response envelope
| Field | Description |
|---|---|
data | Array of results for this page. |
has_more | true if more results exist beyond this page. |
next_cursor | Cursor to pass in the next request. Present only when has_more is true. |
next_cursor and sets has_more to false:
Iterating through pages
Rules
Use the maximum page size
Use the maximum page size
Set
limit=100 to minimize round trips when fetching large result sets.Stop when has_more is false
Stop when has_more is false
has_more is the only correct termination signal. Don’t compare len(data) to limit — the last page may be full.Cursors are opaque
Cursors are opaque
Treat cursor values as opaque strings. Do not parse, modify, or construct them. Always pass the exact
next_cursor value returned by the API.Cursors don't expire
Cursors don't expire
Cursor values remain valid indefinitely. You can store a cursor and resume pagination later — useful for long-running exports.