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?

Pagination | Zof AI Documentation