Skip to main content
GET
/
v1
/
workflows
/
{workflow_id}
/
block-tests
/
{test_id}
/
runs
from retab import Retab

client = Retab()

runs = client.workflows.tests.runs.list(
    workflow_id="wf_abc123xyz",
    test_id="wfnodetest_hsLEQiM61ez9Piv147MWk",
    limit=10,
)
for run in runs.runs:
    print(run.id, run.status, run.duration_ms)
{
  "runs": [
    {
      "id": "wfnodetestrun_tRNzPiMpBas4kDwD74M8d",
      "test_id": "wfnodetest_hsLEQiM61ez9Piv147MWk",
      "workflow_id": "wf_abc123xyz",
      "organization_id": "org_123",
      "target": { "type": "block", "block_id": "block_extract_invoice" },
      "source": { "type": "manual", "handle_inputs": { "...": "..." } },
      "status": "passed",
      "execution_fingerprint": "d03d5d7cc9f55ba2db4399bc430f5bdc",
      "handle_inputs_fingerprint": "7ee7814256df5a34a387d0e95190b776",
      "workflow_draft_fingerprint": "ddd95baadce6045f2410a8074574c6bc",
      "block_config_fingerprint": "0ff93ddc7cefcb42b9375a405957a564",
      "started_at": "2026-04-08T14:27:35Z",
      "completed_at": "2026-04-08T14:27:52Z",
      "duration_ms": 17228,
      "outputs": {
        "output-json-0": { "total": 1234.56, "vendor": { "name": "Acme Inc" } },
        "output-file-0": { "type": "file", "file_id": "file_normalized_q1" }
      },
      "routing_decision": null,
      "warnings": [],
      "error": null,
      "skipped": false,
      "assertion_result": {
        "assertion_id": "assert_xyz",
        "condition_kind": "equals",
        "status": "passed",
        "actual_value": 1234.56,
        "expected_value": 1234.56,
        "score": null,
        "threshold": null,
        "metric_kind": null,
        "assertion_label": null,
        "failure": null
      },
      "verdict_summary": {
        "result": true,
        "assertions_passed": 1,
        "assertions_failed": 0,
        "blocked_assertions": 0,
        "failed_assertion_ids": []
      }
    }
  ]
}

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 the most recent run records for a block test, newest first. Each entry is a full WorkflowTestRunRecord (target, source, fingerprints, outputs, assertion result, verdict summary). limit defaults to 20, max 100.
from retab import Retab

client = Retab()

runs = client.workflows.tests.runs.list(
    workflow_id="wf_abc123xyz",
    test_id="wfnodetest_hsLEQiM61ez9Piv147MWk",
    limit=10,
)
for run in runs.runs:
    print(run.id, run.status, run.duration_ms)
{
  "runs": [
    {
      "id": "wfnodetestrun_tRNzPiMpBas4kDwD74M8d",
      "test_id": "wfnodetest_hsLEQiM61ez9Piv147MWk",
      "workflow_id": "wf_abc123xyz",
      "organization_id": "org_123",
      "target": { "type": "block", "block_id": "block_extract_invoice" },
      "source": { "type": "manual", "handle_inputs": { "...": "..." } },
      "status": "passed",
      "execution_fingerprint": "d03d5d7cc9f55ba2db4399bc430f5bdc",
      "handle_inputs_fingerprint": "7ee7814256df5a34a387d0e95190b776",
      "workflow_draft_fingerprint": "ddd95baadce6045f2410a8074574c6bc",
      "block_config_fingerprint": "0ff93ddc7cefcb42b9375a405957a564",
      "started_at": "2026-04-08T14:27:35Z",
      "completed_at": "2026-04-08T14:27:52Z",
      "duration_ms": 17228,
      "outputs": {
        "output-json-0": { "total": 1234.56, "vendor": { "name": "Acme Inc" } },
        "output-file-0": { "type": "file", "file_id": "file_normalized_q1" }
      },
      "routing_decision": null,
      "warnings": [],
      "error": null,
      "skipped": false,
      "assertion_result": {
        "assertion_id": "assert_xyz",
        "condition_kind": "equals",
        "status": "passed",
        "actual_value": 1234.56,
        "expected_value": 1234.56,
        "score": null,
        "threshold": null,
        "metric_kind": null,
        "assertion_label": null,
        "failure": null
      },
      "verdict_summary": {
        "result": true,
        "assertions_passed": 1,
        "assertions_failed": 0,
        "blocked_assertions": 0,
        "failed_assertion_ids": []
      }
    }
  ]
}

Authorizations

Api-Key
string
header
required

Path Parameters

workflow_id
string
required
test_id
string
required

Query Parameters

limit
integer
default:20
Required range: 1 <= x <= 100
access_token
string | null

Response

Successful Response

runs
WorkflowBlockTestRunRecord · object[]
required