Pagination
Keyset cursors, newest first.
List endpoints are keyset paginated and ordered newest first.
GET /v1/addresses?limit=50
GET /v1/addresses?limit=50&cursor=eyJ0IjoiMjAyNi0wOS0...{
"data": [ /* ... */ ],
"next_cursor": "eyJ0IjoiMjAyNi0wOS0..."
}Three rules
next_cursor appears only on a full page. Its absence is how you know you have
reached the end. There is no final request that comes back empty, so do not write a loop
that expects one.
Cursors are opaque. Do not construct, parse or persist meaning from one. The encoding
is (created_at, id) today and that is an implementation detail, not a promise.
A malformed cursor is a 400, never a silent reset to page one. This is deliberate.
On a paginated sweep, silently restarting means quietly re-processing everything from the
top, and nothing in the response would tell you it happened.
Limits
limit accepts 1-100 and defaults to 50. A value above 100 is clamped, not rejected -
asking for 500 gets you 100 and a success, so do not infer your page size from what you
requested. Read it from the response.