v106

OpenAPI 3.1.0raw.githubusercontent.com2026-08-02160524464.6 KB
Runs

List Runs

Returns durable run summaries from the backing store, including runs persisted before the current server boot. Supports per-status filtering and sorting for both list and kanban renderings. Archived runs are hidden by default; pass include_archived=true (or status=archived) to include them. Runs in the removing bucket are hidden unless explicitly requested via status=removing.

get/api/v1/runs

Query parameters

page[limit]integer

Maximum number of items to return per page.

page[offset]integer

Number of items to skip before returning results.

include_archivedboolean

Whether to include archived runs in the response. Defaults to false.

parent_idstring

Return only runs currently linked to this orchestration parent.

statusBoardColumn[]

Filter runs by status bucket. Repeatable. When omitted, runs in the removing bucket are hidden; pass status=removing to include them. Archived runs are hidden unless include_archived=true or status=archived is passed.

sort'created_at' | 'updated_at' | 'status' | 'elapsed' | 'repo' | 'title' | 'workflow' | 'changes' | 'size'

Field to sort by. Defaults to created_at.

direction'asc' | 'desc'

Sort direction. Defaults to desc.

Response

Paginated durable run summaries

Example response

{
  "data": [
    {
      "repository": {
        "name": "fabro-sh/fabro",
        "origin_url": "https://github.com/fabro-sh/fabro.git"
      },
      "lifecycle": {
        "error": {
          "message": "Stage 'apply-changes' exceeded maximum retries."
        }
      },
      "timing": {
        "wall_time_ms": 420000,
        "inference_time_ms": 120000,
        "tool_time_ms": 60000,
        "active_time_ms": 180000
      },
      "diff": {
        "files_changed": 42,
        "additions": 567,
        "deletions": 234
      },
      "pull_request": {
        "owner": "fabro-sh",
        "repo": "fabro",
        "number": 123,
        "html_url": "https://github.com/fabro-sh/fabro/pull/123"
      },
      "current_question": {
        "text": "Accept or push for another round?"
      }
    }
  ]
}