# Pagination

> Offset catalog pages, keyset cursors and sync cursors.

Source: https://docs.tune.toys/developers/pagination/ (updated 2026-11-01)

Three styles exist; each route's OpenAPI entry says which it uses.

| Style         | Used by                                  | How                                                                                                     |
| ------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Offset        | `GET /v1/catalog`                        | `offset=0`, `q`, `category`; 24 per page. All query terms match before paging.                          |
| Keyset cursor | `GET /v1/posts`, `GET /v1/notifications` | Pass the opaque `nextCursor` as `cursor` until it is absent. Do not parse or build cursors.             |
| Sync cursor   | `GET /v1/library/sync?after=0`           | Up to 100 ordered changes, a `cursor` and `hasMore`. Persist the cursor only after you commit the page. |

Stop when there is no `nextCursor` or `hasMore` is false. Page sizes are bounded by the server and may change before 1.0.
