Skip to main content
GET
Get run
Returns the full run row with case (and the nested agent + persona) expanded inline. For the transcript see runs/:id/turns; for just the score see runs/:id/evaluation.

Authorizations

Authorization
string
header
required

Your Yappr API key (e.g. ypr_live_...). Generate one in the dashboard under Settings → API Keys.

Path Parameters

id
string<uuid>
required

Response

Run

One execution of a case. Append-only after creation except for status/billing/lifecycle fields.

id
string<uuid>
required
company_id
string<uuid>
required
status
enum<string>
required

User-facing run status. Flips to completed/failed as soon as the conversation ends — BEFORE the worker scores assertions and bills. Do not treat score / pass_fail / total_cost_cents as final until queue_status === "done".

Available options:
queued,
running,
completed,
failed,
cancelled
mode
enum<string>
default:text
required

Always text in v1. voice is reserved for the future loopback mode.

Available options:
text,
voice
created_at
string<date-time>
required
case_id
string<uuid> | null

FK; nullable because cases can be deleted while runs are kept as history.

case
object

A specific eval scenario — persona + target agent + scenario + success criteria.

suite_id
string<uuid> | null
suite_run_id
string<uuid> | null

Groups runs spawned by a single POST /agent-eval/suites/{id}/run call. Pass to GET /agent-eval/suites/{id}/runs/{suite_run_id} for the aggregate.

queue_status
enum<string>

Internal worker pipeline state. pending = waiting in queue, claimed = the cron worker has dispatched it to pipecat, done = the worker has finished scoring + billing. Always poll for queue_status === "done" before reading the scoring / billing fields. The transient window between status === "completed" and queue_status === "done" is typically < 5 seconds but can be longer under contention.

Available options:
pending,
claimed,
done
agent_id
string<uuid> | null

Denormalized snapshot — same as case.agent_id at the moment the run was created.

persona_id
string<uuid> | null
agent_model
string | null

Model identifier the agent ran on. Surfaced for cost auditing.

persona_model
string | null
started_at
string<date-time> | null
ended_at
string<date-time> | null
duration_ms
integer | null
score
number | null
Required range: 0 <= x <= 100
pass_fail
boolean | null
termination_reason
enum<string> | null

Why the run stopped.

Available options:
persona_goodbye,
agent_ended,
max_turns,
timeout,
error,
cancelled
evaluation
object

Populated when status is completed or failed.

agent_input_tokens
integer
default:0
agent_output_tokens
integer
default:0
persona_input_tokens
integer
default:0
persona_output_tokens
integer
default:0
agent_cost_cents
integer
default:0
persona_cost_cents
integer
default:0
total_cost_cents
integer
default:0

Total amount debited from the company's credit balance for this run.

error
string | null

Populated when status='failed'.

agent_overrides
object | null

Snapshot of the case's agent_overrides plus any per-run overrides supplied at create time.