Every list endpoint caps at 1000 rows per page. When more rows exist, the response includes aDocumentation Index
Fetch the complete documentation index at: https://dev.1st.app/llms.txt
Use this file to discover all available pages before exploring further.
next_cursor field. Pass it as
the cursor query parameter on your next request.
The shape
next_cursor is null, you’ve reached the end.
Curl example
Python loop
Why cursors and not page=2?
Cursors are stable against writes. Withpage=2&size=1000, a row inserted
between your first and second page would shift everything down — you’d
either see one row twice or miss a row entirely. Cursors anchor on the LAST
row of the previous page, so new rows don’t change anything you’ve already
seen.
Cursor scoping
Cursors are tied to the team the issuing API key was minted for. Using a cursor under a different team’s key returnscursor_team_mismatch.
Cursors are opaque base64 — don’t try to decode and modify them. They may
change shape across releases. If you need to “skip to row 5000”, that’s not
supported — walk from the start.
Cursor errors
| Code | What it means | What to do |
|---|---|---|
cursor_invalid | Cursor is malformed or expired. | Drop the cursor and start over. |
cursor_team_mismatch | Cursor was issued for another team. | Use the cursor from this team’s previous response. |