Skip to main content
GET
Get workflow run by id
The run and every step it recorded — status, output, credits, duration. This is the polling half of mode: "async". A run that is still going reports queued or running; the step list fills in as it goes, so this doubles as progress.

Authorizations

Authorization
string
header
required

API key in format: Bearer inf_***

Path Parameters

id
string
required

Run UUID.

Example:

"3c9a7e51-8b24-4f0d-9a17-6e2b5c4d8a03"

Response

The run, its steps, and what it cost.

id
string
required

Run UUID.

Example:

"3c9a7e51-8b24-4f0d-9a17-6e2b5c4d8a03"

status
enum<string>
required

Terminal statuses are succeeded, failed and cancelled. queued/running are only ever seen by reading a run that has not finished. partial exists in the enum and no writer in this repo produces it — do not build on it.

Available options:
queued,
running,
succeeded,
failed,
cancelled,
partial
Example:

"succeeded"

attempt
number
required

Current run-level attempt, 1-based. Only an async run can exceed 1; sync and stream runs never retry at the run level.

Example:

1

maxAttempts
number
required

Run-level attempts configured, from the definition's retry.max_attempts clamped to 1..5. 1 for sync and stream runs.

Example:

1

creditsUsed
number
required

Credits actually settled for this run, summed from the per-step settles. This is real money spent — it is NOT the estimate, and it is not capped by one: POST /v1/workflows/estimate is a quote, and the credits_reserved figure the run row carries is written but read by nothing.

Example:

4.128

stepRuns
object[]
required

One entry per step ATTEMPT. Ordered by step id then attempt on GET /v1/workflows/runs/{id} — LEXICOGRAPHIC, not execution order — while a fresh sync run returns them in the order the runner executed them. Reading a run that is still running returns the steps written so far, including ones still running themselves.

durationMs
number
required

Wall-clock duration of the run in milliseconds. 0 when the row never recorded one.

Example:

8421

createdAt
string
required

ISO-8601 timestamp the run was created.

Example:

"2026-05-04T09:15:22.113Z"

input
object

The input the run was given, AFTER declared defaults were applied. Returned by GET /v1/workflows/runs/{id} and by an idempotent replay; ABSENT from the response of a fresh sync run, which is built from the runner's result rather than the row. {} is a real answer (the workflow declares inputs and the caller sent none) — the field is omitted, never null, when there is nothing.

output
object

The run's output, resolved from the definition's output block against the steps' results. Absent for a run that failed or was cancelled before producing one.

error
object

Present only for a failed run. A cancelled run carries no error.