Gyvar docs

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.

On this page