Guide
Pagination
List endpoints page with an opaque cursor. You never compute offsets. You follow nextCursor until it is null. Cursors are stable under concurrent writes, so you never skip or double-read a row.
The list envelope
A list response wraps its rows in items and returns a nextCursor. When nextCursor is null you have reached the end.
json
{ "items": [ { "id": "01J8ME9AZ2K3W7X4V5T6R7Q8S9", "amountCents": "-4250" }, { "id": "01J8ME9B1Q2W3E4R5T6Y7V8H9J", "amountCents": "-1899" } ], "nextCursor": "eyJjIjoiMjAyNi0wNi0yMlQxODowNDoxMS4xMjM0NTZaIiwiaSI6IjAxSjhNRTlCMVEyVzNFNFI1VDZZN1Y4SDlKIn0"}Paging through everything
Pass the previous nextCursor as the cursor query parameter to fetch the next page. Tune page size with limit (capped server-side).
bash
curl -H "Authorization: Bearer vokse_sk_…" \ "https://api.vokse.ai/households/current/transactions?limit=100"bash
# pass the previous nextCursorcurl -H "Authorization: Bearer vokse_sk_…" \ "https://api.vokse.ai/households/current/transactions?limit=100&cursor=eyJjIjoiMjAyNi0wNi0yMlQxODowNDoxMS4xMjM0NTZaIiwiaSI6IjAxSjhNRTlCMVEyVzNFNFI1VDZZN1Y4SDlKIn0"Good to know
- Cursors are opaque. Do not parse or construct them yourself.
- A cursor stays valid even as new rows are inserted; you will not skip rows.
- limit is an upper bound; the server may return fewer rows than requested.