Update Scenario
Update a scenario’s user-authored fields.
origin, format, source_run_id, agent_id, and workspace_id cannot be changed
via this endpoint — same rationale as Create Scenario.
Authorizations
Use Tuner API key (tr_api_...) or user session token. Find your API key in Workspace Settings > API Keys.
Path Parameters
Tuner's internal numeric ID for the agent.
Workspace ID. Find this in Workspace > General Settings.
Body
Input schema for hand-authoring a scenario (used by both create and update).
Named "authoring" rather than a generic "Input"/"Create" name because this shape is
deliberately restricted to the fields a human can edit -- origin, format, and
source_run_id are never part of this request; the endpoints that consume it set those
fields themselves (see ScenarioService.create_manual_scenario).
1 - 200routine, pressure 1 - 8000200050010002050Response
Successful Response
Response schema for a single library scenario.
One past execution of a library scenario, within one simulation run.
Deliberately its own class rather than a reuse of SimulationCallDetailResponse
(app/schemas/simulation_run.py): that model already has a field called
scenario_id meaning "the id of the simulation_run_scenarios row" (the execution
record itself), which is a different concept from the library scenario.id this
endpoint is scoped by. Reusing that model here would silently collide the two
meanings under the same field name.
Carries the same raw ingredients as SimulationCallDetailResponse
(status, call_id, duration, analysis_stopped, evals, type,
target_eval_label) that the web's getScenarioVerdict() helper
(voice-ray-web/src/lib/simulation/displayHelpers.ts) already consumes to compute
pass/fail client-side -- no server-side verdict is computed here, by design.
Reused as-is (ENG-1541) for ScenarioResponse.last_run, the scenario list's additive
"most recent execution" field -- same raw ingredients, one execution either way.