{"openapi":"3.1.0","info":{"title":"ScriptSeen API","version":"0.1.0"},"paths":{"/v1/trends":{"get":{"summary":"Trends","operationId":"trends_v1_trends_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/privacy/consent":{"get":{"summary":"Get Consent","operationId":"get_consent_v1_privacy_consent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Set Consent","operationId":"set_consent_v1_privacy_consent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/behavior/events":{"post":{"summary":"Behavior Events","operationId":"behavior_events_v1_behavior_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BehaviorBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Healthz","operationId":"healthz_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/config":{"get":{"summary":"Config","operationId":"config_v1_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/scripts/requests/{request_id}":{"get":{"summary":"Recover Script","operationId":"recover_script_v1_scripts_requests__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scripts/stream":{"post":{"summary":"Stream Script","operationId":"stream_script_v1_scripts_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Brief"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scripts":{"post":{"summary":"Script","description":"Non-streaming twin for integrations and smoke tests.","operationId":"script_v1_scripts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Brief"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scripts/hooks":{"post":{"summary":"Regenerate Script Hooks","description":"Vary one opening choice, preserving the other choices and script body.","operationId":"regenerate_script_hooks_v1_scripts_hooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HookRegenerationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scripts/paragraphs":{"post":{"summary":"Rewrite Script Paragraph","description":"Rewrite one displayed section. Shares the opening-line refresh allowance.","operationId":"rewrite_script_paragraph_v1_scripts_paragraphs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParagraphRewriteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scripts/perform":{"post":{"summary":"Perform","operationId":"perform_v1_scripts_perform_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/audio/{key}.wav":{"head":{"summary":"Audio","operationId":"audio_v1_audio__key__wav_head","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Audio","operationId":"audio_v1_audio__key__wav_head","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/realtime/session":{"post":{"summary":"Realtime Session","description":"Create one browser-to-OpenAI WebRTC Scout or rehearsal call.\n\nThe offer passes through this API so the long-lived OpenAI key stays\nserver-side. Media does not pass through ScriptSeen after the SDP\nhandshake.","operationId":"realtime_session_v1_realtime_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealtimeCoachBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/realtime/phase":{"post":{"summary":"Realtime Phase","description":"The session fields for the room a Scout journey is moving into.\n\nThe client applies them to its live call with ``session.update``. The\nprompts and tools stay server-owned; no allowance is spent here because\nthe journey was counted when the call was created, and a call the\nserver is no longer in the path of cannot be metered per room anyway.","operationId":"realtime_phase_v1_realtime_phase_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealtimePhaseBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/takes/analyze":{"post":{"summary":"Analyze","operationId":"analyze_v1_takes_analyze_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_v1_takes_analyze_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/library":{"get":{"summary":"List Scripts","operationId":"list_scripts_v1_library_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Save Script","operationId":"save_script_v1_library_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatedScript"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/library/remove":{"post":{"summary":"Remove Script","operationId":"remove_script_v1_library_remove_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveScript"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/delete":{"post":{"summary":"Delete Account","operationId":"delete_account_v1_account_delete_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/billing/checkout":{"post":{"summary":"Checkout","operationId":"checkout_v1_billing_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/billing/portal":{"post":{"summary":"Portal","operationId":"portal_v1_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/billing/apple/transaction":{"post":{"summary":"Apple Transaction","description":"The iOS app posts StoreKit's signed transaction; the plan follows it.","operationId":"apple_transaction_v1_billing_apple_transaction_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleTransactionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/apple/notifications":{"post":{"summary":"Apple Notifications","description":"App Store Server Notifications V2. Apple retries anything but a 2xx.","operationId":"apple_notifications_v1_billing_apple_notifications_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleNotificationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/webhook":{"post":{"summary":"Webhook","operationId":"webhook_v1_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Resource Metadata","operationId":"resource_metadata__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"summary":"Resource Metadata","operationId":"resource_metadata__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"summary":"Server Metadata","operationId":"server_metadata__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/register":{"post":{"summary":"Register","operationId":"register_oauth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/authorize":{"get":{"summary":"Authorize","operationId":"authorize_oauth_authorize_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/request/{request_id}":{"get":{"summary":"Consent Details","operationId":"consent_details_oauth_request__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/consent":{"post":{"summary":"Consent","operationId":"consent_oauth_consent_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/token":{"post":{"summary":"Token","operationId":"token_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/revoke":{"post":{"summary":"Revoke Token","operationId":"revoke_token_oauth_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/agent/connections":{"get":{"summary":"Connections","operationId":"connections_v1_agent_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/agent/connections/{connection_id}/permissions":{"post":{"summary":"Connection Permission","operationId":"connection_permission_v1_agent_connections__connection_id__permissions_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/connections/{connection_id}":{"delete":{"summary":"Disconnect","operationId":"disconnect_v1_agent_connections__connection_id__delete","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/keys":{"get":{"summary":"List Keys","operationId":"list_keys_v1_agent_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Key","operationId":"create_key_v1_agent_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentKeyCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/keys/{key_id}":{"delete":{"summary":"Revoke Key","operationId":"revoke_key_v1_agent_keys__key_id__delete","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"}}}}}}},"/v1/agent/capabilities":{"get":{"summary":"Capabilities","operationId":"capabilities_v1_agent_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/agent/scripts":{"post":{"summary":"Agent Script","operationId":"agent_script_v1_agent_scripts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentScriptBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/audio":{"post":{"summary":"Agent Audio","operationId":"agent_audio_v1_agent_audio_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/video-projects":{"post":{"summary":"Agent Video","operationId":"agent_video_v1_agent_video_projects_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVideoBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/practice/takes":{"post":{"summary":"Practice Take","operationId":"practice_take_v1_practice_takes_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_practice_take_v1_practice_takes_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat-assets/{name}":{"get":{"summary":"Chat Asset","operationId":"chat_asset_v1_chat_assets__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video-editor/save":{"get":{"summary":"Video Save Page","operationId":"video_save_page_v1_video_editor_save_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/video-edits/{edit_id}":{"get":{"summary":"Read Video Edit","operationId":"read_video_edit_v1_video_edits__edit_id__get","parameters":[{"name":"edit_id","in":"path","required":true,"schema":{"type":"string","title":"Edit Id"}},{"name":"since","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Since"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Change Video Edit","operationId":"change_video_edit_v1_video_edits__edit_id__post","parameters":[{"name":"edit_id","in":"path","required":true,"schema":{"type":"string","title":"Edit Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoEditBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentKeyCreate":{"properties":{"label":{"type":"string","maxLength":80,"minLength":1,"title":"Label","default":"My AI agent"},"scopes":{"items":{"type":"string","enum":["scripts:generate","audio:generate","video:prepare","library:read","library:write","coach:practice"]},"type":"array","maxItems":6,"minItems":1,"title":"Scopes"}},"type":"object","title":"AgentKeyCreate"},"AgentScriptBody":{"properties":{"topic":{"type":"string","maxLength":4000,"minLength":1,"title":"Topic","description":"What the video is about."},"audience":{"type":"string","maxLength":500,"minLength":1,"title":"Audience","description":"Who the video is for."},"platform":{"type":"string","enum":["tiktok","reels","youtube-shorts"],"title":"Platform","description":"Where the video will be posted.","default":"tiktok"},"duration":{"type":"integer","maximum":180.0,"minimum":10.0,"title":"Duration","description":"Target spoken length in seconds.","default":45},"tone":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Tone","description":"Optional tone or style note."},"temperature":{"type":"number","maximum":1.5,"minimum":0.0,"title":"Temperature","description":"Creativity, from 0 (steady) to 1.5 (loosest).","default":0.8},"mode":{"type":"string","enum":["take","story","skit","howto"],"title":"Mode","description":"Writing mode: take = a point of view and a clear close; story = one moment, a turn — not a lecture; skit = two voices, a bit; howto = steps a viewer can follow.","default":"take"}},"type":"object","required":["topic","audience"],"title":"AgentScriptBody"},"AgentVideoBody":{"properties":{"project_url":{"type":"string","maxLength":1200,"minLength":1,"title":"Project Url","description":"project.studio_url exactly as create_script returned it."}},"type":"object","required":["project_url"],"title":"AgentVideoBody"},"AppleNotificationBody":{"properties":{"signedPayload":{"type":"string","maxLength":200000,"minLength":20,"title":"Signedpayload"}},"type":"object","required":["signedPayload"],"title":"AppleNotificationBody","description":"App Store Server Notifications V2 envelope."},"AppleTransactionBody":{"properties":{"jws":{"type":"string","maxLength":50000,"minLength":20,"title":"Jws"}},"type":"object","required":["jws"],"title":"AppleTransactionBody","description":"A StoreKit 2 signed transaction (JWS) from the iOS app."},"BehaviorBatch":{"properties":{"events":{"items":{"$ref":"#/components/schemas/BehaviorEvent"},"type":"array","maxItems":20,"minItems":1,"title":"Events"}},"type":"object","required":["events"],"title":"BehaviorBatch"},"BehaviorEvent":{"properties":{"schema_version":{"type":"integer","const":1,"title":"Schema Version","default":1},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"event_name":{"type":"string","enum":["script_opened","practice_session_started","practice_checkpoint","practice_session_ended","practice_attempt_completed","practice_control_changed","practice_error","live_turn"],"title":"Event Name"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"installation_id":{"type":"string","format":"uuid","title":"Installation Id"},"product_session_id":{"type":"string","format":"uuid","title":"Product Session Id"},"script_id":{"type":"string","maxLength":128,"minLength":1,"title":"Script Id"},"script_version_id":{"anyOf":[{"type":"string","maxLength":71},{"type":"null"}],"title":"Script Version Id"},"practice_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Practice Session Id"},"attempt_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Attempt Id"},"surface":{"type":"string","enum":["script","teleprompter","line_practice"],"title":"Surface"},"environment":{"type":"string","enum":["production","development","test"],"title":"Environment"},"app_version":{"type":"string","maxLength":64,"minLength":1,"title":"App Version"},"ui_locale":{"type":"string","maxLength":16,"minLength":2,"title":"Ui Locale","default":"en"},"device_class":{"type":"string","enum":["mobile","tablet","desktop","unknown"],"title":"Device Class","default":"unknown"},"consent":{"$ref":"#/components/schemas/Consent"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"}},"type":"object","required":["event_id","event_name","occurred_at","installation_id","product_session_id","script_id","surface","environment","app_version","consent","properties"],"title":"BehaviorEvent"},"Body_analyze_v1_takes_analyze_post":{"properties":{"audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Audio"},"package":{"type":"string","title":"Package"},"request":{"type":"string","title":"Request","default":"{}"},"offset_s":{"type":"number","title":"Offset S","default":0.0},"beat":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Beat"},"sentence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sentence"},"feedback_language":{"type":"string","title":"Feedback Language","default":"en"},"script_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Script Id"},"practice_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Practice Session Id"},"attempt_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Attempt Id"},"cues":{"type":"integer","title":"Cues","default":1},"speed":{"type":"number","title":"Speed","default":1.0}},"type":"object","required":["audio","package"],"title":"Body_analyze_v1_takes_analyze_post"},"Body_practice_take_v1_practice_takes_post":{"properties":{"audio":{"type":"string","contentMediaType":"application/octet-stream","title":"Audio"},"package":{"type":"string","title":"Package"},"request":{"type":"string","title":"Request","default":"{}"},"offset_s":{"type":"number","title":"Offset S","default":0.0},"beat":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Beat"},"sentence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sentence"},"feedback_language":{"type":"string","title":"Feedback Language","default":"en"},"script_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Script Id"},"practice_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Practice Session Id"},"attempt_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Attempt Id"},"cues":{"type":"integer","title":"Cues","default":2},"speed":{"type":"number","title":"Speed","default":1.0}},"type":"object","required":["audio","package"],"title":"Body_practice_take_v1_practice_takes_post"},"Brief":{"properties":{"topic":{"type":"string","maxLength":4000,"minLength":1,"title":"Topic"},"audience":{"type":"string","maxLength":500,"minLength":1,"title":"Audience"},"platform":{"type":"string","enum":["tiktok","reels","youtube-shorts"],"title":"Platform","default":"tiktok"},"duration":{"type":"integer","maximum":180.0,"minimum":10.0,"title":"Duration","default":45},"tone":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Tone"},"temperature":{"type":"number","maximum":1.5,"minimum":0.0,"title":"Temperature","default":0.8},"mode":{"type":"string","title":"Mode","default":"take"},"goal":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Goal"},"request_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Request Id"},"recovery_key":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Recovery Key"}},"type":"object","required":["topic","audience"],"title":"Brief","description":"What a creator tells us. Bounds mirror ScriptRequest and the lab form."},"Change":{"properties":{"op":{"type":"string","enum":["choose","auto","order","skip","use","captions","note","clear","render","add_clips","remove_clip","move","audio","cut","render_status","handoff"],"title":"Op"},"sentence":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Sentence","description":"Sentence number, from 1."},"through":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Through","description":"Last sentence of a range, inclusive."},"clip":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Clip","description":"Clip id (c1, c2, …), its number, or its exact file name."},"clips":{"anyOf":[{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","maxItems":24},{"type":"null"}],"title":"Clips","description":"For order: clip ids in order."},"start_s":{"anyOf":[{"type":"number","maximum":10800.0,"minimum":0.0},{"type":"null"}],"title":"Start S","description":"For choose: seconds into the clip to start from."},"on":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"On","description":"For captions."},"text":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Text","description":"For note: what the clip shows."},"add":{"anyOf":[{"items":{"$ref":"#/components/schemas/ClipIn"},"type":"array","maxItems":24},{"type":"null"}],"title":"Add"},"source":{"anyOf":[{"type":"string","enum":["read","file"]},{"type":"null"}],"title":"Source"},"seconds":{"anyOf":[{"type":"number","maximum":3600.0,"minimum":0.0},{"type":"null"}],"title":"Seconds"},"voice":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Voice"},"cut":{"anyOf":[{"$ref":"#/components/schemas/CutReport"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["idle","requested","rendering","done","failed","cancelled"]},{"type":"null"}],"title":"Status"},"progress":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Progress"},"bytes":{"anyOf":[{"type":"integer","maximum":10737418240.0,"minimum":0.0},{"type":"null"}],"title":"Bytes"},"message":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Message"},"card":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9-]{8,40}$"},{"type":"null"}],"title":"Card"},"by_steps":{"anyOf":[{"type":"integer","maximum":24.0,"minimum":-24.0},{"type":"null"}],"title":"By Steps"}},"type":"object","required":["op"],"title":"Change","description":"A change from either party: ChatGPT's decisions plus the card's own\nreports (the clips it holds, the audio it chose, the cut it computed and\nhow its render is going)."},"ClipIn":{"properties":{"name":{"type":"string","maxLength":160,"minLength":1,"title":"Name"},"duration_ms":{"type":"integer","maximum":10800000.0,"minimum":100.0,"title":"Duration Ms"},"width":{"anyOf":[{"type":"integer","maximum":16384.0,"minimum":1.0},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer","maximum":16384.0,"minimum":1.0},{"type":"null"}],"title":"Height"}},"type":"object","required":["name","duration_ms"],"title":"ClipIn"},"Consent":{"properties":{"product_analytics":{"type":"boolean","title":"Product Analytics","default":false},"model_improvement":{"type":"boolean","title":"Model Improvement","default":false},"version":{"type":"string","maxLength":32,"minLength":1,"title":"Version","default":"2026-09-05"},"decided":{"type":"boolean","title":"Decided","default":true}},"type":"object","title":"Consent"},"CutReport":{"properties":{"audio_ms":{"type":"integer","maximum":3600000.0,"minimum":1.0,"title":"Audio Ms"},"total_ms":{"type":"integer","maximum":3600000.0,"minimum":1.0,"title":"Total Ms"},"shots":{"type":"integer","maximum":2000.0,"minimum":0.0,"title":"Shots"},"sentences":{"items":{"$ref":"#/components/schemas/SentenceCut"},"type":"array","maxItems":120,"title":"Sentences"},"notes":{"items":{"type":"string"},"type":"array","maxItems":6,"title":"Notes"},"warnings":{"items":{"type":"string"},"type":"array","maxItems":6,"title":"Warnings"},"decisions":{"type":"string","maxLength":64,"title":"Decisions","default":""}},"type":"object","required":["audio_ms","total_ms","shots"],"title":"CutReport"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HookRegenerationBody":{"properties":{"result":{"additionalProperties":true,"type":"object","title":"Result"},"source_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Source Id"},"hook_number":{"anyOf":[{"type":"integer","maximum":3.0,"minimum":1.0},{"type":"null"}],"title":"Hook Number"}},"type":"object","required":["result"],"title":"HookRegenerationBody","description":"The finished result a client wants a new opening for.\n\nThe API returns a complete updated result so recent and saved scripts use\nexactly the same package after the refresh."},"ParagraphRewriteBody":{"properties":{"result":{"additionalProperties":true,"type":"object","title":"Result"},"paragraph_number":{"type":"integer","maximum":400.0,"minimum":1.0,"title":"Paragraph Number"},"notes":{"type":"string","maxLength":500,"title":"Notes","default":""},"source_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Source Id"}},"type":"object","required":["result","paragraph_number"],"title":"ParagraphRewriteBody","description":"Rewrite one displayed section of a finished script, leaving the others intact."},"PerformBody":{"properties":{"package":{"additionalProperties":true,"type":"object","title":"Package","description":"the script package as the studio holds it"},"request":{"$ref":"#/components/schemas/PerformRequestMeta"},"speaker":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Speaker"},"language":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Language","default":"auto"},"prefetch":{"type":"boolean","title":"Prefetch","default":false},"script_id":{"anyOf":[{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9_.:-]+$"},{"type":"null"}],"title":"Script Id"},"practice_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Practice Session Id"},"attempt_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Attempt Id"},"cues":{"type":"integer","maximum":9.0,"minimum":1.0,"title":"Cues","default":1}},"type":"object","required":["package"],"title":"PerformBody"},"PerformRequestMeta":{"properties":{"duration_s":{"type":"integer","maximum":600.0,"minimum":0.0,"title":"Duration S","default":0},"platform":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Platform"},"tone":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Tone"}},"type":"object","title":"PerformRequestMeta","description":"The part of the original brief the cue plan needs."},"RatedScript":{"properties":{"source_id":{"type":"string","maxLength":128,"minLength":1,"title":"Source Id"},"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"},"result":{"additionalProperties":true,"type":"object","title":"Result"}},"type":"object","required":["source_id","rating","result"],"title":"RatedScript"},"RealtimeCoachBody":{"properties":{"sdp":{"type":"string","maxLength":50000,"minLength":20,"title":"Sdp"},"mode":{"type":"string","enum":["practice","studio_brief","journey"],"title":"Mode","default":"practice"},"line":{"type":"string","maxLength":1200,"minLength":1,"title":"Line","default":"Studio script brief"},"delivery_note":{"type":"string","maxLength":500,"title":"Delivery Note","default":""},"punches":{"items":{"type":"string"},"type":"array","maxItems":12,"title":"Punches"},"target_seconds":{"type":"number","maximum":60.0,"minimum":0.5,"title":"Target Seconds","default":5.0},"feedback_language":{"type":"string","maxLength":8,"title":"Feedback Language","default":"en"},"context":{"$ref":"#/components/schemas/RealtimeScriptContext"},"brief":{"$ref":"#/components/schemas/RealtimeStudioBrief"},"script_id":{"anyOf":[{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9_.:-]+$"},{"type":"null"}],"title":"Script Id"},"practice_session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Practice Session Id"},"attempt_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Attempt Id"}},"type":"object","required":["sdp"],"title":"RealtimeCoachBody"},"RealtimePhaseBody":{"properties":{"phase":{"type":"string","enum":["home","brief","writing","script","practice","prompter"],"title":"Phase"},"feedback_language":{"type":"string","maxLength":8,"title":"Feedback Language","default":"en"},"surface":{"type":"string","enum":["studio","script","saved","ideas","account"],"title":"Surface","default":"studio"},"scripts":{"items":{"$ref":"#/components/schemas/RealtimeScriptListItem"},"type":"array","maxItems":20,"title":"Scripts"},"brief":{"$ref":"#/components/schemas/RealtimeStudioBrief"},"script":{"$ref":"#/components/schemas/RealtimeScriptSummary"},"line":{"type":"string","maxLength":1200,"title":"Line","default":""},"delivery_note":{"type":"string","maxLength":500,"title":"Delivery Note","default":""},"punches":{"items":{"type":"string"},"type":"array","maxItems":12,"title":"Punches"},"target_seconds":{"type":"number","maximum":60.0,"minimum":0.5,"title":"Target Seconds","default":5.0},"context":{"$ref":"#/components/schemas/RealtimeScriptContext"},"abilities":{"items":{"type":"string"},"type":"array","maxItems":16,"title":"Abilities"}},"type":"object","required":["phase"],"title":"RealtimePhaseBody","description":"The room a journey is moving into, with the bounded context it needs."},"RealtimeScriptContext":{"properties":{"title":{"type":"string","maxLength":300,"title":"Title","default":""},"full_script":{"type":"string","maxLength":8000,"title":"Full Script","default":""},"previous_line":{"type":"string","maxLength":1200,"title":"Previous Line","default":""},"next_line":{"type":"string","maxLength":1200,"title":"Next Line","default":""},"line_number":{"anyOf":[{"type":"integer","maximum":500.0,"minimum":1.0},{"type":"null"}],"title":"Line Number"},"total_lines":{"anyOf":[{"type":"integer","maximum":500.0,"minimum":1.0},{"type":"null"}],"title":"Total Lines"},"narrative_role":{"type":"string","maxLength":40,"title":"Narrative Role","default":""},"speaker":{"type":"string","maxLength":80,"title":"Speaker","default":""},"topic":{"type":"string","maxLength":4000,"title":"Topic","default":""},"audience":{"type":"string","maxLength":300,"title":"Audience","default":""},"platform":{"type":"string","maxLength":40,"title":"Platform","default":""},"tone":{"type":"string","maxLength":300,"title":"Tone","default":""},"total_target_seconds":{"anyOf":[{"type":"integer","maximum":600.0,"minimum":1.0},{"type":"null"}],"title":"Total Target Seconds"},"delivery_style":{"type":"string","maxLength":800,"title":"Delivery Style","default":""},"story_intent":{"type":"string","maxLength":1500,"title":"Story Intent","default":""}},"type":"object","title":"RealtimeScriptContext","description":"Bounded story context that helps the coach understand one selected line."},"RealtimeScriptListItem":{"properties":{"number":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Number"},"title":{"type":"string","maxLength":300,"title":"Title","default":""},"source":{"type":"string","enum":["recent","saved"],"title":"Source","default":"recent"},"platform":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Platform"},"seconds":{"anyOf":[{"type":"number","maximum":3600.0,"minimum":0.0},{"type":"null"}],"title":"Seconds"},"when":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"When"},"practiced":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Practiced"},"last_score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Last Score"},"best_score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Best Score"}},"type":"object","required":["number"],"title":"RealtimeScriptListItem","description":"One of the creator's scripts as Scout sees it in the home and script rooms: a number to\nask for and a title to recognise, nothing of the script itself."},"RealtimeScriptSection":{"properties":{"number":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Number"},"text":{"type":"string","maxLength":240,"title":"Text","default":""}},"type":"object","required":["number"],"title":"RealtimeScriptSection","description":"One displayed section, numbered the way the script page numbers it."},"RealtimeScriptSummary":{"properties":{"title":{"type":"string","maxLength":300,"title":"Title","default":""},"hooks":{"items":{"type":"string"},"type":"array","maxItems":3,"title":"Hooks"},"chosen_hook":{"anyOf":[{"type":"integer","maximum":3.0,"minimum":1.0},{"type":"null"}],"title":"Chosen Hook"},"script":{"type":"string","maxLength":8000,"title":"Script","default":""},"sections":{"items":{"$ref":"#/components/schemas/RealtimeScriptSection"},"type":"array","maxItems":20,"title":"Sections"},"line_count":{"anyOf":[{"type":"integer","maximum":500.0,"minimum":1.0},{"type":"null"}],"title":"Line Count"},"read_available":{"type":"boolean","title":"Read Available","default":false},"has_cues":{"type":"boolean","title":"Has Cues","default":false},"can_record":{"type":"boolean","title":"Can Record","default":false},"coach_listens":{"type":"boolean","title":"Coach Listens","default":false},"take_available":{"type":"boolean","title":"Take Available","default":false},"platform":{"type":"string","maxLength":40,"title":"Platform","default":""},"topic":{"type":"string","maxLength":300,"title":"Topic","default":""},"audience":{"type":"string","maxLength":300,"title":"Audience","default":""},"target_seconds":{"anyOf":[{"type":"integer","maximum":600.0,"minimum":1.0},{"type":"null"}],"title":"Target Seconds"},"word_count":{"anyOf":[{"type":"integer","maximum":5000.0,"minimum":0.0},{"type":"null"}],"title":"Word Count"},"estimated_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":0.0},{"type":"null"}],"title":"Estimated Seconds"},"why":{"additionalProperties":{"type":"string"},"type":"object","title":"Why"}},"type":"object","title":"RealtimeScriptSummary","description":"What Scout is told about the finished script in the script and prompter rooms."},"RealtimeStudioBrief":{"properties":{"topic":{"type":"string","maxLength":4000,"title":"Topic","default":""},"audience":{"type":"string","maxLength":500,"title":"Audience","default":""},"platform":{"type":"string","enum":["tiktok","reels","youtube-shorts"],"title":"Platform","default":"tiktok"},"duration":{"type":"integer","maximum":180.0,"minimum":10.0,"title":"Duration","default":30},"confirmed_fields":{"items":{"type":"string","enum":["topic","audience","platform","duration"]},"type":"array","maxItems":4,"title":"Confirmed Fields"}},"type":"object","title":"RealtimeStudioBrief","description":"The editable Studio fields shared with Scout at session start."},"RemoveScript":{"properties":{"id":{"type":"string","pattern":"^[a-f0-9]{64}$","title":"Id"}},"type":"object","required":["id"],"title":"RemoveScript"},"SentenceCut":{"properties":{"ms":{"type":"integer","maximum":3600000.0,"minimum":0.0,"title":"Ms"},"clip":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Clip"},"clips":{"items":{"type":"string"},"type":"array","maxItems":6,"title":"Clips"},"chosen":{"type":"boolean","title":"Chosen","default":false},"pace_pct":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Pace Pct","default":100},"held":{"type":"boolean","title":"Held","default":false}},"type":"object","required":["ms"],"title":"SentenceCut"},"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"},"VideoEditBody":{"properties":{"changes":{"items":{"$ref":"#/components/schemas/Change"},"type":"array","maxItems":40,"minItems":1,"title":"Changes"}},"type":"object","required":["changes"],"title":"VideoEditBody","description":"What the video editor card sends: its own changes to the edit."}}}}