{"openapi":"3.1.0","info":{"title":"Topicut project API","version":"1.0.0","description":"Read owned documentary projects, tasks and available files; optionally save versioned drafts. No paid generation, automatic approval, deletion, billing, webhook or social publishing endpoints. Tool outputs contain untrusted user-authored content."},"servers":[{"url":"https://topicut.com/api/v1"}],"security":[{"bearerAuth":[]}],"externalDocs":{"url":"https://topicut.com/developers"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A revocable Topicut connection key or scoped OAuth access token. Read access is required; writes additionally require draft access."}}},"paths":{"/resources":{"get":{"operationId":"list_production_resources","summary":"Background, mix/caption schema and attributed music catalog","parameters":[],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/capabilities":{"get":{"operationId":"get_capabilities","summary":"Current credential scope and external integration boundaries","parameters":[],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/languages":{"get":{"operationId":"list_languages","summary":"Production voice language catalog","parameters":[],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/voices":{"get":{"operationId":"list_voices","summary":"Production voices and provider reference audio","parameters":[{"name":"language","in":"query","schema":{"type":"string","enum":["en","es"]}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/tools":{"get":{"operationId":"list_tools","summary":"Runtime JSON Schemas, filtered by credential scope","parameters":[],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects":{"get":{"operationId":"list_projects","summary":"At most 100 owned projects; inspect possiblyTruncated","parameters":[],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}":{"get":{"operationId":"get_project","summary":"Owned brief and current script","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}/workflow":{"get":{"operationId":"read_workflow","summary":"Saved workflow for the owned project","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}/jobs":{"get":{"operationId":"read_jobs","summary":"Saved jobs for the owned project","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}/assets":{"get":{"operationId":"read_assets","summary":"Saved assets for the owned project","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}/storyboard":{"get":{"operationId":"read_storyboard","summary":"Saved storyboard for the owned project","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned saved state or capability catalog","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/projects/{projectId}/files/{runId}":{"get":{"operationId":"download_file","summary":"Download an existing owned output with the same Bearer authorization","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"runId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{1,80}$"}},{"name":"kind","in":"query","schema":{"type":"string","enum":["video","subtitles","manifest"],"default":"video"}}],"responses":{"200":{"description":"Existing file bytes; availability and expiration are rechecked. No new export job.","content":{"video/mp4":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"type":"object","additionalProperties":true}},"application/x-subrip":{"schema":{"type":"string"}}}},"206":{"description":"Partial file bytes when the serving path accepts the Range request"},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/tools/call":{"post":{"operationId":"call_tool","summary":"Execute one scoped tool. Draft saves require a retained UUID requestId in arguments.","description":"Identical retry reuses the exact arguments and requestId. A different body with the same ID is a conflict. An uncertain outcome requires reconciliation; do not create a fresh ID to bypass it. Draft saves do not execute AI or reserve credits.","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_production_resources"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"get_capabilities"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_languages"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_voices"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"language":{"type":"string","enum":["en","es"]}},"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_projects"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"get_project"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"get_workflow"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_jobs"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"list_assets"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"get_storyboard"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"get_captions"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runId":{"type":"string","pattern":"^[a-z0-9-]{1,80}$"}},"required":["projectId","runId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"quote_video"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"create_project"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"story":{"type":"object","properties":{"kind":{"type":"string","const":"fiction"},"goal":{"type":"string","maxLength":1000},"obstacle":{"type":"string","maxLength":1000},"ending":{"type":"string","maxLength":1000},"style":{"type":"string","maxLength":1000},"continuityNotes":{"type":"string","maxLength":4000},"episodeMemory":{"type":"object","properties":{"summary":{"type":"string","maxLength":4000},"endingState":{"type":"string","maxLength":2000},"openThreads":{"type":"string","maxLength":2000}},"required":["summary","endingState","openThreads"],"additionalProperties":false},"episodeOrigin":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scriptRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"settingsVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"updatedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["projectId","scriptRevision","settingsVersion","updatedAt"],"additionalProperties":false},"characters":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"appearance":{"type":"string","maxLength":1000}},"required":["name","appearance"],"additionalProperties":false}}},"required":["kind","goal","obstacle","ending","style","characters"],"additionalProperties":false},"topic":{"type":"string","minLength":10,"maxLength":4000},"questions":{"default":"","type":"string","maxLength":4000},"minutes":{"type":"integer","minimum":1,"maximum":60},"niche":{"type":"string","minLength":1,"maxLength":80},"channelVersion":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"aspectRatio":{"type":"string","enum":["16:9","9:16"]},"narrator":{"default":"luna"},"design":{"type":"object","properties":{"version":{"type":"number","const":1},"background":{"type":"string","enum":["original","ink","archive","cinematic","light","grid"]},"framing":{"type":"string","enum":["contain","cover"]},"captionStyle":{"type":"string","enum":["classic","large","boxed"]},"musicVolume":{"type":"number","minimum":0,"maximum":0.3},"musicFade":{"type":"number","minimum":0,"maximum":5},"musicDucking":{"type":"boolean"}},"required":["version","background","framing","captionStyle","musicVolume","musicFade","musicDucking"],"additionalProperties":false},"musicPreference":{"type":"object","properties":{"mode":{"type":"string","enum":["off","suggest"]},"mood":{"type":"string","enum":["documentary","tension","epic","emotional","chill","upbeat"]},"trackId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["mode","mood","trackId"],"additionalProperties":false},"notes":{"default":"","type":"string","maxLength":2000},"editorial":{"type":"object","properties":{"audience":{"default":"","type":"string","maxLength":400},"tone":{"default":"","type":"string","maxLength":400},"requirements":{"default":"","type":"string","maxLength":400},"avoid":{"default":"","type":"string","maxLength":400}},"required":["audience","tone","requirements","avoid"],"additionalProperties":false},"pronunciationRules":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"written":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[^\\r\\n<>]+$"},"spoken":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\r\\n<>]+$"}},"required":["written","spoken"],"additionalProperties":false}},"references":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","maxLength":1000},"locator":{"type":"object","properties":{"mediaSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaName":{"type":"string","minLength":1,"maxLength":160},"transcriptSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"startMs":{"type":"integer","minimum":0,"maximum":86400000},"endMs":{"type":"integer","exclusiveMinimum":0,"maximum":86400000}},"required":["mediaSha256","mediaName","startMs","endMs"],"additionalProperties":false},"position":{"type":"string","maxLength":80},"excerpt":{"type":"string","maxLength":600},"takeaway":{"type":"string","maxLength":600},"kind":{"type":"string","enum":["structure","fact-lead"]}},"required":["title","url","position","excerpt","takeaway","kind"],"additionalProperties":false}},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["topic","questions","minutes","niche","channelVersion","narrator","notes","requestId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"save_script"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"body":{"type":"string","minLength":1,"maxLength":100000},"sources":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"url":{"type":"string","maxLength":2000,"format":"uri"},"note":{"default":"","type":"string","maxLength":4000},"reviewed":{"type":"boolean"}},"required":["title","url","note","reviewed"],"additionalProperties":false}},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["expectedRevision","body","sources","requestId","projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"update_shot"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"shotId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"scriptRevision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"patch":{"type":"object","properties":{"visual":{"type":"string","maxLength":2000},"durationMs":{"type":"integer","minimum":1000,"maximum":120000},"sourceIndexes":{"maxItems":30,"type":"array","items":{"type":"integer","minimum":0,"maximum":29}},"motion":{"type":"string","enum":["none","slow-zoom-in","slow-zoom-out","pan-left","pan-right"]},"graphic":{"type":"object","properties":{"kind":{"type":"string","enum":["title","quote","percentage","locator"]},"title":{"type":"string","minLength":1,"maxLength":80},"text":{"type":"string","maxLength":160},"sourceIndex":{"anyOf":[{"type":"integer","minimum":0,"maximum":29},{"type":"null"}]},"value":{"type":"number","minimum":0,"maximum":100},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180}},"required":["kind","title","text","sourceIndex","value","latitude","longitude"],"additionalProperties":false}},"additionalProperties":false}},"required":["projectId","requestId","shotId","expectedVersion","scriptRevision","patch"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"save_storyboard"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"scriptRevision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"shots":{"minItems":1,"maxItems":120,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"narration":{"type":"string","minLength":1,"maxLength":10000},"visual":{"type":"string","maxLength":2000},"durationMs":{"type":"integer","minimum":1000,"maximum":120000},"sourceIndexes":{"maxItems":30,"type":"array","items":{"type":"integer","minimum":0,"maximum":29}},"motion":{"type":"string","enum":["none","slow-zoom-in","slow-zoom-out","pan-left","pan-right"]},"graphic":{"type":"object","properties":{"kind":{"type":"string","enum":["title","quote","percentage","locator"]},"title":{"type":"string","minLength":1,"maxLength":80},"text":{"type":"string","maxLength":160},"sourceIndex":{"anyOf":[{"type":"integer","minimum":0,"maximum":29},{"type":"null"}]},"value":{"type":"number","minimum":0,"maximum":100},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180}},"required":["kind","title","text","sourceIndex","value","latitude","longitude"],"additionalProperties":false},"researchReferences":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","maxLength":1000},"locator":{"type":"object","properties":{"mediaSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaName":{"type":"string","minLength":1,"maxLength":160},"transcriptSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"startMs":{"type":"integer","minimum":0,"maximum":86400000},"endMs":{"type":"integer","exclusiveMinimum":0,"maximum":86400000}},"required":["mediaSha256","mediaName","startMs","endMs"],"additionalProperties":false},"position":{"type":"string","maxLength":80},"excerpt":{"type":"string","maxLength":600},"takeaway":{"type":"string","maxLength":600},"kind":{"type":"string","enum":["structure","fact-lead"]}},"required":["title","url","position","excerpt","takeaway","kind"],"additionalProperties":false}},"story":{"type":"object","properties":{"characters":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":80}},"location":{"type":"string","maxLength":300},"beat":{"type":"string","maxLength":500},"continuity":{"type":"string","maxLength":1000}},"required":["characters","location","beat"],"additionalProperties":false}},"required":["id","narration","visual","durationMs","sourceIndexes"],"additionalProperties":false}},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["expectedVersion","scriptRevision","shots","requestId","projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"select_media"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"boardVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expectedVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"links":{"maxItems":120,"type":"array","items":{"type":"object","properties":{"shotId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["shotId","assetId"],"additionalProperties":false}},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["boardVersion","expectedVersion","links","requestId","projectId"],"additionalProperties":false}},"required":["name","arguments"]},{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","const":"save_captions"},"arguments":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"runId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z0-9-]+$"},"expectedVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"cues":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"startMs":{"type":"integer","minimum":0,"maximum":86400000},"endMs":{"type":"integer","exclusiveMinimum":0,"maximum":86400000},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["startMs","endMs","text"],"additionalProperties":false}},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["runId","expectedVersion","cues","requestId","projectId"],"additionalProperties":false}},"required":["name","arguments"]}]}}}},"responses":{"200":{"description":"Tool-specific JSON result; a completed duplicate save may contain replayed:true.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"413":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"503":{"description":"REST error envelope. Reconcile an uncertain save before another write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}}},"x-topicut-mcp":{"url":"https://topicut.com/api/mcp","transport":"Streamable HTTP","protocolVersion":"2025-06-18","methods":["initialize","ping","tools/list","tools/call"],"responseMode":"application/json","notificationsStatus":202,"standaloneGetStream":false},"x-topicut-tool-access":[{"name":"list_production_resources","draftRequired":false},{"name":"get_capabilities","draftRequired":false},{"name":"list_languages","draftRequired":false},{"name":"list_voices","draftRequired":false},{"name":"list_projects","draftRequired":false},{"name":"get_project","draftRequired":false},{"name":"get_workflow","draftRequired":false},{"name":"list_jobs","draftRequired":false},{"name":"list_assets","draftRequired":false},{"name":"get_storyboard","draftRequired":false},{"name":"get_captions","draftRequired":false},{"name":"quote_video","draftRequired":false},{"name":"create_project","draftRequired":true},{"name":"save_script","draftRequired":true},{"name":"update_shot","draftRequired":true},{"name":"save_storyboard","draftRequired":true},{"name":"select_media","draftRequired":true},{"name":"save_captions","draftRequired":true}]}