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 lastupdatedAt 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.
