{"openapi":"3.1.0","info":{"title":"MedicAITutor Backend","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["system"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/healthz":{"get":{"tags":["system"],"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/health/release":{"get":{"tags":["system"],"summary":"Health Release","operationId":"health_release_health_release_get","responses":{"200":{"description":"Machine-readable release metadata for the running deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseInfoResponse"},"example":{"service":"medicaitutor-api","environment":"staging","version":"0.1.0","release_at":"2026-04-20 06:16 WAT","image_uri":"757052694893.dkr.ecr.us-east-1.amazonaws.com/medicaitutor:a1e8233afcc2d65ae5b826bb982d890207794119","source_sha":"a1e8233afcc2d65ae5b826bb982d890207794119"}}}}}}},"/ready":{"get":{"tags":["system"],"summary":"Ready","operationId":"ready_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ready Ready Get"}}}}}}},"/providers/status":{"get":{"tags":["system"],"summary":"Provider Status","operationId":"provider_status_providers_status_get","parameters":[{"name":"live","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Live"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}},{"name":"catalog_live","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Catalog Live"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Provider Status Providers Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/provider-defaults":{"get":{"tags":["system"],"summary":"Get Provider Defaults","operationId":"get_provider_defaults_admin_provider_defaults_get","responses":{"200":{"description":"Current live provider defaults and supported provider options","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDefaultsResponse"},"example":{"defaults":{"asr":{"category":"asr","provider_name":"azure","created_at":"2026-04-06T09:00:03.961692Z","updated_at":"2026-04-11T12:42:27.419272Z"},"nlp":{"category":"nlp","provider_name":"openai","created_at":"2026-04-06T09:00:03.961709Z","updated_at":"2026-04-11T12:42:27.419272Z"},"tts":{"category":"tts","provider_name":"polly","created_at":"2026-04-06T09:00:03.961714Z","updated_at":"2026-04-11T12:42:27.419272Z"}},"supported":{"asr":["faster_whisper","whisper","openai","deepgram","elevenlabs","azure","aws_transcribe_medical","parakeet_stream","multitalker_parakeet"],"nlp":["openai"],"tts":["elevenlabs","azure","deepgram","openai","polly"]}}}}},"401":{"description":"Admin authentication required","content":{"application/json":{"example":{"detail":"Invalid API key."}}}}}},"put":{"tags":["system"],"summary":"Update Provider Defaults","operationId":"update_provider_defaults_admin_provider_defaults_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDefaultUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Updated live provider defaults and supported provider options","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDefaultsUpdateResponse"},"example":{"defaults":{"asr":{"category":"asr","provider_name":"azure","created_at":"2026-04-06T09:00:03.961692Z","updated_at":"2026-04-11T12:42:27.419272Z"},"nlp":{"category":"nlp","provider_name":"openai","created_at":"2026-04-06T09:00:03.961709Z","updated_at":"2026-04-11T12:42:27.419272Z"},"tts":{"category":"tts","provider_name":"polly","created_at":"2026-04-06T09:00:03.961714Z","updated_at":"2026-04-11T12:42:27.419272Z"}},"supported":{"asr":["faster_whisper","whisper","openai","deepgram","elevenlabs","azure","aws_transcribe_medical","parakeet_stream","multitalker_parakeet"],"nlp":["openai"],"tts":["elevenlabs","azure","deepgram","openai","polly"]},"updated":true}}}},"401":{"description":"Admin authentication required","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"422":{"description":"Unsupported provider selection","content":{"application/json":{"example":{"detail":[{"loc":["body","nlp_provider"],"msg":"Input should be 'openai'","type":"literal_error"}]}}}}}}},"/admin/provider-defaults/audit":{"get":{"tags":["system"],"summary":"List Provider Default Audit","operationId":"list_provider_default_audit_admin_provider_defaults_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDefaultAuditCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/providers/benchmark":{"post":{"tags":["system"],"summary":"Run Provider Benchmark","operationId":"run_provider_benchmark_providers_benchmark_post","parameters":[{"name":"smoke","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Smoke"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkRun"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/providers/benchmark/history":{"get":{"tags":["system"],"summary":"Provider Benchmark History","operationId":"provider_benchmark_history_providers_benchmark_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkHistoryCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"tags":["system"],"summary":"Metrics","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Metrics Metrics Get"}}}}}}},"/metrics/prometheus":{"get":{"tags":["system"],"summary":"Metrics Prometheus","operationId":"metrics_prometheus_metrics_prometheus_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"tags":["public-api"],"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/provider-defaults":{"get":{"tags":["public-api"],"summary":"Provider Defaults Admin Page","operationId":"provider_defaults_admin_page_provider_defaults_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/interactions":{"get":{"tags":["public-api"],"summary":"Interactions Admin Page","operationId":"interactions_admin_page_interactions_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/interactions/api":{"get":{"tags":["public-api"],"summary":"List Interactions Api","operationId":"list_interactions_api_interactions_api_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"station_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"}},{"name":"exam_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInteractionCollectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/media/{path}":{"get":{"tags":["public-api"],"summary":"Get Media","operationId":"get_media_media__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attempts/start":{"post":{"tags":["public-api"],"summary":"Public Attempt Start","operationId":"public_attempt_start_attempts_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAttemptStartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptArtifactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attempts":{"get":{"tags":["public-api"],"summary":"Public List Attempts","operationId":"public_list_attempts_attempts_get","parameters":[{"name":"candidate_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/attempts/{attempt_id}":{"get":{"tags":["public-api"],"summary":"Public Get Attempt","operationId":"public_get_attempt_attempts__attempt_id__get","parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"string","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Get Attempt Attempts  Attempt Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/candidates/{candidate_id}/attempts":{"get":{"tags":["public-api"],"summary":"Public List Candidate Attempts","operationId":"public_list_candidate_attempts_candidates__candidate_id__attempts_get","parameters":[{"name":"candidate_id","in":"path","required":true,"schema":{"type":"string","title":"Candidate Id"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/session/start":{"post":{"tags":["public-api"],"summary":"Public Session Start","operationId":"public_session_start_session_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionStartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/session/end":{"post":{"tags":["public-api"],"summary":"Public Session End","operationId":"public_session_end_session_end_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionEndRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionEndResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/evaluate":{"post":{"tags":["public-api"],"summary":"Public Evaluate","operationId":"public_evaluate_evaluate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvaluateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationResponse"}}}},"422":{"description":"Validation failure","content":{"application/json":{"example":{"detail":"A transcript or session_id is required."}}}}}}},"/ask":{"post":{"tags":["public-api"],"summary":"Public Ask","operationId":"public_ask_ask_post","requestBody":{"content":{"application/json":{"schema":{"$defs":{"PublicConversationTurn":{"properties":{"role":{"anyOf":[{"type":"string","enum":["candidate","patient","system"]},{"type":"null"}],"title":"Role"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"speaker":{"anyOf":[{"type":"string","enum":["candidate","patient","system"]},{"type":"null"}],"title":"Speaker"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"PublicConversationTurn"}},"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"feedback_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Text"},"history":{"items":{"$ref":"#/$defs/PublicConversationTurn"},"type":"array","title":"History"},"generate_ai_response":{"type":"boolean","title":"Generate Ai Response","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Alias for text in JSON requests."}},"type":"object","title":"PublicAskRequest"},"example":{"message":"What should I improve next?","station_slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse","candidate_id":"candidate-123","history":[{"role":"candidate","text":"Can you tell me what happened last night?"},{"role":"patient","text":"The voices got too much and I ran out of the flat."}],"generate_ai_response":true}},"multipart/form-data":{"schema":{"properties":{"text":{"type":"string"},"message":{"type":"string"},"station_slug":{"type":"string"},"session_id":{"type":"string"},"candidate_id":{"type":"string"},"category":{"type":"string"},"exam_slug":{"type":"string"},"feedback_text":{"type":"string"},"generate_ai_response":{"type":"boolean"},"history":{"type":"string","description":"JSON-encoded array of transcript turns."},"audio":{"type":"string","format":"binary"},"documents":{"items":{"type":"string","format":"binary"},"type":"array"}},"type":"object"}}},"required":false},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAskResponse"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"example":{"detail":"Provide text, message, feedback_text, audio, or documents."}}}}}}},"/review":{"post":{"tags":["public-api"],"summary":"Public Review","operationId":"public_review_review_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicReviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicReviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/feedback":{"post":{"tags":["public-api"],"summary":"Public Feedback","operationId":"public_feedback_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user-feedback":{"post":{"tags":["public-api"],"summary":"Public User Feedback","operationId":"public_user_feedback_user_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mock-exams":{"get":{"tags":["public-api"],"summary":"List Mock Exams","operationId":"list_mock_exams_mock_exams_get","parameters":[{"name":"seed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMockExamCollectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mock-exams/{slug}":{"get":{"tags":["public-api"],"summary":"Get Mock Exam","operationId":"get_mock_exam_mock_exams__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"seed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mock-exams/{slug}/station-ids":{"get":{"tags":["public-api"],"summary":"Get Mock Exam Station Ids","operationId":"get_mock_exam_station_ids_mock_exams__slug__station_ids_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"seed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat/text":{"post":{"tags":["public-api"],"summary":"Public Chat Text","operationId":"public_chat_text_chat_text_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChatTextRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChatResponse"}}}},"422":{"description":"Validation failure","content":{"application/json":{"example":{"detail":"Provide station or station_slug."}}}},"503":{"description":"Upstream provider failure","content":{"application/json":{"example":{"detail":{"message":"tts provider 'openai' failed.","stage":"tts","provider":"openai","error_type":"RuntimeError","error":"Upstream provider unavailable"}}}}}}}},"/chat/audio":{"post":{"tags":["public-api"],"summary":"Public Chat Audio","operationId":"public_chat_audio_chat_audio_post","parameters":[{"name":"station","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_public_chat_audio_chat_audio_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChatResponse"}}}},"422":{"description":"Validation failure","content":{"application/json":{"example":{"detail":"Provide station or station_slug."}}}},"503":{"description":"Upstream provider failure","content":{"application/json":{"example":{"detail":{"message":"asr provider 'deepgram' failed.","stage":"asr","provider":"deepgram","error_type":"RuntimeError","error":"Invalid audio payload","fallback":{"message":"asr provider 'openai' failed.","stage":"asr","provider":"openai","error_type":"RuntimeError","error":"Invalid audio payload"}}}}}}}}},"/stations":{"get":{"tags":["stations"],"summary":"List Stations","operationId":"list_stations_stations_get","parameters":[{"name":"publication_status","in":"query","required":false,"schema":{"enum":["published","inactive","all"],"type":"string","description":"Filter returned stations by publication state. Public requests may only use 'published'.","examples":["published","inactive","all"],"default":"published","title":"Publication Status"},"description":"Filter returned stations by publication state. Public requests may only use 'published'."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StationCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["stations"],"summary":"Create Station","operationId":"create_station_stations_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/review":{"get":{"tags":["stations"],"summary":"Review Stations Page","operationId":"review_stations_page_stations_review_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/stations/metadata":{"get":{"tags":["stations"],"summary":"Get Station Metadata","operationId":"get_station_metadata_stations_metadata_get","parameters":[{"name":"publication_status","in":"query","required":false,"schema":{"enum":["published","inactive","all"],"type":"string","description":"Filter metadata by publication state. Public requests may only use 'published'.","examples":["published","inactive","all"],"default":"published","title":"Publication Status"},"description":"Filter metadata by publication state. Public requests may only use 'published'."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"title":"Response Get Station Metadata Stations Metadata Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/sections/replace":{"post":{"tags":["stations"],"summary":"Replace Station Section","operationId":"replace_station_section_stations_sections_replace_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceValueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"string"}]},"type":"object","title":"Response Replace Station Section Stations Sections Replace Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/categories/replace":{"post":{"tags":["stations"],"summary":"Replace Station Category","operationId":"replace_station_category_stations_categories_replace_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceValueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"string"}]},"type":"object","title":"Response Replace Station Category Stations Categories Replace Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/{slug}/archive-url":{"get":{"tags":["stations"],"summary":"Get Station Archive Url","operationId":"get_station_archive_url_stations__slug__archive_url_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":"Response Get Station Archive Url Stations  Slug  Archive Url Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/{slug}":{"get":{"tags":["stations"],"summary":"Get Station","operationId":"get_station_stations__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"publication_status","in":"query","required":false,"schema":{"enum":["published","inactive","all"],"type":"string","description":"Return a station only if it matches the requested publication state. Public requests may only use 'published'.","examples":["published","inactive","all"],"default":"published","title":"Publication Status"},"description":"Return a station only if it matches the requested publication state. Public requests may only use 'published'."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["stations"],"summary":"Update Station","operationId":"update_station_stations__slug__put","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["stations"],"summary":"Delete Station","operationId":"delete_station_stations__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/{slug}/revisions":{"get":{"tags":["stations"],"summary":"List Station Revisions","operationId":"list_station_revisions_stations__slug__revisions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StationRevisionCollection"},"example":{"items":[{"id":1297,"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse","revision_number":3,"action":"update","created_at":"2026-04-11T12:41:56.883672Z","payload":{"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"}}],"total":1}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stations/{slug}/revisions/{revision_id}/rollback":{"post":{"tags":["stations"],"summary":"Rollback Station Revision","operationId":"rollback_station_revision_stations__slug__revisions__revision_id__rollback_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"revision_id","in":"path","required":true,"schema":{"type":"integer","title":"Revision Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Station"},"example":{"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse","section":"Psychiatry","title":"Acute Presentation of Psychosis in the Context of Cannabis Misuse","task":"Review the mental state findings and immediate risks.","prompts":{"station_name":"Acute Presentation of Psychosis in the Context of Cannabis Misuse","case_synopsis":"Candidate explores acute psychosis symptoms and immediate management."},"lead":"Acute psychosis","key_points":[],"persona":{"name":"Patient","age":0,"affect":"neutral","communication_style":"brief","goals_concerns":[],"nonverbal_cues":[],"do_not_volunteer":[]},"guardrails":{"forbidden_topics":[],"mandatory_disclosures":[],"handoff_triggers":[],"privacy_rules":["no real third-party identifiers"],"out_of_scope_responses":[]},"rubric":{"marking_sheet_title":"MARKING SHEET","overall_scale":["SEVERE FAIL","FAIL","BORDERLINE FAIL","BORDERLINE PASS","PASS","EXCELLENT PASS"],"domain_rating_scale":["0","1","2","3","4"],"rating_to_score":{"0":0.0,"1":0.25,"2":0.5,"3":0.75,"4":1.0},"competency_items":[],"feedback_checklist":[]},"evaluation":{"version":"ev-1.0.0"},"sources":{"pdf":"NEWSTATIONS.pdf"},"station_meta":{"topic":"Acute psychosis","time_limit_minutes":7,"setting":"Clinic","expected_diagnosis":"Working diagnosis","station_category":"management"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions":{"get":{"tags":["sessions"],"summary":"List Sessions","operationId":"list_sessions_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SessionSummary"},"type":"array","title":"Response List Sessions Sessions Get"}}}}}},"post":{"tags":["sessions"],"summary":"Create Session","operationId":"create_session_sessions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionRecord"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["sessions"],"summary":"Get Session","operationId":"get_session_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionRecord"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/{session_id}/end":{"post":{"tags":["sessions"],"summary":"End Session","operationId":"end_session_sessions__session_id__end_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionEndRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionRecord"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/nlp/{provider}":{"get":{"tags":["nlp"],"summary":"Get Provider Status","operationId":"get_provider_status_nlp__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"NLP provider name. Options: openai.","title":"Provider"},"description":"NLP provider name. Options: openai."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Provider Status Nlp  Provider  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/nlp/simulated-patient":{"post":{"tags":["nlp"],"summary":"Simulated Patient","operationId":"simulated_patient_nlp_simulated_patient_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulatedPatientRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulatedPatientResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/nlp/{provider}/simulated-patient":{"post":{"tags":["nlp"],"summary":"Simulated Patient Provider","operationId":"simulated_patient_provider_nlp__provider__simulated_patient_post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulatedPatientRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulatedPatientResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asr/{provider}":{"get":{"tags":["asr"],"summary":"Get Provider Status","operationId":"get_provider_status_asr__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"ASR provider name. Options: faster_whisper, whisper, openai, deepgram, elevenlabs, azure, aws_transcribe_medical, parakeet_stream, multitalker_parakeet.","title":"Provider"},"description":"ASR provider name. Options: faster_whisper, whisper, openai, deepgram, elevenlabs, azure, aws_transcribe_medical, parakeet_stream, multitalker_parakeet."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Provider Status Asr  Provider  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asr/batch":{"post":{"tags":["asr"],"summary":"Batch Transcribe","operationId":"batch_transcribe_asr_batch_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_batch_transcribe_asr_batch_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchTranscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asr/{provider}/batch":{"post":{"tags":["asr"],"summary":"Batch Transcribe Provider","operationId":"batch_transcribe_provider_asr__provider__batch_post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"ASR provider name. Options: faster_whisper, whisper, openai, deepgram, elevenlabs, azure, aws_transcribe_medical, parakeet_stream, multitalker_parakeet.","title":"Provider"},"description":"ASR provider name. Options: faster_whisper, whisper, openai, deepgram, elevenlabs, azure, aws_transcribe_medical, parakeet_stream, multitalker_parakeet."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_batch_transcribe_provider_asr__provider__batch_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchTranscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tts/{provider}":{"get":{"tags":["tts"],"summary":"Get Provider Status","operationId":"get_provider_status_tts__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"TTS provider name. Options: elevenlabs, azure, deepgram, openai, polly.","title":"Provider"},"description":"TTS provider name. Options: elevenlabs, azure, deepgram, openai, polly."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Provider Status Tts  Provider  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tts/speak":{"post":{"tags":["tts"],"summary":"Speak","operationId":"speak_tts_speak_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tts/{provider}/speak":{"post":{"tags":["tts"],"summary":"Speak Provider","operationId":"speak_provider_tts__provider__speak_post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"TTS provider name. Options: elevenlabs, azure, deepgram, openai, polly.","title":"Provider"},"description":"TTS provider name. Options: elevenlabs, azure, deepgram, openai, polly."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/avatar/providers/status":{"get":{"tags":["avatar"],"summary":"Avatar Provider Status","operationId":"avatar_provider_status_avatar_providers_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarProviderStatusCollection"}}}}}}},"/avatar/session":{"post":{"tags":["avatar"],"summary":"Create Avatar Session","operationId":"create_avatar_session_avatar_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/avatar/render":{"post":{"tags":["avatar"],"summary":"Create Avatar Render","operationId":"create_avatar_render_avatar_render_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarRenderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarRenderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/avatar/jobs/{job_id}":{"get":{"tags":["avatar"],"summary":"Get Avatar Job","operationId":"get_avatar_job_avatar_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"provider","in":"query","required":false,"schema":{"enum":["did","heygen_lite","heygen_video","liveavatar","auto"],"type":"string","default":"auto","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarJobStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/avatar/session/{session_id}":{"delete":{"tags":["avatar"],"summary":"Close Avatar Session","operationId":"close_avatar_session_avatar_session__session_id__delete","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"provider","in":"query","required":false,"schema":{"enum":["did","heygen_lite","heygen_video","liveavatar","auto"],"type":"string","default":"auto","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvatarSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/evaluation/score":{"post":{"tags":["evaluation"],"summary":"Score Session","operationId":"score_session_evaluation_score_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AttemptArtifactResponse":{"properties":{"attempt":{"$ref":"#/components/schemas/AttemptRecord"},"date_index_key":{"type":"string","title":"Date Index Key"},"manifest_key":{"type":"string","title":"Manifest Key"},"summary_key":{"type":"string","title":"Summary Key"},"bucket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"},"media_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Prefix"},"date_index_s3_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Index S3 Uri"},"manifest_s3_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest S3 Uri"},"summary_s3_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary S3 Uri"}},"type":"object","required":["attempt","date_index_key","manifest_key","summary_key"],"title":"AttemptArtifactResponse"},"AttemptCollection":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AttemptRecord"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"AttemptCollection"},"AttemptRecord":{"properties":{"attempt_id":{"type":"string","title":"Attempt Id"},"candidate_id":{"type":"string","title":"Candidate Id"},"attempt_type":{"type":"string","title":"Attempt Type"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"status":{"type":"string","enum":["active","completed","abandoned"],"title":"Status","default":"active"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"attempt_date":{"type":"string","title":"Attempt Date"},"station_slugs":{"items":{"type":"string"},"type":"array","title":"Station Slugs"},"s3_prefix":{"type":"string","title":"S3 Prefix"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["attempt_id","candidate_id","attempt_type","started_at","attempt_date","s3_prefix"],"title":"AttemptRecord"},"AvatarCapabilities":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar"],"title":"Provider"},"supports_live_session":{"type":"boolean","title":"Supports Live Session"},"supports_async_render":{"type":"boolean","title":"Supports Async Render"},"requires_client_sdk":{"type":"boolean","title":"Requires Client Sdk","default":true},"requires_webrtc":{"type":"boolean","title":"Requires Webrtc","default":false},"supports_text_input":{"type":"boolean","title":"Supports Text Input","default":true},"supports_audio_input":{"type":"boolean","title":"Supports Audio Input","default":false},"enabled":{"type":"boolean","title":"Enabled","default":true},"healthy":{"type":"boolean","title":"Healthy","default":true},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["provider","supports_live_session","supports_async_render"],"title":"AvatarCapabilities"},"AvatarJobStatusResponse":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar"],"title":"Provider"},"mode":{"type":"string","const":"async_render","title":"Mode","default":"async_render"},"status":{"type":"string","enum":["created","queued","processing","ready","completed","closed","failed","disabled"],"title":"Status"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"vendor_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Session Id"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"capabilities":{"anyOf":[{"$ref":"#/components/schemas/AvatarCapabilities"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["provider","status"],"title":"AvatarJobStatusResponse"},"AvatarProviderStatus":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar"],"title":"Provider"},"capabilities":{"$ref":"#/components/schemas/AvatarCapabilities"}},"type":"object","required":["provider","capabilities"],"title":"AvatarProviderStatus"},"AvatarProviderStatusCollection":{"properties":{"providers":{"items":{"$ref":"#/components/schemas/AvatarProviderStatus"},"type":"array","title":"Providers"}},"type":"object","title":"AvatarProviderStatusCollection"},"AvatarRenderRequest":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar","auto"],"title":"Provider","default":"auto"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"avatar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Id"},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","title":"AvatarRenderRequest"},"AvatarRenderResponse":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar"],"title":"Provider"},"mode":{"type":"string","const":"async_render","title":"Mode","default":"async_render"},"status":{"type":"string","enum":["created","queued","processing","ready","completed","closed","failed","disabled"],"title":"Status"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"vendor_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Session Id"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"capabilities":{"anyOf":[{"$ref":"#/components/schemas/AvatarCapabilities"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["provider","status"],"title":"AvatarRenderResponse"},"AvatarSessionRequest":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar","auto"],"title":"Provider","default":"auto"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"avatar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Id"},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","title":"AvatarSessionRequest"},"AvatarSessionResponse":{"properties":{"provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar"],"title":"Provider"},"mode":{"type":"string","const":"live_session","title":"Mode","default":"live_session"},"status":{"type":"string","enum":["created","queued","processing","ready","completed","closed","failed","disabled"],"title":"Status"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"vendor_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Session Id"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"capabilities":{"anyOf":[{"$ref":"#/components/schemas/AvatarCapabilities"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["provider","status"],"title":"AvatarSessionResponse"},"BatchTranscriptionResponse":{"properties":{"transcript":{"type":"string","title":"Transcript"},"segments":{"items":{"$ref":"#/components/schemas/TranscriptSegment"},"type":"array","title":"Segments"},"provider":{"type":"string","title":"Provider"},"model":{"type":"string","title":"Model"}},"type":"object","required":["transcript","provider","model"],"title":"BatchTranscriptionResponse"},"BenchmarkEnvironment":{"properties":{"audio_fixture":{"type":"string","title":"Audio Fixture"},"station_slug":{"type":"string","title":"Station Slug"}},"type":"object","required":["audio_fixture","station_slug"],"title":"BenchmarkEnvironment"},"BenchmarkHistoryCollection":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BenchmarkRun"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BenchmarkHistoryCollection","example":{"items":[{"environment":{"audio_fixture":"benchmark_synthetic.wav","station_slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"},"ranking":{"asr":[],"nlp":[],"tts":[]},"regressions":[],"results":{"asr":[],"nlp":[],"tts":[]},"timestamp":"2026-04-11T12:58:10.118673+00:00"}],"total":1}},"BenchmarkRanking":{"properties":{"asr":{"items":{"$ref":"#/components/schemas/BenchmarkRankingEntry"},"type":"array","title":"Asr"},"tts":{"items":{"$ref":"#/components/schemas/BenchmarkRankingEntry"},"type":"array","title":"Tts"},"nlp":{"items":{"$ref":"#/components/schemas/BenchmarkRankingEntry"},"type":"array","title":"Nlp"}},"type":"object","required":["asr","tts","nlp"],"title":"BenchmarkRanking"},"BenchmarkRankingEntry":{"properties":{"provider":{"type":"string","title":"Provider"},"status":{"type":"string","title":"Status"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"}},"type":"object","required":["provider","status"],"title":"BenchmarkRankingEntry"},"BenchmarkRegression":{"properties":{"provider_type":{"type":"string","title":"Provider Type"},"provider":{"type":"string","title":"Provider"},"kind":{"type":"string","title":"Kind"}},"additionalProperties":true,"type":"object","required":["provider_type","provider","kind"],"title":"BenchmarkRegression"},"BenchmarkResults":{"properties":{"asr":{"items":{"$ref":"#/components/schemas/BenchmarkRow"},"type":"array","title":"Asr"},"tts":{"items":{"$ref":"#/components/schemas/BenchmarkRow"},"type":"array","title":"Tts"},"nlp":{"items":{"$ref":"#/components/schemas/BenchmarkRow"},"type":"array","title":"Nlp"}},"type":"object","required":["asr","tts","nlp"],"title":"BenchmarkResults"},"BenchmarkRow":{"properties":{"provider_type":{"type":"string","title":"Provider Type"},"provider":{"type":"string","title":"Provider"},"ready":{"type":"boolean","title":"Ready"},"detail":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"},{"type":"null"}],"title":"Detail"},"status":{"type":"string","title":"Status"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"transcript_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript Preview"},"transcript_chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Transcript Chars"},"bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bytes"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"output_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Provider"},"response_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Preview"}},"additionalProperties":true,"type":"object","required":["provider_type","provider","ready","status"],"title":"BenchmarkRow"},"BenchmarkRun":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"environment":{"$ref":"#/components/schemas/BenchmarkEnvironment"},"results":{"$ref":"#/components/schemas/BenchmarkResults"},"ranking":{"$ref":"#/components/schemas/BenchmarkRanking"},"regressions":{"items":{"$ref":"#/components/schemas/BenchmarkRegression"},"type":"array","title":"Regressions"}},"type":"object","required":["timestamp","environment","results","ranking"],"title":"BenchmarkRun","example":{"environment":{"audio_fixture":"benchmark_synthetic.wav","station_slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"},"ranking":{"asr":[{"latency_ms":0.03,"provider":"mock","status":"ok"}],"nlp":[{"latency_ms":640.4,"provider":"openai","status":"ok"}],"tts":[{"latency_ms":210.11,"provider":"polly","status":"ok"}]},"regressions":[],"results":{"asr":[{"detail":"mock provider","latency_ms":0.03,"provider":"mock","provider_type":"asr","ready":true,"status":"ok","transcript_chars":56,"transcript_preview":"mock transcript 32044 bytes from benchmark_synthetic.wav"}],"nlp":[{"detail":{"configured":true},"latency_ms":640.4,"output_provider":"openai","provider":"openai","provider_type":"nlp","ready":true,"response_preview":"Hello. I'm Patient.","status":"ok"}],"tts":[{"bytes":4096,"detail":{"configured":true},"latency_ms":210.11,"provider":"polly","provider_type":"tts","ready":true,"status":"ok"}]},"timestamp":"2026-04-11T12:58:10.118673+00:00"}},"Body_batch_transcribe_asr_batch_post":{"properties":{"audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Audio"}},"type":"object","required":["audio"],"title":"Body_batch_transcribe_asr_batch_post"},"Body_batch_transcribe_provider_asr__provider__batch_post":{"properties":{"audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Audio"}},"type":"object","required":["audio"],"title":"Body_batch_transcribe_provider_asr__provider__batch_post"},"Body_public_chat_audio_chat_audio_post":{"properties":{"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"include_avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include Avatar"},"avatar_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Provider"}},"type":"object","required":["file"],"title":"Body_public_chat_audio_chat_audio_post"},"CompetencyItem":{"properties":{"label":{"type":"string","title":"Label"},"weight":{"type":"number","title":"Weight","default":1.0},"scoring_mode":{"type":"string","title":"Scoring Mode","default":"level"},"critical":{"type":"boolean","title":"Critical","default":false},"hints":{"items":{"type":"string"},"type":"array","title":"Hints"}},"additionalProperties":true,"type":"object","required":["label"],"title":"CompetencyItem"},"ConversationTurn":{"properties":{"role":{"type":"string","enum":["candidate","patient","system"],"title":"Role"},"text":{"type":"string","title":"Text"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["role","text"],"title":"ConversationTurn"},"CriticalFailure":{"properties":{"label":{"type":"string","title":"Label"},"rationale":{"type":"string","title":"Rationale"}},"type":"object","required":["label","rationale"],"title":"CriticalFailure"},"DomainScore":{"properties":{"label":{"type":"string","title":"Label"},"rating":{"type":"string","title":"Rating"},"score":{"type":"number","title":"Score"},"rationale":{"type":"string","title":"Rationale"},"evidence":{"items":{"type":"string"},"type":"array","title":"Evidence"}},"type":"object","required":["label","rating","score","rationale"],"title":"DomainScore"},"EvaluationMeta":{"properties":{"version":{"type":"string","title":"Version","default":"ev-1.0.0"}},"additionalProperties":true,"type":"object","title":"EvaluationMeta"},"EvaluationRequest":{"properties":{"station_slug":{"type":"string","title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"transcript":{"items":{"$ref":"#/components/schemas/ConversationTurn"},"type":"array","title":"Transcript"},"mode":{"type":"string","title":"Mode","default":"final"}},"type":"object","required":["station_slug"],"title":"EvaluationRequest"},"EvaluationResponse":{"properties":{"overall_rating":{"type":"string","title":"Overall Rating"},"total_score":{"type":"number","title":"Total Score"},"score_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Score Percent","default":0.0},"domain_scores":{"items":{"$ref":"#/components/schemas/DomainScore"},"type":"array","title":"Domain Scores"},"strengths":{"items":{"type":"string"},"type":"array","title":"Strengths"},"missed_points":{"items":{"type":"string"},"type":"array","title":"Missed Points"},"feedback":{"items":{"type":"string"},"type":"array","title":"Feedback"},"critical_failures":{"items":{"$ref":"#/components/schemas/CriticalFailure"},"type":"array","title":"Critical Failures"},"performance_breakdown":{"$ref":"#/components/schemas/PerformanceBreakdown"}},"type":"object","required":["overall_rating","total_score","domain_scores","strengths","missed_points","feedback"],"title":"EvaluationResponse"},"FeedbackChecklistItem":{"properties":{"id":{"type":"integer","title":"Id"},"title":{"type":"string","title":"Title"},"details":{"type":"string","title":"Details","default":""}},"additionalProperties":true,"type":"object","required":["id","title"],"title":"FeedbackChecklistItem"},"Guardrails":{"properties":{"forbidden_topics":{"items":{"type":"string"},"type":"array","title":"Forbidden Topics"},"mandatory_disclosures":{"items":{"type":"string"},"type":"array","title":"Mandatory Disclosures"},"handoff_triggers":{"items":{"type":"string"},"type":"array","title":"Handoff Triggers"},"privacy_rules":{"items":{"type":"string"},"type":"array","title":"Privacy Rules"},"out_of_scope_responses":{"items":{"type":"string"},"type":"array","title":"Out Of Scope Responses"}},"additionalProperties":true,"type":"object","title":"Guardrails"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InteractionRecord":{"properties":{"id":{"type":"integer","title":"Id","default":0},"kind":{"type":"string","enum":["ask","review","feedback","contact","evaluation","evaluation_summary"],"title":"Kind"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"user_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Text"},"ai_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Text"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"attachment_paths":{"items":{"type":"string"},"type":"array","title":"Attachment Paths"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["kind"],"title":"InteractionRecord"},"MockExam":{"properties":{"slug":{"type":"string","title":"Slug"},"title":{"type":"string","title":"Title"},"session_label":{"type":"string","title":"Session Label"},"station_slugs":{"items":{"type":"string"},"type":"array","title":"Station Slugs"},"notes":{"additionalProperties":true,"type":"object","title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["slug","title","session_label"],"title":"MockExam"},"PerformanceBreakdown":{"properties":{"strongest_domains":{"items":{"type":"string"},"type":"array","title":"Strongest Domains"},"improvement_domains":{"items":{"type":"string"},"type":"array","title":"Improvement Domains"},"domains":{"items":{"$ref":"#/components/schemas/PerformanceDomainBreakdown"},"type":"array","title":"Domains"}},"type":"object","title":"PerformanceBreakdown"},"PerformanceDomainBreakdown":{"properties":{"label":{"type":"string","title":"Label"},"rating":{"type":"string","title":"Rating"},"score":{"type":"number","title":"Score"},"score_percent":{"type":"number","title":"Score Percent"},"rationale":{"type":"string","title":"Rationale"},"evidence":{"items":{"type":"string"},"type":"array","title":"Evidence"},"strength":{"type":"boolean","title":"Strength","default":false},"improvement_priority":{"type":"boolean","title":"Improvement Priority","default":false}},"type":"object","required":["label","rating","score","score_percent","rationale"],"title":"PerformanceDomainBreakdown"},"Persona":{"properties":{"name":{"type":"string","title":"Name"},"age":{"type":"integer","title":"Age"},"affect":{"type":"string","title":"Affect"},"communication_style":{"type":"string","title":"Communication Style"},"goals_concerns":{"items":{"type":"string"},"type":"array","title":"Goals Concerns"},"nonverbal_cues":{"items":{"type":"string"},"type":"array","title":"Nonverbal Cues"},"do_not_volunteer":{"items":{"type":"string"},"type":"array","title":"Do Not Volunteer"}},"additionalProperties":true,"type":"object","required":["name","age","affect","communication_style"],"title":"Persona"},"PromptBlock":{"properties":{"station_name":{"type":"string","title":"Station Name"},"case_synopsis":{"type":"string","title":"Case Synopsis"}},"additionalProperties":true,"type":"object","required":["station_name","case_synopsis"],"title":"PromptBlock"},"ProviderDefaultAuditCollection":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProviderDefaultAuditEntry"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ProviderDefaultAuditCollection"},"ProviderDefaultAuditEntry":{"properties":{"id":{"type":"integer","title":"Id","default":0},"category":{"type":"string","enum":["asr","nlp","tts"],"title":"Category"},"old_provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Provider Name"},"new_provider_name":{"type":"string","title":"New Provider Name"},"actor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"source":{"type":"string","title":"Source","default":"admin_api"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["category","new_provider_name"],"title":"ProviderDefaultAuditEntry"},"ProviderDefaultBundle":{"properties":{"asr":{"$ref":"#/components/schemas/ProviderDefaultEntry"},"nlp":{"$ref":"#/components/schemas/ProviderDefaultEntry"},"tts":{"$ref":"#/components/schemas/ProviderDefaultEntry"}},"type":"object","required":["asr","nlp","tts"],"title":"ProviderDefaultBundle"},"ProviderDefaultEntry":{"properties":{"category":{"type":"string","enum":["asr","nlp","tts"],"title":"Category"},"provider_name":{"type":"string","title":"Provider Name"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["category","provider_name"],"title":"ProviderDefaultEntry"},"ProviderDefaultUpdateRequest":{"properties":{"asr_provider":{"anyOf":[{"type":"string","enum":["faster_whisper","whisper","openai","deepgram","elevenlabs","azure","aws_transcribe_medical","parakeet_stream","multitalker_parakeet"]},{"type":"null"}],"title":"Asr Provider","description":"Live ASR provider. Options: faster_whisper, whisper, openai, deepgram, elevenlabs, azure, aws_transcribe_medical, parakeet_stream, multitalker_parakeet."},"nlp_provider":{"anyOf":[{"type":"string","const":"openai"},{"type":"null"}],"title":"Nlp Provider","description":"Live NLP provider. Options: openai."},"tts_provider":{"anyOf":[{"type":"string","enum":["elevenlabs","azure","deepgram","openai","polly"]},{"type":"null"}],"title":"Tts Provider","description":"Live TTS provider. Options: elevenlabs, azure, deepgram, openai, polly."},"actor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"source":{"type":"string","title":"Source","default":"admin_api"}},"type":"object","title":"ProviderDefaultUpdateRequest"},"ProviderDefaultsResponse":{"properties":{"defaults":{"$ref":"#/components/schemas/ProviderDefaultBundle"},"supported":{"$ref":"#/components/schemas/ProviderSupportedMap"}},"type":"object","required":["defaults","supported"],"title":"ProviderDefaultsResponse"},"ProviderDefaultsUpdateResponse":{"properties":{"defaults":{"$ref":"#/components/schemas/ProviderDefaultBundle"},"supported":{"$ref":"#/components/schemas/ProviderSupportedMap"},"updated":{"type":"boolean","title":"Updated"}},"type":"object","required":["defaults","supported","updated"],"title":"ProviderDefaultsUpdateResponse"},"ProviderSupportedMap":{"properties":{"asr":{"items":{"type":"string","enum":["faster_whisper","whisper","openai","deepgram","elevenlabs","azure","aws_transcribe_medical","parakeet_stream","multitalker_parakeet"]},"type":"array","title":"Asr"},"nlp":{"items":{"type":"string","const":"openai"},"type":"array","title":"Nlp"},"tts":{"items":{"type":"string","enum":["elevenlabs","azure","deepgram","openai","polly"]},"type":"array","title":"Tts"}},"type":"object","required":["asr","nlp","tts"],"title":"ProviderSupportedMap"},"PublicAskResponse":{"properties":{"interaction":{"$ref":"#/components/schemas/InteractionRecord"},"extracted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted Text"},"attachments":{"items":{"$ref":"#/components/schemas/UploadedAsset"},"type":"array","title":"Attachments"},"provider":{"type":"string","title":"Provider"},"model":{"type":"string","title":"Model"},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["interaction","provider","model"],"title":"PublicAskResponse"},"PublicAttemptStartRequest":{"properties":{"candidate_id":{"type":"string","title":"Candidate Id"},"attempt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attempt Id"},"attempt_type":{"type":"string","enum":["single_station","full_osce","custom"],"title":"Attempt Type","default":"single_station"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"station_slugs":{"items":{"type":"string"},"type":"array","title":"Station Slugs"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["candidate_id"],"title":"PublicAttemptStartRequest"},"PublicChatMessage":{"properties":{"role":{"type":"string","enum":["user","assistant","system"],"title":"Role"},"content":{"type":"string","title":"Content"}},"type":"object","required":["role","content"],"title":"PublicChatMessage"},"PublicChatResponse":{"properties":{"reply":{"type":"string","title":"Reply"},"messages":{"items":{"$ref":"#/components/schemas/PublicChatMessage"},"type":"array","title":"Messages"},"tts_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Url"},"avatar":{"anyOf":[{"$ref":"#/components/schemas/AvatarRenderResponse"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"transcript":{"items":{"$ref":"#/components/schemas/ConversationTurn"},"type":"array","title":"Transcript"},"evaluation":{"anyOf":[{"$ref":"#/components/schemas/EvaluationResponse"},{"type":"null"}]},"feedback":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Feedback"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"metrics":{"additionalProperties":{"type":"number"},"type":"object","title":"Metrics"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["reply","messages"],"title":"PublicChatResponse"},"PublicChatTextRequest":{"properties":{"station":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"messages":{"items":{"$ref":"#/components/schemas/PublicChatMessage"},"type":"array","title":"Messages"},"user_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Input"},"include_tts":{"type":"boolean","title":"Include Tts","default":true},"include_avatar":{"type":"boolean","title":"Include Avatar","default":false},"avatar_provider":{"type":"string","enum":["did","heygen_lite","heygen_video","liveavatar","auto"],"title":"Avatar Provider","default":"auto"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"eval_mode":{"type":"string","title":"Eval Mode","default":"off"},"feedback_mode":{"type":"string","title":"Feedback Mode","default":"none"}},"type":"object","title":"PublicChatTextRequest"},"PublicConversationTurn":{"properties":{"role":{"anyOf":[{"type":"string","enum":["candidate","patient","system"]},{"type":"null"}],"title":"Role"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"speaker":{"anyOf":[{"type":"string","enum":["candidate","patient","system"]},{"type":"null"}],"title":"Speaker"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"PublicConversationTurn"},"PublicEvaluateRequest":{"properties":{"station_slug":{"type":"string","title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"attempt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attempt Id"},"transcript":{"items":{"$ref":"#/components/schemas/PublicConversationTurn"},"type":"array","title":"Transcript"},"feedback_mode":{"type":"string","title":"Feedback Mode","description":"Accepted for compatibility. The public evaluate route currently returns examiner-style evaluation output.","default":"examiner"}},"type":"object","required":["station_slug"],"title":"PublicEvaluateRequest"},"PublicFeedbackRequest":{"properties":{"text":{"type":"string","title":"Text"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Url"},"source":{"type":"string","title":"Source","default":"product"}},"type":"object","required":["text"],"title":"PublicFeedbackRequest"},"PublicFeedbackResponse":{"properties":{"interaction":{"$ref":"#/components/schemas/InteractionRecord"},"accepted":{"type":"boolean","title":"Accepted","default":true},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["interaction"],"title":"PublicFeedbackResponse"},"PublicInteractionCollectionResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InteractionRecord"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"PublicInteractionCollectionResponse"},"PublicMockExamCollectionResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MockExam"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"PublicMockExamCollectionResponse"},"PublicReviewRequest":{"properties":{"text":{"type":"string","title":"Text"},"station_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"generate_ai_response":{"type":"boolean","title":"Generate Ai Response","default":true}},"type":"object","required":["text"],"title":"PublicReviewRequest"},"PublicReviewResponse":{"properties":{"interaction":{"$ref":"#/components/schemas/InteractionRecord"},"extracted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted Text"},"attachments":{"items":{"$ref":"#/components/schemas/UploadedAsset"},"type":"array","title":"Attachments"},"provider":{"type":"string","title":"Provider"},"model":{"type":"string","title":"Model"},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["interaction","provider","model"],"title":"PublicReviewResponse"},"PublicSessionEndRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"station_slug":{"type":"string","title":"Station Slug"},"transcript":{"items":{"$ref":"#/components/schemas/PublicConversationTurn"},"type":"array","title":"Transcript"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["session_id","station_slug"],"title":"PublicSessionEndRequest"},"PublicSessionEndResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"domains":{"additionalProperties":{"type":"integer"},"type":"object","title":"Domains"},"checklist":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Checklist"},"overall_band":{"type":"string","title":"Overall Band"},"tips":{"items":{"type":"string"},"type":"array","title":"Tips"},"evaluation":{"$ref":"#/components/schemas/EvaluationResponse"}},"type":"object","required":["session_id","domains","checklist","overall_band","tips","evaluation"],"title":"PublicSessionEndResponse"},"PublicSessionStartRequest":{"properties":{"station_slug":{"type":"string","title":"Station Slug"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"attempt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attempt Id"},"exam_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam Slug"},"attempt_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attempt Type"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["station_slug"],"title":"PublicSessionStartRequest"},"PublicSessionStartResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"PublicSessionStartResponse"},"ReleaseInfoResponse":{"properties":{"service":{"type":"string","title":"Service"},"environment":{"type":"string","title":"Environment"},"version":{"type":"string","title":"Version"},"release_at":{"type":"string","title":"Release At"},"image_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Uri"},"source_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Sha"}},"type":"object","required":["service","environment","version","release_at"],"title":"ReleaseInfoResponse"},"ReplaceValueRequest":{"properties":{"from_value":{"type":"string","title":"From Value"},"to_value":{"type":"string","title":"To Value"}},"type":"object","required":["from_value","to_value"],"title":"ReplaceValueRequest"},"Rubric":{"properties":{"marking_sheet_title":{"type":"string","title":"Marking Sheet Title"},"overall_scale":{"items":{"type":"string"},"type":"array","title":"Overall Scale"},"domain_rating_scale":{"items":{"type":"string"},"type":"array","title":"Domain Rating Scale"},"rating_to_score":{"additionalProperties":{"type":"number"},"type":"object","title":"Rating To Score"},"competency_items":{"items":{"$ref":"#/components/schemas/CompetencyItem"},"type":"array","title":"Competency Items"},"feedback_checklist":{"items":{"$ref":"#/components/schemas/FeedbackChecklistItem"},"type":"array","title":"Feedback Checklist"}},"additionalProperties":true,"type":"object","required":["marking_sheet_title","overall_scale","domain_rating_scale","rating_to_score"],"title":"Rubric"},"SessionCreateRequest":{"properties":{"station_slug":{"type":"string","title":"Station Slug"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["station_slug"],"title":"SessionCreateRequest"},"SessionEndRequest":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","title":"SessionEndRequest"},"SessionRecord":{"properties":{"session_id":{"type":"string","title":"Session Id"},"station_slug":{"type":"string","title":"Station Slug"},"status":{"type":"string","enum":["active","completed"],"title":"Status","default":"active"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"transcript":{"items":{"$ref":"#/components/schemas/ConversationTurn"},"type":"array","title":"Transcript"},"state":{"$ref":"#/components/schemas/SessionState"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["session_id","station_slug"],"title":"SessionRecord"},"SessionState":{"properties":{"distress_level":{"type":"string","title":"Distress Level","default":"baseline"},"handoff_required":{"type":"boolean","title":"Handoff Required","default":false},"end_status":{"type":"string","title":"End Status","default":"active"},"disclosed_items":{"items":{"type":"string"},"type":"array","title":"Disclosed Items"},"rapport_level":{"type":"integer","title":"Rapport Level","default":0},"turn_index":{"type":"integer","title":"Turn Index","default":0},"topics_covered":{"items":{"type":"string"},"type":"array","title":"Topics Covered"},"last_candidate_intent":{"type":"string","title":"Last Candidate Intent","default":"unknown"},"last_patient_focus":{"type":"string","title":"Last Patient Focus","default":"opening"},"facts_revealed_by_topic":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Facts Revealed By Topic"},"conversation_summary":{"items":{"type":"string"},"type":"array","title":"Conversation Summary"},"recent_candidate_themes":{"items":{"type":"string"},"type":"array","title":"Recent Candidate Themes"},"reply_style":{"type":"string","title":"Reply Style","default":"guarded"},"notes":{"additionalProperties":true,"type":"object","title":"Notes"}},"type":"object","title":"SessionState"},"SessionSummary":{"properties":{"session_id":{"type":"string","title":"Session Id"},"station_slug":{"type":"string","title":"Station Slug"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"turn_count":{"type":"integer","title":"Turn Count"},"message_count":{"type":"integer","title":"Message Count"},"exchange_count":{"type":"integer","title":"Exchange Count"},"candidate_turn_count":{"type":"integer","title":"Candidate Turn Count","default":0},"patient_turn_count":{"type":"integer","title":"Patient Turn Count","default":0}},"type":"object","required":["session_id","station_slug","status","started_at","turn_count","message_count","exchange_count"],"title":"SessionSummary"},"SimulatedPatientRequest":{"properties":{"station_slug":{"type":"string","title":"Station Slug"},"candidate_message":{"type":"string","title":"Candidate Message"},"conversation_history":{"items":{"$ref":"#/components/schemas/ConversationTurn"},"type":"array","title":"Conversation History"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","required":["station_slug","candidate_message"],"title":"SimulatedPatientRequest"},"SimulatedPatientResponse":{"properties":{"patient_response":{"type":"string","title":"Patient Response"},"state":{"$ref":"#/components/schemas/SessionState"},"provider":{"type":"string","title":"Provider"},"model":{"type":"string","title":"Model"}},"type":"object","required":["patient_response","state","provider","model"],"title":"SimulatedPatientResponse"},"SourceMeta":{"properties":{"pdf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf"}},"additionalProperties":true,"type":"object","title":"SourceMeta"},"SpeakRequest":{"properties":{"text":{"type":"string","title":"Text"},"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice"}},"type":"object","required":["text"],"title":"SpeakRequest"},"Station":{"properties":{"slug":{"type":"string","title":"Slug"},"section":{"type":"string","title":"Section"},"title":{"type":"string","title":"Title"},"task":{"type":"string","title":"Task"},"prompts":{"$ref":"#/components/schemas/PromptBlock"},"lead":{"type":"string","title":"Lead"},"key_points":{"items":{"type":"string"},"type":"array","title":"Key Points"},"persona":{"$ref":"#/components/schemas/Persona"},"guardrails":{"$ref":"#/components/schemas/Guardrails"},"rubric":{"$ref":"#/components/schemas/Rubric"},"evaluation":{"$ref":"#/components/schemas/EvaluationMeta"},"sources":{"$ref":"#/components/schemas/SourceMeta"},"station_meta":{"$ref":"#/components/schemas/StationMeta"},"publication":{"$ref":"#/components/schemas/StationPublication"},"health":{"$ref":"#/components/schemas/StationHealth"}},"additionalProperties":true,"type":"object","required":["slug","section","title","task","prompts","lead","persona","guardrails","rubric","station_meta"],"title":"Station"},"StationCollection":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StationListItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"StationCollection"},"StationHealth":{"properties":{"issues":{"items":{"type":"string"},"type":"array","title":"Issues"},"has_rubric":{"type":"boolean","title":"Has Rubric","default":false},"has_key_points":{"type":"boolean","title":"Has Key Points","default":false},"has_persona":{"type":"boolean","title":"Has Persona","default":false},"has_guardrails":{"type":"boolean","title":"Has Guardrails","default":false},"has_tuning":{"type":"boolean","title":"Has Tuning","default":false},"simulation_ready":{"type":"boolean","title":"Simulation Ready","default":false},"evaluation_ready":{"type":"boolean","title":"Evaluation Ready","default":false},"publishable":{"type":"boolean","title":"Publishable","default":false}},"additionalProperties":true,"type":"object","title":"StationHealth"},"StationListItem":{"properties":{"slug":{"type":"string","title":"Slug"},"section":{"type":"string","title":"Section"},"title":{"type":"string","title":"Title"},"time_limit_minutes":{"type":"integer","title":"Time Limit Minutes"},"station_category":{"type":"string","title":"Station Category","default":"mixed"},"publication_status":{"type":"string","enum":["published","inactive"],"title":"Publication Status","default":"published"},"has_rubric":{"type":"boolean","title":"Has Rubric","default":false},"has_key_points":{"type":"boolean","title":"Has Key Points","default":false},"has_persona":{"type":"boolean","title":"Has Persona","default":false},"simulation_ready":{"type":"boolean","title":"Simulation Ready","default":false},"evaluation_ready":{"type":"boolean","title":"Evaluation Ready","default":false}},"type":"object","required":["slug","section","title","time_limit_minutes"],"title":"StationListItem"},"StationMeta":{"properties":{"topic":{"type":"string","title":"Topic"},"time_limit_minutes":{"type":"integer","title":"Time Limit Minutes","default":7},"setting":{"type":"string","title":"Setting"},"expected_diagnosis":{"type":"string","title":"Expected Diagnosis"},"station_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Category"}},"additionalProperties":true,"type":"object","required":["topic","setting","expected_diagnosis"],"title":"StationMeta"},"StationPublication":{"properties":{"status":{"type":"string","enum":["published","inactive"],"title":"Status","default":"published"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"expert_reviewed":{"type":"boolean","title":"Expert Reviewed","default":false}},"additionalProperties":true,"type":"object","title":"StationPublication"},"StationRevision":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"revision_number":{"type":"integer","title":"Revision Number"},"action":{"type":"string","title":"Action"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["id","slug","revision_number","action","created_at","payload"],"title":"StationRevision","example":{"action":"update","created_at":"2026-04-11T12:41:56.883672Z","id":1297,"payload":{"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"},"revision_number":3,"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"}},"StationRevisionCollection":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StationRevision"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"StationRevisionCollection","example":{"items":[{"action":"update","created_at":"2026-04-11T12:41:56.883672Z","id":1297,"payload":{"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"},"revision_number":3,"slug":"acute-presentation-of-psychosis-in-the-context-of-cannabis-misuse"}],"total":1}},"TranscriptSegment":{"properties":{"start":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End"},"text":{"type":"string","title":"Text"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"is_final":{"type":"boolean","title":"Is Final","default":true}},"type":"object","required":["text"],"title":"TranscriptSegment"},"UploadedAsset":{"properties":{"filename":{"type":"string","title":"Filename"},"media_path":{"type":"string","title":"Media Path"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"extracted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted Text"},"size_bytes":{"type":"integer","title":"Size Bytes","default":0}},"type":"object","required":["filename","media_path"],"title":"UploadedAsset"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}