auto router

Get Shadow Eval Job

One job with derived counts, judge spend, latest error, and stratified results.

get/auto_router/shadow_eval/{job_id}

Path parameters

job_idstring required

Response

Successful Response

job_idstring required
router_namesstring[] required

Every auto-router this job runs as a shadow arm. Multi-router jobs sample one slice of traffic and judge every arm against the same real responses

modelsstring[]

Model groups the sampled traffic is narrowed to; empty means every model the targets use

direction'forward' | 'reverse'
baseline_modelstring nullable
judge_modelstring required
shadow_percentagenumber required
created_atstring date-time required
ends_atstring date-time required
stopped_bystring nullable

The operator who stopped the job early, recorded by the stop endpoint; 'unknown' backfilled by migration for jobs that displayed stopped when the column arrived; None when the job ended on its own. Its presence is what makes a job read stopped rather than completed

judged_countinteger nullable

Verdicts recorded; detail endpoint only

error_countinteger nullable

Sampled attempts that errored; detail endpoint only

judge_spendnumber nullable

Judge cost so far; detail endpoint only

last_errorstring nullable

Most recent attempt error; detail endpoint only

router_namestring required

The first router, kept for callers that predate router_names; derived so the two fields can never disagree.

status'running' | 'completed' | 'stopped' required

Three recorded facts, no history-guessing: a stop is stopped_by (the migration backfills it for every job that displayed stopped when the column arrived, so the pre-column population is closed), completion is the window passing or every target spending its budget, and anything else is running. The all-targets-stamped fallback covers only stops written by pre-column pods during a rolling deploy.

Changes

Changed in 1 of the 42 revisions of this API.1