Skip to main content
GET
/
v1
/
workflows
/
tests
/
runs
from retab import Retab

client = Retab()

runs = client.workflows.tests.runs.list(
    workflow_id="wf_abc123xyz",
    statuses=["completed", "error"],
    limit=10,
)
for run in runs.data:
    print(run.id, run.lifecycle.status, run.counts)
{
  "data": [
    {
      "id": "wfnodetestrun_tRNzPiMpBas4kDwD74M8d",
      "workflow": {
        "workflow_id": "wf_abc123xyz",
        "version_id": "draft_2026_05_18",
        "name_at_run_time": "Invoice workflow",
        "requested_version": "draft"
      },
      "trigger": { "type": "api" },
      "lifecycle": { "status": "completed" },
      "timing": {
        "created_at": "2026-05-18T10:00:00Z",
        "started_at": "2026-05-18T10:00:01Z",
        "completed_at": "2026-05-18T10:00:29Z",
        "duration_ms": 28000
      },
      "test_id": null,
      "target": { "type": "block", "block_id": "block_extract_invoice" },
      "total_tests": 4,
      "counts": {
        "queued": 0,
        "running": 0,
        "passed": 3,
        "failed": 1,
        "blocked": 0,
        "error": 0,
        "cancelled": 0
      }
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.retab.com/llms.txt

Use this file to discover all available pages before exploring further.

List workflow-test runs, newest first. This is the run index for parent test runs, not the per-test result history. Filter by workflow_id, test_id, target_block_id, lifecycle status, trigger type, date range, or id pagination. limit defaults to 20, max 100. The response uses the canonical Retab list envelope: { "data": [...], "list_metadata": { "before": null, "after": null } }.
from retab import Retab

client = Retab()

runs = client.workflows.tests.runs.list(
    workflow_id="wf_abc123xyz",
    statuses=["completed", "error"],
    limit=10,
)
for run in runs.data:
    print(run.id, run.lifecycle.status, run.counts)
{
  "data": [
    {
      "id": "wfnodetestrun_tRNzPiMpBas4kDwD74M8d",
      "workflow": {
        "workflow_id": "wf_abc123xyz",
        "version_id": "draft_2026_05_18",
        "name_at_run_time": "Invoice workflow",
        "requested_version": "draft"
      },
      "trigger": { "type": "api" },
      "lifecycle": { "status": "completed" },
      "timing": {
        "created_at": "2026-05-18T10:00:00Z",
        "started_at": "2026-05-18T10:00:01Z",
        "completed_at": "2026-05-18T10:00:29Z",
        "duration_ms": 28000
      },
      "test_id": null,
      "target": { "type": "block", "block_id": "block_extract_invoice" },
      "total_tests": 4,
      "counts": {
        "queued": 0,
        "running": 0,
        "passed": 3,
        "failed": 1,
        "blocked": 0,
        "error": 0,
        "cancelled": 0
      }
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}

Authorizations

Api-Key
string
header
required

Query Parameters

workflow_id
string | null
test_id
string | null
target_block_id
string | null
status
string | null
statuses
string[] | null
exclude_status
string | null
trigger_type
string | null
trigger_types
string[] | null
from_date
string<date-time> | null
to_date
string<date-time> | null
sort_by
string
default:created_at
fields
string | null
before
string | null
after
string | null
limit
integer
default:50
Required range: 1 <= x <= 100
order
enum<string>
default:desc
Available options:
asc,
desc

Response

Successful Response

data
WorkflowTestRunStatus · object[]
required
list_metadata
ListMetadata · object
required

Boundary resource IDs for page navigation.