Skip to content

Pagination

The draft uses keyset pagination. limit defaults to 50 and is bounded to 1–200. The response contains items, nextCursor and a UTC asOf. There is no total count. nextCursor: null means the collection is complete.

  1. Request the first page with the documented filters.
  2. Pass the returned nextCursor as cursor on the next request.
  3. Repeat the same limit and filters until the cursor is null.

Treat the cursor as opaque. Never decode, edit, concatenate or share it between clients, users or companies. It binds tenant/company, principal and authorization version, filters, stable sort and snapshot. Current authority is checked again for every page.

The proposed snapshot TTL is 15 minutes. 409 CURSOR_EXPIRED requires a fresh traversal with the original filters; avoid double-processing previously seen resource IDs. A tampered cursor or changed filters returns 400 INVALID_CURSOR.

Companies and account definitions sort by (code, id). Periods sort by (startDate, periodNumber, id). Period queries require inclusive from and to dates, to >= from, spanning at most 366 days, and return overlapping periods.

No arbitrary sort, extra query fields, raw expressions or broad expansion is supported. A revoked grant cannot continue a snapshot.