Pagination
Traverse stable result sets with opaque, signed keyset cursors.
Cursor contract
| Property | Behaviour |
|---|---|
| Default page size | 20 resources |
| Maximum page size | 100 resources |
| Lifetime | 24 hours |
| Filter changes | Rejected explicitly |
| Page-size changes | Allowed |
| Tampering | Rejected explicitly |
Pagination loop
- Send the initial filters and
limit. - Read
has_moreandnext_cursor. - Send the same filters with that cursor.
- Stop when
has_moreis false.
Official SDK iterators enforce the same loop and stop on a repeated cursor.
Treat cursors as opaque
Do not decode, persist beyond their lifetime, modify or reuse them with another operation or channel.