Get Run Analysis
Fetch delivery, quality and cost analysis for a workflow run.
Three independent blocks, each carrying its own `status` so one unavailable
block never blanks the others:
- `audio` — delivered vs replaced audio duration per locale. "Replaced"
counts persisted non-delivered takes only; discarded takes and split-line
concat entries are excluded so nothing is double counted.
- `validators` — one entry per validator NODE (not per kind: two validators
of the same kind on different generators are legal and may carry different
thresholds), with per-locale scores read from each line's DELIVERED take.
- `credits` — per-node breakdown of the run's charge, mirroring the ledger.
Amounts are unrounded decimal STRINGS; the run-level floor and minimum are
applied once at settlement and reported separately as `charged`, which is
the balance debit PLUS `overage_credits` — the remainder billed against the
next invoice when a paid plan's balance ran out mid-run.
The `run` block's `duration_ms` is ACTIVE duration — wall-clock
(`completed_at - started_at`) minus time the run spent paused — and
`paused_ms` reports that excluded paused total (POD-417).
Scores here can differ from `GET /runs/{run_id}/overview`: that endpoint
reads each line's last take and is frozen on those semantics, while this one
reads the take actually delivered. When a retry produced a worse clip and an
earlier one won, the two legitimately disagree.
Related sub-resources:
- `GET /runs/{run_id}` — full run record including the raw definition snapshot.
- `GET /runs/{run_id}/status` — volatile status fields only; for polling.
- `GET /runs/{run_id}/overview` — pre-aggregated metrics and node state map.
- `GET /runs/{run_id}/data` — paginated script+audio rows for a data table.
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_id
run_id
Headers
X-Workspace-Id
Response
Successful Response
data
meta
Errors
422
Unprocessable Entity Error

