Get Run Steps

List per-node execution steps for a workflow run. Returns one entry per node execution attempt, ordered by execution sequence. By default, the response is lightweight: `result` is null, `has_result` reports whether a stored result exists, and `active_ports` is projected from the result without loading the full JSON payload. Set `include_result=true` to restore the full result payload. Audio results are then hydrated with short-lived `playback_url` values (valid for 15 minutes). `node_type` and `node_id` filters combine with AND semantics. `node_display_name` is resolved from the run's definition snapshot, so it reflects the name the node had when the run executed. Repeated executions of the same node share that name and are distinguished by `iteration`. For a higher-level view with aggregated metrics (pass rates, audio duration by language), use `GET /runs/{run_id}/overview`. For paginated, grouped script+audio rows suitable for a data table, use `GET /runs/{run_id}/data`.

Authentication

AuthorizationBearer
Clerk JWT token
OR
AuthorizationBearer

Onepin live API key (op_live_...). Test and public keys are reserved in Phase 1.

Path parameters

workflow_idstringRequiredformat: "uuid"
run_idstringRequiredformat: "uuid"

Headers

X-Workspace-Idstring or nullOptional

Query parameters

include_resultbooleanOptionalDefaults to false
Include the full step result payload and hydrate audio playback URLs.
node_typeenum or nullOptional
Filter steps by node type.
node_idstring or nullOptional
Filter steps by node ID.

Response

Successful Response
datalist of objects
metaobject

Errors

422
Unprocessable Entity Error