API reference overview ====================== The backend surface is intentionally broad enough to power dashboards, runtime control, report browsing, campaign composition, artifact preview, and websocket streaming. .. list-table:: :header-rows: 1 :widths: 10 42 22 26 * - Method - Route - Handler - Source * - GET - /api/artifacts/{run_id} - list_artifacts - app/api/routes/artifacts.py * - GET - /api/artifacts/{run_id}/download - download_artifact - app/api/routes/artifacts.py * - GET - /api/dashboard/artifacts - dashboard_artifacts - app/api/routes/dashboard.py * - GET - /api/dashboard/artifacts/{run_id} - dashboard_artifact_manifest - app/api/routes/dashboard.py * - GET - /api/dashboard/artifacts/{run_id}/preview - dashboard_artifact_preview - app/api/routes/dashboard.py * - GET - /api/dashboard/campaigns - dashboard_campaigns - app/api/routes/dashboard.py * - GET - /api/dashboard/evcc-campaigns - dashboard_evcc_campaigns - app/api/routes/dashboard.py * - GET - /api/dashboard/evcc-campaigns/{campaign_id} - dashboard_evcc_campaign_detail - app/api/routes/dashboard.py * - GET - /api/dashboard/overview - dashboard_overview - app/api/routes/dashboard.py * - GET - /api/dashboard/release-candidate - dashboard_release_candidate - app/api/routes/dashboard.py * - GET - /api/dashboard/scenarios - dashboard_scenarios - app/api/routes/dashboard.py * - GET - /api/dashboard/state-flow - dashboard_state_flow - app/api/routes/dashboard.py * - GET - /api/dashboard/state-flow - list_state_flows - app/api/routes/state_flow.py * - GET - /api/dashboard/state-flow/architecture - state_flow_architecture - app/api/routes/state_flow.py * - GET - /api/dashboard/state-flow/{run_id} - get_state_flow - app/api/routes/state_flow.py * - GET - /api/dashboard/state-flow/{run_id}/states/{state_key} - get_state_flow_detail - app/api/routes/state_flow.py * - GET - /api/evcc_campaigns - evcc_campaign_list - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/coverage - evcc_campaign_catalog_coverage - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/document/compose - evcc_campaign_compose_document - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/document/run - evcc_campaign_run_document - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/document/validate - evcc_campaign_validate_document - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/editor/options - evcc_campaign_editor_options - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/export - evcc_campaign_export - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/jobs - evcc_campaign_job_list - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/jobs/{job_id} - evcc_campaign_job_get - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/jobs/{job_id}/artifact/download - evcc_campaign_job_artifact_download - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/jobs/{job_id}/artifact/preview - evcc_campaign_job_artifact_preview - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/jobs/{job_id}/artifacts - evcc_campaign_job_artifacts - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/packages - evcc_campaign_packages - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/packages/{package_id} - evcc_campaign_package_detail - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/packages/{package_id}/coverage - evcc_campaign_package_coverage - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/packages/{package_id}/matrix - evcc_campaign_package_matrix - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/profiles - evcc_campaign_profiles - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/qualification/run - evcc_campaign_qualification_run - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/qualification/verify - evcc_campaign_qualification_verify - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/run - evcc_campaign_run - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/suites - evcc_campaign_suites - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/templates - evcc_campaign_templates - app/api/routes/evcc_campaigns.py * - POST - /api/evcc_campaigns/verify - evcc_campaign_verify - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/workstreams - evcc_campaign_workstreams - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_campaigns/{campaign_id} - evcc_campaign_get - app/api/routes/evcc_campaigns.py * - GET - /api/evcc_sessions - list_evcc_sessions - app/api/routes/evcc_sessions.py * - POST - /api/evcc_sessions - create_evcc_session - app/api/routes/evcc_sessions.py * - GET - /api/evcc_sessions/options - get_evcc_session_options - app/api/routes/evcc_sessions.py * - POST - /api/evcc_sessions/preflight - preflight_evcc_session - app/api/routes/evcc_sessions.py * - GET - /api/evcc_sessions/{run_id} - get_evcc_session - app/api/routes/evcc_sessions.py * - POST - /api/evcc_sessions/{run_id}/stop - stop_evcc_session - app/api/routes/evcc_sessions.py * - GET - /api/health - health - app/api/routes/health.py * - GET - /api/live_sessions - list_live_sessions - app/api/routes/live_sessions.py * - GET - /api/live_sessions/hardware_profiles/{profile_id}/bench_blueprint - get_hardware_profile_bench_blueprint - app/api/routes/live_sessions.py * - GET - /api/live_sessions/hardware_profiles/{profile_id}/bench_orchestration - get_hardware_profile_bench_orchestration - app/api/routes/live_sessions.py * - GET - /api/live_sessions/hardware_profiles/{profile_id}/veristand_mapping - get_hardware_profile_veristand_mapping - app/api/routes/live_sessions.py * - GET - /api/live_sessions/options - get_live_session_options - app/api/routes/live_sessions.py * - POST - /api/live_sessions/preflight - preflight_live_session - app/api/routes/live_sessions.py * - GET - /api/live_sessions/presets - list_live_session_presets - app/api/routes/live_sessions.py * - POST - /api/live_sessions/presets - save_live_session_preset - app/api/routes/live_sessions.py * - DELETE - /api/live_sessions/presets/{name} - delete_live_session_preset - app/api/routes/live_sessions.py * - GET - /api/live_sessions/registry - get_live_session_registry - app/api/routes/live_sessions.py * - GET - /api/live_sessions/{run_id} - get_live_session - app/api/routes/live_sessions.py * - GET - /api/live_sessions/{run_id}/detail - get_live_session_detail - app/api/routes/live_sessions.py * - GET - /api/live_sessions/{run_id}/evidence-export - download_live_session_evidence_export - app/api/routes/live_sessions.py * - POST - /api/live_sessions/{run_id}/stop - stop_live_session - app/api/routes/live_sessions.py * - GET - /api/live_sessions/{run_id}/trace - get_live_session_trace - app/api/routes/live_sessions.py * - GET - /api/replay/compare - replay_compare - app/api/routes/replay.py * - GET - /api/replay/overview - replay_overview - app/api/routes/replay.py * - GET - /api/replay/runs/{run_id} - replay_run_detail - app/api/routes/replay.py * - GET - /api/replay/runs/{run_id}/preview - replay_preview - app/api/routes/replay.py * - GET - /api/replay/timing-diff - replay_timing_diff - app/api/routes/replay.py * - GET - /api/reports/compare - report_compare - app/api/routes/reports.py * - GET - /api/reports/overview - report_overview - app/api/routes/reports.py * - GET - /api/reports/runs/{run_id} - report_run - app/api/routes/reports.py * - GET - /api/reports/runs/{run_id}/export - report_export - app/api/routes/reports.py * - GET - /api/runs - list_runs - app/api/routes/runs.py * - GET - /api/runs/{run_id} - get_run - app/api/routes/runs.py * - GET - /api/suites - list_suites - app/api/routes/suites.py * - POST - /api/suites/export - export_suite - app/api/routes/suites.py * - POST - /api/suites/verify - verify_suite - app/api/routes/suites.py * - GET - /api/suites/{suite_id} - get_suite - app/api/routes/suites.py * - POST - /api/suites/{suite_id}/run - run_suite - app/api/routes/suites.py * - GET - /api/workspace/catalog/{catalog_id} - list_catalog_files - app/api/routes/workspace.py * - GET - /api/workspace/catalogs - list_catalogs - app/api/routes/workspace.py * - GET - /api/workspace/preview - preview_workspace_file - app/api/routes/workspace.py * - POST - /api/workspace/save - save_workspace_file - app/api/routes/workspace.py * - WS - /ws/events - events - app/api/routes/ws_events.py