{"openapi":"3.1.0","info":{"title":"mimicxai Developer Portal","description":"Create apps, manage API keys, and integrate mimicxai models","version":"0.2.0"},"paths":{"/dev/docs-page":{"get":{"tags":["portal"],"summary":"Docs Page","operationId":"docs_page_dev_docs_page_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dev/":{"get":{"tags":["portal"],"summary":"Portal","operationId":"portal_dev__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dev/{demo_file}.html":{"get":{"tags":["demos"],"summary":"Serve Demo Html","description":"Serve demo HTML files (document-intelligence.html, flowboard.html, etc.)","operationId":"serve_demo_html_dev__demo_file__html_get","parameters":[{"name":"demo_file","in":"path","required":true,"schema":{"type":"string","title":"Demo File"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/image-builds":{"get":{"tags":["hardware"],"summary":"List available OS image builds","description":"Proxy to admin image-builder/list — shows builds the dev can download.","operationId":"list_image_builds_dev_image_builds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/download/image/{target}":{"get":{"tags":["hardware"],"summary":"Download hardware OS image","description":"Serve or redirect to a hardware OS image.\n\nResolution order:\n  1. Env var points to a URL  → 302 redirect (CDN / S3 pre-signed URL)\n  2. Env var points to a file → stream file directly\n  3. Env var not set          → 404 with JSON explanation","operationId":"download_image_dev_download_image__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/sdk/{file_path}":{"get":{"tags":["demos"],"summary":"Serve SDK files for demos","description":"Serve SDK files from the local sdk/ directory.\nUsed by demo pages to load modules without requiring cdn.mimicx.ai.","operationId":"serve_sdk_file_dev_sdk__file_path__get","parameters":[{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_dev_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_dev_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/auth/google":{"post":{"tags":["auth"],"summary":"Google Auth","description":"Sign in or register with Google. Auto-creates account on first sign-in.","operationId":"google_auth_dev_auth_google_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/auth/google-client-id":{"get":{"tags":["auth"],"summary":"Google Client Id","description":"Return the Google Client ID for frontend initialization.","operationId":"google_client_id_dev_auth_google_client_id_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dev/auth/me":{"get":{"tags":["auth"],"summary":"Me","operationId":"me_dev_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/catalog":{"get":{"tags":["catalog"],"summary":"Catalog","operationId":"catalog_dev_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dev/apps":{"get":{"tags":["apps"],"summary":"List Apps","operationId":"list_apps_dev_apps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["apps"],"summary":"Create App","operationId":"create_app_dev_apps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/apps/{app_id}":{"get":{"tags":["apps"],"summary":"Get App","operationId":"get_app_dev_apps__app_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["apps"],"summary":"Update App","operationId":"update_app_dev_apps__app_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAppRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["apps"],"summary":"Delete App","operationId":"delete_app_dev_apps__app_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/apps/{app_id}/keys":{"post":{"tags":["keys"],"summary":"Create Key","operationId":"create_key_dev_apps__app_id__keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/apps/{app_id}/keys/{key_id}":{"delete":{"tags":["keys"],"summary":"Revoke Key","operationId":"revoke_key_dev_apps__app_id__keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/apps/{app_id}/keys/{key_id}/regenerate":{"post":{"tags":["keys"],"summary":"Regenerate Key","operationId":"regenerate_key_dev_apps__app_id__keys__key_id__regenerate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/darwin-tokens":{"get":{"tags":["keys"],"summary":"List Darwin Tokens","operationId":"list_darwin_tokens_dev_darwin_tokens_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["keys"],"summary":"Create Darwin Token","operationId":"create_darwin_token_dev_darwin_tokens_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/darwin-tokens/{key_id}":{"delete":{"tags":["keys"],"summary":"Revoke Darwin Token","operationId":"revoke_darwin_token_dev_darwin_tokens__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/apps/{app_id}/usage":{"get":{"tags":["usage"],"summary":"Get Usage","operationId":"get_usage_dev_apps__app_id__usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/playground/stream":{"post":{"tags":["playground"],"summary":"Playground Stream","description":"Streaming playground — returns SSE tokens for real-time display.","operationId":"playground_stream_dev_playground_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaygroundRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/deep-search":{"post":{"tags":["playground"],"summary":"Playground Deep Search","description":"Playground proxy for Darwin Deep Search — streams SSE sourced intelligence report.","operationId":"playground_deep_search_dev_playground_deep_search_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground":{"post":{"tags":["playground"],"summary":"Playground","description":"Test an API call — uses selected app+key for proper permission/usage tracking.","operationId":"playground_dev_playground_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaygroundRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/config/stream-key":{"get":{"tags":["playground"],"summary":"Get Stream Key","description":"Return a short-lived stream JWT for portal WebSocket/STT use.\nIncludes app_id + key_id from developer's first active key so the\nJWT can be validated via the same DB path as real API keys.","operationId":"get_stream_key_dev_config_stream_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/key-for-stream":{"get":{"tags":["playground"],"summary":"Get Key For Stream","description":"Return the raw API key value for use in client-side WebSocket/streaming.\nOnly accessible to the key's owner via developer session.","operationId":"get_key_for_stream_dev_playground_key_for_stream_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_id","in":"query","required":true,"schema":{"type":"string","title":"App Id"}},{"name":"key_id","in":"query","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/playground/voice":{"post":{"tags":["playground"],"summary":"Playground Voice","description":"Playground proxy for voice endpoints.","operationId":"playground_voice_dev_playground_voice_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/biometrix":{"post":{"tags":["playground"],"summary":"Playground Biometrix","description":"Playground proxy for biometrix endpoints (detect/extract/compare/identify).\nUses developer auth — no API key needed.","operationId":"playground_biometrix_dev_playground_biometrix_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/depth-estimate":{"post":{"tags":["playground"],"summary":"Playground Depth Estimate","description":"Estimate monocular depth map + 3D positions for all detections.\n\nBody: {\n  \"image_base64\": \"...\",          # required\n  \"detections\": [{bbox, ...}],   # optional: enrich existing detections\n  \"task\": \"face\"|\"object_signature\"|\"person_reid\",  # for auto-detect\n  \"intrinsics\": {\"fx\":525,\"fy\":525,\"cx\":320,\"cy\":240}  # optional\n}\n\nReturns: {depth_map_b64, detections_3d, backend, latency_ms}","operationId":"playground_depth_estimate_dev_playground_depth_estimate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/spatial-query":{"post":{"tags":["playground"],"summary":"Playground Spatial Query","description":"Find all enrolled subjects within a radius from the camera.\n\nBody: {\n  \"image_base64\": \"...\",\n  \"org_id\": \"my-org\",\n  \"radius_m\": 3.0,\n  \"task\": \"face\"|\"object_signature\"|\"person_reid\",\n  \"intrinsics\": {...}  # optional\n}\n\nReturns: {subjects_in_radius, total_detected, query_radius_m, latency_ms}","operationId":"playground_spatial_query_dev_playground_spatial_query_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/multicam-calibrate":{"post":{"tags":["playground"],"summary":"Playground Multicam Calibrate","description":"Store homography for a camera view.\n\nBody: {\n  \"session_id\": \"my-scene\",        # groups cameras for the same scene\n  \"camera_id\": \"cam_A\",\n  \"src_points\": [[x,y], ...],      # ≥4 image-space floor marker points\n  \"dst_points\": [[x,y], ...],      # corresponding world (BEV metres) points\n}\n\nReturns: {status, camera_id, inliers, total_points}","operationId":"playground_multicam_calibrate_dev_playground_multicam_calibrate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/playground/multicam-identify":{"post":{"tags":["playground"],"summary":"Playground Multicam Identify","description":"Fuse person re-ID across multiple camera views.\n\nBody: {\n  \"session_id\": \"my-scene\",       # must match calibration session_id (optional)\n  \"org_id\": \"my-org\",\n  \"task\": \"face\"|\"person_reid\",\n  \"views\": [\n    {\"camera_id\": \"cam_A\", \"image_base64\": \"...\"},\n    {\"camera_id\": \"cam_B\", \"image_base64\": \"...\"},\n    ...\n  ],\n  \"enrich_depth\": true,           # add 3D positions from depth estimation\n  \"similarity_threshold\": 0.50\n}\n\nReturns: {tracks, total_views, fused_subjects, latency_ms}","operationId":"playground_multicam_identify_dev_playground_multicam_identify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/skills":{"get":{"tags":["gateway"],"summary":"Gateway List Skills","description":"List all enabled skills (tools) available on model.mimicx.ai.","operationId":"gateway_list_skills_api_v1_skills_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/skills/{skill_name}/invoke":{"post":{"tags":["gateway"],"summary":"Gateway Invoke Skill","description":"Invoke a skill by name on model.mimicx.ai.\n\nBody: {\"args\": {...}} — forwarded to the skill. Works for every backend\nkind (Distribute/HTTP, Python in-process, chain). Auth: mx_live_ key.","operationId":"gateway_invoke_skill_api_v1_skills__skill_name__invoke_post","parameters":[{"name":"skill_name","in":"path","required":true,"schema":{"type":"string","title":"Skill Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent":{"post":{"tags":["gateway"],"summary":"Gateway Agent","description":"Unified model endpoint on model.mimicx.ai — proxies to Darwin.\n\nBody: {\"prompt\": \"...\", \"model\": \"Darwin\"|\"Nova\", \"stream\": false, ...}\n  model \"Darwin\" → chat + LLM/text skills only\n  model \"Nova\"   → chat + media skills (image / video / 3D)\nAuth: Authorization: Bearer mx_live_...  (or X-API-Key).\nStreaming (SSE) is passed through when \"stream\": true.","operationId":"gateway_agent_api_v1_agent_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/depth-estimate":{"post":{"tags":["gateway"],"summary":"Gateway Depth Estimate","operationId":"gateway_depth_estimate_api_v1_depth_estimate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/spatial-query":{"post":{"tags":["gateway"],"summary":"Gateway Spatial Query","operationId":"gateway_spatial_query_api_v1_spatial_query_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/multicam-identify":{"post":{"tags":["gateway"],"summary":"Gateway Multicam Identify","operationId":"gateway_multicam_identify_api_v1_multicam_identify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/predict":{"post":{"tags":["gateway"],"summary":"Gateway Predict","description":"Universal predict endpoint. Accepts any JSON body.\n\nStandard format:  {\"family\": \"darwin\", \"task\": \"conversation\", \"input_data\": \"Hello\"}\nFakeLess format:  {\"audio_base64\": \"...\", \"speaker_label\": \"John\"}\nVoice format:     {\"action\": \"register\", \"audio_base64\": \"...\", \"speaker_label\": \"...\"}","operationId":"gateway_predict_api_v1_predict_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/generate":{"post":{"tags":["gateway"],"summary":"Gateway Generate","operationId":"gateway_generate_api_v1_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stt-status":{"get":{"tags":["gateway"],"summary":"Gateway Stt Status","description":"Proxy Darwin STT status — useful for diagnosing 503 on /api/v1/transcribe.","operationId":"gateway_stt_status_api_v1_stt_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/transcribe":{"post":{"tags":["gateway"],"summary":"Gateway Transcribe","description":"Direct speech-to-text — accepts multipart OR JSON.\n\nMultipart: curl -F \"audio=@recording.wav\" -F \"language=auto\"\nJSON:      {\"audio_base64\": \"...\", \"language\": \"fr\", \"filename\": \"audio.webm\"}","operationId":"gateway_transcribe_api_v1_transcribe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/synthesize":{"post":{"tags":["gateway"],"summary":"Gateway Synthesize","description":"Direct text-to-speech. Body: {\"text\":\"Hello\",\"language\":\"en\"}","operationId":"gateway_synthesize_api_v1_synthesize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/voice/characteristics":{"post":{"tags":["voice"],"summary":"Voice Analyze","description":"Analyze voice characteristics from an audio sample.\n\nReturns:\n  - F0 fundamental frequency (pitch) statistics\n  - Gender estimate (male / female / neutral) with confidence\n  - Voice register (grave / medium / aigu)\n  - Speaking rate estimate\n  - Voiced ratio\n  - Energy / loudness stats\n\nBody JSON:\n  { \"audio_base64\": \"<base64>\", \"format\": \"webm\", \"language\": \"fr\" }\nor multipart:\n  -F \"audio=@recording.wav\"","operationId":"voice_analyze_api_v1_voice_characteristics_post","parameters":[{"name":"request","in":"query","required":true,"schema":{"title":"Request"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/voice/analyze":{"post":{"tags":["voice"],"summary":"Voice Analyze","description":"Analyze voice characteristics from an audio sample.\n\nReturns:\n  - F0 fundamental frequency (pitch) statistics\n  - Gender estimate (male / female / neutral) with confidence\n  - Voice register (grave / medium / aigu)\n  - Speaking rate estimate\n  - Voiced ratio\n  - Energy / loudness stats\n\nBody JSON:\n  { \"audio_base64\": \"<base64>\", \"format\": \"webm\", \"language\": \"fr\" }\nor multipart:\n  -F \"audio=@recording.wav\"","operationId":"voice_analyze_api_v1_voice_analyze_post","parameters":[{"name":"request","in":"query","required":true,"schema":{"title":"Request"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tracking/analyze":{"post":{"tags":["gateway"],"summary":"Gateway Tracking","description":"Smart Store People Tracker — proxy to Darwin smart-store endpoint.","operationId":"gateway_tracking_api_v1_tracking_analyze_post","parameters":[{"name":"request","in":"query","required":true,"schema":{"title":"Request"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/voice-id":{"post":{"tags":["gateway"],"summary":"Gateway Voice Id","description":"Voice footprint. Body: {\"action\":\"extract\",\"audio_base64\":\"...\"}","operationId":"gateway_voice_id_api_v1_voice_id_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health":{"get":{"tags":["gateway"],"summary":"Gateway Health","description":"Lightweight health check — no API key required.","operationId":"gateway_health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/translate":{"post":{"tags":["gateway"],"summary":"Gateway Translate","description":"Translation gateway — proxies to Darwin translation service.","operationId":"gateway_translate_api_v1_translate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/translate/languages":{"get":{"tags":["gateway"],"summary":"Gateway Translate Languages","description":"List supported translation languages.","operationId":"gateway_translate_languages_api_v1_translate_languages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/models":{"get":{"tags":["gateway"],"summary":"Gateway Models","operationId":"gateway_models_api_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/stream":{"post":{"tags":["gateway"],"summary":"Gateway Stream","description":"Streaming gateway — returns SSE tokens for real-time output.\n\nSupports all Darwin tasks including voice:\n    - conversation/reasoning/planning/vision: streams text tokens\n    - speech_to_text: streams transcription segments as they're processed\n    - text_to_speech: returns synthesis params (client-side rendering)\n    - voice_footprint: returns result (non-streaming, wrapped in SSE)\n\nUsage:\n    POST /api/v1/stream\n    Authorization: Bearer mx_...\n    {\"family\": \"darwin\", \"task\": \"conversation\", \"prompt\": \"Hello\"}","operationId":"gateway_stream_api_v1_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deep-search":{"post":{"tags":["gateway"],"summary":"Gateway Deep Search","description":"Deep Search — SearxNG web results + AI synthesis, streamed as SSE.\n\nClassifies the query (person / company / topic / news / threat / social_profile),\nfetches live results, and streams a sourced intelligence report.\n\nRequest body:\n    {\n      \"query\": \"OpenAI latest news\",\n      \"language\": \"en\",          // optional, default \"en\"\n      \"max_tokens\": 2048         // optional, default 2048\n    }\n\nResponse: text/event-stream  (same SSE format as /api/v1/stream)\n    data: <text chunk>\n    data: [DONE]\n\nAuthorization: Bearer mx_live_...  or  X-API-Key: mx_live_...","operationId":"gateway_deep_search_api_v1_deep_search_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/detect":{"post":{"tags":["gateway"],"summary":"Gateway Detect","description":"Detect biometric features (faces, liveness, footprints, emotions).\n\nPOST /api/v1/detect\n{\"family\": \"biometrix\", \"task\": \"face\", \"input_data\": {\"image_base64\": \"...\"}}\n\nReturns: {detections: [{bbox, confidence, landmarks, ...}], count: N}","operationId":"gateway_detect_api_v1_detect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/extract":{"post":{"tags":["gateway"],"summary":"Gateway Extract","description":"Extract biometric features → embedding vector.\n\nPOST /api/v1/extract\n{\"family\": \"biometrix\", \"task\": \"face\", \"input_data\": {\"image_base64\": \"...\"}}\n\nReturns: {embedding: [0.12, -0.34, ...], embedding_dim: 512}","operationId":"gateway_extract_api_v1_extract_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/compare":{"post":{"tags":["gateway"],"summary":"Gateway Compare","description":"1:1 biometric verification — compare probe vs reference.\n\nPOST /api/v1/compare\n{\"family\": \"biometrix\", \"task\": \"face\",\n \"input_data\": {\"probe\": {\"image_base64\": \"...\"}, \"reference\": {\"image_base64\": \"...\"}}}\n\nReturns: {match: true/false, score: 0.92, confidence: 0.92, threshold: 0.85}","operationId":"gateway_compare_api_v1_compare_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/identify":{"post":{"tags":["gateway"],"summary":"Gateway Identify","description":"1:N biometric search — find matches in gallery.\n\nPOST /api/v1/identify\n{\"family\": \"biometrix\", \"task\": \"face\", \"input_data\": {\"image_base64\": \"...\"}}\n\nReturns: {matches: [{id, score, confidence, ...}], total_matches: N}","operationId":"gateway_identify_api_v1_identify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/enroll":{"post":{"tags":["gateway"],"summary":"Gateway Enroll","description":"Enroll a biometric subject into an org gallery.\n\nPOST /api/v1/enroll\n{\"family\": \"biometrix\", \"task\": \"face\",\n \"input_data\": {\"org_id\": \"my-org\", \"subject_id\": \"user-123\", \"image_base64\": \"...\"}}\n\nReturns: {status: \"enrolled\", org_id, subject_id, embedding_dim}","operationId":"gateway_enroll_api_v1_enroll_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"tags":["gateway"],"summary":"Gateway Delete Enrollment","description":"Remove an enrolled subject from an org gallery.\n\nDELETE /api/v1/enroll  (or POST /api/v1/delete_enrollment)\n{\"family\": \"biometrix\", \"task\": \"face\",\n \"input_data\": {\"org_id\": \"my-org\", \"subject_id\": \"user-123\"}}\n\nReturns: {deleted: true/false, org_id, subject_id}","operationId":"gateway_delete_enrollment_api_v1_enroll_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/match":{"post":{"tags":["gateway"],"summary":"Gateway Match","description":"Match a probe image against enrolled subjects in an org gallery.\n\nPOST /api/v1/match\n{\"family\": \"biometrix\", \"task\": \"face\",\n \"input_data\": {\"org_id\": \"my-org\", \"image_base64\": \"...\"}}\n\nReturns: {matched: true/false, subject_id, score, threshold, candidates}","operationId":"gateway_match_api_v1_match_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/delete_enrollment":{"post":{"tags":["gateway"],"summary":"Gateway Delete Enrollment","description":"Remove an enrolled subject from an org gallery.\n\nDELETE /api/v1/enroll  (or POST /api/v1/delete_enrollment)\n{\"family\": \"biometrix\", \"task\": \"face\",\n \"input_data\": {\"org_id\": \"my-org\", \"subject_id\": \"user-123\"}}\n\nReturns: {deleted: true/false, org_id, subject_id}","operationId":"gateway_delete_enrollment_api_v1_delete_enrollment_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/translate/languages":{"get":{"tags":["gateway"],"summary":"Gateway Translate Languages","description":"Return the list of supported translation languages (proxied from Darwin).","operationId":"gateway_translate_languages_api_translate_languages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/translate":{"post":{"tags":["gateway"],"summary":"Gateway Translate","description":"Translate text between 130+ languages via Darwin LLM.\nProxied to the Darwin service — no API key required for portal use.","operationId":"gateway_translate_api_translate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dev/limits":{"get":{"tags":["portal"],"summary":"Get Dev Limits","description":"Return current developer's plan limits and usage.","operationId":"get_dev_limits_dev_limits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/billing/config":{"get":{"tags":["billing"],"summary":"Billing Config","operationId":"billing_config_dev_billing_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dev/billing/checkout":{"post":{"tags":["billing"],"summary":"Billing Checkout","operationId":"billing_checkout_dev_billing_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/billing/webhook":{"post":{"tags":["billing"],"summary":"Billing Webhook","operationId":"billing_webhook_dev_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dev/billing/portal":{"post":{"tags":["billing"],"summary":"Billing Portal","operationId":"billing_portal_dev_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/billing/verify-session":{"get":{"tags":["billing"],"summary":"Billing Verify Session","description":"Verify a Stripe Checkout session after redirect (handles 3D Secure completion).","operationId":"billing_verify_session_dev_billing_verify_session_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/email-config":{"get":{"tags":["organization"],"summary":"Org Email Config","description":"Check email configuration status (available to all plans).","operationId":"org_email_config_dev_org_email_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/org/test-email":{"post":{"tags":["organization"],"summary":"Org Test Email","description":"Send a test email to verify configuration (Enterprise only).","operationId":"org_test_email_dev_org_test_email_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/org":{"get":{"tags":["organization"],"summary":"Get Org","description":"Get developer's organization with members and invites.","operationId":"get_org_dev_org_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["organization"],"summary":"Update Org","description":"Update organization name.","operationId":"update_org_dev_org_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["organization"],"summary":"Create Org","description":"Create an organization (Enterprise only).","operationId":"create_org_dev_org_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/org/search-developer":{"get":{"tags":["organization"],"summary":"Search Developer","description":"Search for an existing developer by email (partial match, max 5 results).\nUsed to find users already registered on the platform to add directly.","operationId":"search_developer_dev_org_search_developer_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/add-member":{"post":{"tags":["organization"],"summary":"Add Member Direct","description":"Add an existing developer directly to the org (no invite email needed).","operationId":"add_member_direct_dev_org_add_member_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/org/invite":{"post":{"tags":["organization"],"summary":"Invite Member","description":"Invite a member to the organization. Sends email notification.","operationId":"invite_member_dev_org_invite_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/org/invite/{invite_id}":{"delete":{"tags":["organization"],"summary":"Revoke Invite","description":"Revoke a pending invite.","operationId":"revoke_invite_dev_org_invite__invite_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"string","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/invite/{invite_id}/resend":{"post":{"tags":["organization"],"summary":"Resend Invite","description":"Resend an invite email (or return the invite link if email not configured).","operationId":"resend_invite_dev_org_invite__invite_id__resend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"string","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/member/{dev_id}":{"delete":{"tags":["organization"],"summary":"Remove Member","description":"Remove a member from the organization.","operationId":"remove_member_dev_org_member__dev_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_id","in":"path","required":true,"schema":{"type":"string","title":"Dev Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/member/{dev_id}/role":{"put":{"tags":["organization"],"summary":"Change Member Role","description":"Change a member's role.","operationId":"change_member_role_dev_org_member__dev_id__role_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_id","in":"path","required":true,"schema":{"type":"string","title":"Dev Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/invite-info/{invite_id}":{"get":{"tags":["organization"],"summary":"Invite Info","description":"Public endpoint — returns invite details so the UI can show context before login.","operationId":"invite_info_dev_org_invite_info__invite_id__get","parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"string","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dev/org/accept-invite":{"post":{"tags":["organization"],"summary":"Accept Invite","description":"Accept an organization invite.","operationId":"accept_invite_dev_org_accept_invite_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/demos":{"get":{"tags":["demos"],"summary":"List SDK demos with plan gating","description":"Return all SDK demos with access status based on developer plan.","operationId":"list_demos_dev_demos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/dev/demos/{demo_id}":{"get":{"tags":["demos"],"summary":"Get SDK demo HTML","description":"Return demo HTML content — checks plan access.\nAccepts auth via header or ?t= query param (for iframe loading).","operationId":"get_demo_dev_demos__demo_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"demo_id","in":"path","required":true,"schema":{"type":"string","title":"Demo Id"}},{"name":"t","in":"query","required":false,"schema":{"type":"string","default":"","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/developer/metrics":{"get":{"tags":["metrics"],"summary":"Developer Metrics","operationId":"developer_metrics_api_developer_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["metrics"],"summary":"Developer Metrics Post","operationId":"developer_metrics_post_api_developer_metrics_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/metrics/formatted":{"get":{"tags":["metrics"],"summary":"Developer Metrics Formatted","operationId":"developer_metrics_formatted_api_developer_metrics_formatted_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/track":{"post":{"tags":["metrics"],"summary":"Developer Track","operationId":"developer_track_api_developer_track_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/embed/metrics.js":{"get":{"tags":["metrics"],"summary":"Developer Embed Js","operationId":"developer_embed_js_api_developer_embed_metrics_js_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/embed/badge.svg":{"get":{"tags":["metrics"],"summary":"Developer Embed Badge","operationId":"developer_embed_badge_api_developer_embed_badge_svg_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/metrics/debug":{"get":{"tags":["metrics"],"summary":"Developer Debug","operationId":"developer_debug_api_developer_metrics_debug_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/metrics/reset":{"post":{"tags":["metrics"],"summary":"Developer Reset","operationId":"developer_reset_api_developer_metrics_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/developer/info":{"get":{"tags":["metrics"],"summary":"Developer Info","operationId":"developer_info_api_developer_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"CreateAppRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"environment":{"type":"string","title":"Environment","default":"test"},"families":{"items":{"type":"string"},"type":"array","title":"Families","default":[]},"tasks":{"items":{"type":"string"},"type":"array","title":"Tasks","default":[]},"rate_limit":{"type":"integer","title":"Rate Limit","default":100},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["name"],"title":"CreateAppRequest"},"GatewayGenerateRequest":{"properties":{"family":{"type":"string","title":"Family","default":"darwin"},"task":{"type":"string","title":"Task","default":"conversation"},"prompt":{"type":"string","title":"Prompt"},"max_tokens":{"type":"integer","title":"Max Tokens","default":512},"system_prompt":{"type":"string","title":"System Prompt","default":""},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","default":{}}},"type":"object","required":["prompt"],"title":"GatewayGenerateRequest"},"GoogleAuthRequest":{"properties":{"credential":{"type":"string","title":"Credential"}},"type":"object","required":["credential"],"title":"GoogleAuthRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"PlaygroundRequest":{"properties":{"api_key":{"type":"string","title":"Api Key","default":""},"app_id":{"type":"string","title":"App Id","default":""},"key_id":{"type":"string","title":"Key Id","default":""},"model":{"type":"string","title":"Model","default":"Darwin"},"family":{"type":"string","title":"Family","default":"darwin"},"task":{"type":"string","title":"Task","default":"conversation"},"input_data":{"title":"Input Data"},"input":{"title":"Input"},"prompt":{"type":"string","title":"Prompt","default":""},"endpoint":{"type":"string","title":"Endpoint","default":"predict"},"system_prompt":{"type":"string","title":"System Prompt","default":""},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs","default":{}}},"additionalProperties":true,"type":"object","title":"PlaygroundRequest"},"RegisterRequest":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["name","email","password"],"title":"RegisterRequest"},"UpdateAppRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"families":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Families"},"tasks":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tasks"},"rate_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rate Limit"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"UpdateAppRequest"},"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"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}