Pagination
Cursor-based, opaque tokens. Forward walking. has_more_page ends the walk.
Walking a list
Make an initial request to a list endpoint. The response's page_context tells you whether more pages exist and where to resume:
GET /api/public/v1/invoices?per_page=100
{
"code": 0,
"invoices": [ … 100 rows … ],
"page_context": {
"per_page": 100,
"has_more_page": true,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNS0xMlQwODozMDoxNyIsImlkIjoiaW52XzkyOSJ9"
}
}To get the next page, pass that cursor back:
GET /api/public/v1/invoices?per_page=100&cursor=eyJjcmVhdGVkX2F0…Keep walking until has_more_page is false.
Per-page limits
- Default:
50 - Maximum:
200
Cursor opacity
Cursors are base64-encoded keyset pointers (created_at + id). Do not parse or construct them on the client — only pass back what the server sent. Cursors are stable across the page they were issued for; if your data set changes mid-walk, rows added at the top of the order won't appear in subsequent pages of the current walk.