Offset pagination drifts when writers insert rows during a long browse session. Cursor pagination returns an opaque token in meta.nextCursor — pass it as ?cursor= on the next request.
Starter and above unlock cursor pagination alongside relationships and production base URL display settings.
Client pattern
Request page one with ?limit=20. Store meta.nextCursor. When the user scrolls or clicks Next, call the same route with ?limit=20&cursor=…. Stop when nextCursor is null or hasMore is false.
Do not mix page= with cursor= on the same request — prefer one style per list screen so QA has a single mental model.
When offset is still fine
Admin tables with tiny datasets and rare writes can stay on page/limit. Switch to cursor when demos include concurrent inserts or infinite scroll.
← All posts · Docs · Features · Start free