API Reference
Pagination
Cursor-based list pagination.
Overview
List endpoints return cursor-based pagination for stable iteration over large collections (runs, projects, results, agents). Cursor pagination avoids skipped or duplicate records when data changes during iteration.
Use limit (default 20, max 100) and starting_after parameters. Response includes has_more boolean and next_cursor string for the subsequent page.
Who should read this
- QA engineers, SREs, platform teams, and developers operating Zof Console and APIs.
When to use this workflow
- Onboarding new team members to Zof terminology and workflows
- Authoring internal runbooks aligned with Console labels
- Designing CI/CD or webhook integrations against documented behavior
Step-by-step procedure
Initial request
GET /v1/runs?limit=50 returns first page with has_more and next_cursor.
Next page
GET /v1/runs?limit=50&starting_after=CURSOR from previous next_cursor.
Iterate until complete
Stop when has_more is false.
Do not assume fixed page sizes if records are created during iteration.
Key concepts
- starting_after
- Opaque cursor from next_cursor of previous page; not a page number.
- has_more
- When true, additional pages exist; fetch with next_cursor value.
- limit
- Page size cap; API may return fewer if collection ends.
Best practices
- Use SDK listAuto iterators instead of manual cursor loops when available
- Do not parallel-fetch pages; cursors assume sequential order
- Persist exported data incrementally for large backfills
Paginated response
{
"data": [ { "id": "run_abc", "status": "passed" } ],
"has_more": true,
"next_cursor": "run_xyz"
}Was this page helpful?