Skip to main content
GET
/
v1
/
workflows
/
steps
/
{step_id}
from retab import Retab

client = Retab()

step = client.workflows.steps.get("step_extract_1")

print(step.status)
print(step.handle_outputs)

if step.handle_outputs:
    payload = step.handle_outputs["output-json-0"]
    print(payload.type)
    print(payload.data)
{
  "step_id": "step_extract_1",
  "run_id": "run_abc123xyz",
  "workflow_id": "wf_abc123xyz",
  "block_id": "extract-block-1",
  "block_type": "extract",
  "status": "completed",
  "started_at": "2026-05-18T10:00:00Z",
  "completed_at": "2026-05-18T10:00:04Z",
  "duration_ms": 4210,
  "iteration": null,
  "is_iteration": false,
  "handle_outputs": {
    "output-json-0": {
      "type": "json",
      "data": {
        "invoice_number": "INV-2024-001",
        "total_amount": 1234.56,
        "vendor_name": "Acme Corp"
      }
    }
  },
  "handle_inputs": {
    "input-file-0": {
      "type": "file",
      "document": {
        "id": "file_123",
        "filename": "invoice.pdf",
        "mime_type": "application/pdf"
      }
    }
  },
  "fingerprint": {
    "input_fingerprint": "6d1f8c8a",
    "schema_fingerprint": "b44b1c28",
    "definition_fingerprint": "0ff93ddc",
    "resolved_definition_fingerprint": "42d114aa",
    "effective_execution_fingerprint": "ca8f2b04",
    "handle_inputs_fingerprint": "7b03fa21",
    "effective_config": {},
    "runtime_overrides": {},
    "cohort_id": null,
    "source_file_id": "file_123",
    "source_filename": "invoice.pdf"
  }
}

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.

Get one joined step row by step_id. The response matches a single row from Query Steps, including status, handle data, and fingerprint metadata.
from retab import Retab

client = Retab()

step = client.workflows.steps.get("step_extract_1")

print(step.status)
print(step.handle_outputs)

if step.handle_outputs:
    payload = step.handle_outputs["output-json-0"]
    print(payload.type)
    print(payload.data)
{
  "step_id": "step_extract_1",
  "run_id": "run_abc123xyz",
  "workflow_id": "wf_abc123xyz",
  "block_id": "extract-block-1",
  "block_type": "extract",
  "status": "completed",
  "started_at": "2026-05-18T10:00:00Z",
  "completed_at": "2026-05-18T10:00:04Z",
  "duration_ms": 4210,
  "iteration": null,
  "is_iteration": false,
  "handle_outputs": {
    "output-json-0": {
      "type": "json",
      "data": {
        "invoice_number": "INV-2024-001",
        "total_amount": 1234.56,
        "vendor_name": "Acme Corp"
      }
    }
  },
  "handle_inputs": {
    "input-file-0": {
      "type": "file",
      "document": {
        "id": "file_123",
        "filename": "invoice.pdf",
        "mime_type": "application/pdf"
      }
    }
  },
  "fingerprint": {
    "input_fingerprint": "6d1f8c8a",
    "schema_fingerprint": "b44b1c28",
    "definition_fingerprint": "0ff93ddc",
    "resolved_definition_fingerprint": "42d114aa",
    "effective_execution_fingerprint": "ca8f2b04",
    "handle_inputs_fingerprint": "7b03fa21",
    "effective_config": {},
    "runtime_overrides": {},
    "cohort_id": null,
    "source_file_id": "file_123",
    "source_filename": "invoice.pdf"
  }
}

Authorizations

Api-Key
string
header
required

Path Parameters

step_id
string
required

Response

Successful Response

One joined row returned by POST /v1/workflows/steps/query.

Mirrors StepQueryResult in frontend/app/dashboard/workflows/[workflowId]/console/experiments/queries.ts.

step_id
string
required
run_id
string
required
workflow_id
string
required
block_id
string
required
block_type
string
required
status
string
required
started_at
string<date-time> | null
completed_at
string<date-time> | null
duration_ms
integer | null
iteration
integer | null
is_iteration
boolean
default:false
handle_inputs
Handle Inputs · object
handle_outputs
Handle Outputs · object
fingerprint
StepFingerprintJoined · object

Slim fingerprint projection embedded in StepQueryResult.