Skip to main content
List endpoints return a page plus an opaque cursor:
Pass nextCursor back verbatim as cursor to fetch the next page, and keep going while hasMore is true. Cursors are keyset-based on (updatedAt, id), so rows changing mid-walk are never silently skipped or repeated — unlike offset pagination. limit defaults to 50 and is capped at 100.

Incremental sync

Records are returned oldest-change-first, so the last updatedAt you saw is a durable sync watermark:
updatedSince is an RFC 3339 timestamp with an offset. Combined with the cursor, a client can resume from where it stopped indefinitely instead of re-reading the whole roster.

Filtering

List endpoints take filters alongside the cursor — isActive on members, status on payments and reimbursements, memberId on payments. Filters are applied before pagination, so hasMore and the cursor describe the filtered set. A filter narrows the walk but not the cost: see Rate limits for what a page actually spends.