Overview
All list endpoints use cursor-based pagination. Cursors are opaque strings — do not attempt to parse or construct them. Simply pass the cursor from the previous response to get the next page.Request Parameters
| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
limit | integer | 20 | 100 | Number of items to return per page |
cursor | string | — | — | Cursor from a previous response |
Response Shape
Paginated responses include apagination object alongside the data array:
| Field | Type | Description |
|---|---|---|
pagination.cursor | string | null | Pass this as the cursor param to get the next page. null when there are no more results. |
pagination.hasMore | boolean | true if more results exist beyond this page. |
pagination.total | number | (Optional) Total count of items, included when available. |
Paginating Through Results
First Request
Fetch the first page without a cursor:Subsequent Requests
Pass thecursor from the previous response:
Stop When Done
Stop paginating whenpagination.hasMore is false or pagination.cursor is null.
Full Example
Fetch all quizzes with pagination in JavaScript:Tips
- Don’t cache cursors long-term. Cursors encode a point-in-time snapshot. If the underlying data changes significantly, a stale cursor may skip or duplicate items.
- Use the smallest
limityou need. Smaller pages mean faster responses and lower memory usage on both sides. - Cursors are opaque. They are base64url-encoded and their internal structure may change without notice. Never parse, modify, or construct cursors manually.