{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"HeyGen Documentation","colors":{"primary":"#03C3FF","light":"#03C3FF","dark":"#03C3FF"},"logo":{"light":"https://mintcdn.com/heygen-1fa696a7/dQ_uLJDftFYFhC7B/logo/light.png?fit=max\u0026auto=format\u0026n=dQ_uLJDftFYFhC7B\u0026q=85\u0026s=b03d2e41dde1cc0b50cd50e574f66f1c","dark":"https://mintcdn.com/heygen-1fa696a7/dQ_uLJDftFYFhC7B/logo/dark.png?fit=max\u0026auto=format\u0026n=dQ_uLJDftFYFhC7B\u0026q=85\u0026s=1bce9897c94baace249bfc9bd5ebb894"},"favicon":{"light":"https://mintcdn.com/heygen-1fa696a7/eIkZ-KhF8P1D-58U/images/fav.png?fit=max\u0026auto=format\u0026n=eIkZ-KhF8P1D-58U\u0026q=85\u0026s=974346d2956697dca817da145b0107e8","dark":"https://mintcdn.com/heygen-1fa696a7/eIkZ-KhF8P1D-58U/images/fav.png?fit=max\u0026auto=format\u0026n=eIkZ-KhF8P1D-58U\u0026q=85\u0026s=974346d2956697dca817da145b0107e8"},"navbar":{"primary":{"type":"button","label":"Get Started","href":"https://platform.heygen.com"}},"seo":{"metatags":{"robots":"index, follow"},"indexing":"navigable"},"fonts":{"heading":{"family":"ABC Solar Display","source":"https://www-static-assets.heygen.com/fonts/solar-display/ABCSolarDisplay-Bold.woff2","format":"woff2"},"body":{"family":"TT Norms Pro","source":"https://www-static-assets.heygen.com/fonts/tt-norms/TT_Norms_Pro_Normal.woff2","format":"woff2"}},"integrations":{"posthog":{"apiKey":"phc_bcoaBa4uZdMp0CzXr7QhZRRpnNGgBRRZ1GStvuJVAgJ","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude","grok","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"heygen-1fa696a7","hasAudioNarration":false,"actualSubdomain":"heygen-1fa696a7","customDomains":[],"gitSource":{"type":"github","owner":"heygen-com","repo":"api-docs","deployBranch":"master","contentDirectory":"heygen-api","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee72e09030ab69ff9da9c2","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":118},{"language":"default","tag":"Developer Guide","count":80},{"language":"default","tag":"Models","count":18},{"language":"default","tag":"Video Composition","count":14},{"language":"default","tag":"Video Agent","count":13},{"language":"default","tag":"Video Translate","count":13},{"language":"default","tag":"Avatars","count":12},{"language":"default","tag":"MCP","count":11},{"language":"default","tag":"Templates","count":10},{"language":"default","tag":"On Brand","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"li[id=\"https://platform.heygen.com\"]>a,.lg\\:hidden>a[href=\"https://platform.heygen.com\"]{color:#03C3FF!important;font-weight:600}li[id=\"https://platform.heygen.com\"]>a svg,.lg\\:hidden>a[href=\"https://platform.heygen.com\"] svg{color:#03C3FF!important}#hg-platform-links{position:absolute;top:0;right:calc(var(--sidebar-width, 19rem) + 24px);height:48px;display:flex;align-items:center;gap:6px;z-index:30}@media (max-width: 1023px){#hg-platform-links{display:none}}#hg-platform-links .hg-pill{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;font-size:11.5px;font-weight:500;line-height:1;white-space:nowrap;text-decoration:none;color:rgb(55 65 81);border:1px solid rgb(3 7 18 / 0.1);background:rgb(3 7 18 / 0.02);transition:color 0.15s, border-color 0.15s, background 0.15s, box-shadow 0.15s}#hg-platform-links .hg-pill svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#hg-platform-links .hg-pill:hover{color:#0284c7;border-color:rgb(3 195 255 / 0.5);background:rgb(3 195 255 / 0.06)}#hg-platform-links .hg-pill--primary{color:#03131a;border-color:transparent;background:linear-gradient(90deg, #03C3FF, #7CF5C4);font-weight:600}#hg-platform-links .hg-pill--primary svg{fill:currentColor;stroke:none}#hg-platform-links .hg-pill--primary:hover{color:#03131a;border-color:transparent;background:linear-gradient(90deg, #03C3FF, #7CF5C4);box-shadow:0 0 0 3px rgb(3 195 255 / 0.18), 0 0 18px rgb(3 195 255 / 0.35)}html.dark #hg-platform-links .hg-pill:not(.hg-pill--primary){color:rgb(209 213 219);border-color:rgb(255 255 255 / 0.1);background:rgb(255 255 255 / 0.03)}html.dark #hg-platform-links .hg-pill:not(.hg-pill--primary):hover{color:#03C3FF;border-color:rgb(3 195 255 / 0.45);background:rgb(3 195 255 / 0.08)}@media (max-width: 1439px){#hg-platform-links .hg-pill:not(.hg-pill--primary){width:24px;padding:0;justify-content:center}#hg-platform-links .hg-pill:not(.hg-pill--primary) span{display:none}}@media (max-width: 1179px){#hg-platform-links .hg-pill:not(.hg-pill--primary){display:none}}"}],"page":{"pagePath":"reference/update-template","slug":"/reference/update-template","pageMetadata":{"title":"Update Template","description":"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.","deprecated":null,"version":null,"sidebarTitle":"Update template","openapi":"/openapi/external-api.json patch /v3/templates/{template_id}","href":"/reference/update-template","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/\", \"/variables. Returns the template detail.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update Template","description":"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.","deprecated":null,"version":null,"sidebarTitle":"Update template","openapi":"/openapi/external-api.json patch /v3/templates/{template_id}","href":"/reference/update-template","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/heygen-1fa696a7/c470e58be46e541b/platform-links.js"],"openApiReferenceData":{"operation":{"summary":"Update Template","description":"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.","tags":["Templates"],"security":["232c52a6-0e2f-4b2b-b3f0-39ce37fabbfd","603d2e32-d0a3-4d19-86a1-d29eb4514f0c"],"responses":{"200":"f37e2963-59cd-4377-a954-f1fa2af0056a","400":"847e4565-7bdf-4d68-b8a8-83acd275cfeb","401":"2cb62ae3-61a9-4399-8114-974fa9ccdf36","403":"2483eaf0-4d36-4897-845a-46e10669e8ab","404":"2739f885-a7b5-4c94-b5b6-598534e818ad","429":"8e5c6f80-69ea-4562-acac-6a6a3fb99bd8"},"x-mint":{"href":"/reference/update-template"},"operationId":"updateTemplateV3","parameters":["64202238-0c77-4440-b934-e30cbd872621"],"requestBody":"88b47aea-81c1-46ec-b8f1-46dd6a2b252a","x-heygen-required-scopes":["templates:write"],"method":"patch","type":"path","servers":["a5d566af-1bb6-47c4-8a1d-232a5eee4a1d"],"path":"/v3/templates/{template_id}","baseUrlOptions":["https://api.heygen.com"],"title":"Update Template","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"64202238-0c77-4440-b934-e30cbd872621":{"name":"template_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Unique template identifier","uniqueKey":"","typeLabel":"string"},"description":"Unique template identifier"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Request body for PATCH /v3/templates/{template_id}.","properties":{"name":{"description":"New template name","examples":["Q4 outreach v2"],"maxLength":255,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"}},"required":["name"],"title":"UpdateTemplateV3Request","type":"object","uniqueKey":"","typeLabel":"UpdateTemplateV3Request · object"},"examples":{"Example":{"title":"Example","value":{"name":"Q4 outreach v2"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f37e2963-59cd-4377-a954-f1fa2af0056a":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"description":"Template detail: its variable schema, the July scene summary and, for authoring workspaces, its composition.","properties":{"id":{"description":"Unique template identifier","examples":["77e650952c024c6188a35e23e7088617"],"title":"Id","type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"name":{"description":"Template name","examples":["Quarterly Update"],"title":"Name","type":"string","isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"thumbnail_url":{"oneOf":[{"type":"string","title":"Thumbnail Url","description":"URL to the template thumbnail image","uniqueKey":"data.thumbnail_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Thumbnail Url","description":"URL to the template thumbnail image","uniqueKey":"data.thumbnail_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.thumbnail_url","typeLabel":"string | null"},"aspect_ratio":{"oneOf":[{"type":"string","title":"Aspect Ratio","description":"Template aspect ratio","example":"16:9","uniqueKey":"data.aspect_ratio.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aspect Ratio","description":"Template aspect ratio","example":"16:9","uniqueKey":"data.aspect_ratio.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.aspect_ratio","typeLabel":"string | null"},"created_at":{"oneOf":[{"type":"integer","title":"Created At","description":"Unix timestamp of creation","example":1711929600,"uniqueKey":"data.created_at.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Created At","description":"Unix timestamp of creation","example":1711929600,"uniqueKey":"data.created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.created_at","typeLabel":"integer | null"},"updated_at":{"oneOf":[{"type":"integer","title":"Updated At","description":"Unix timestamp of last update","example":1711929600,"uniqueKey":"data.updated_at.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Updated At","description":"Unix timestamp of last update","example":1711929600,"uniqueKey":"data.updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.updated_at","typeLabel":"integer | null"},"variables":{"additionalProperties":{"oneOf":[{"type":"object","title":"TemplateTextVariable","description":"Replaces a text placeholder in the template.","required":["type","content"],"properties":{"type":{"const":"text","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.0.type","typeLabel":"string"},"content":{"description":"Replacement text content. May be empty in GET responses (unfilled template default); must be non-empty when generating.","maxLength":10000,"title":"Content","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.0.content","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.0","typeLabel":"TemplateTextVariable · object"},{"type":"object","title":"TemplateImageVariable","description":"Replaces an image placeholder in the template.","required":["type","asset"],"properties":{"type":{"const":"image","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.type","typeLabel":"string"},"asset":{"oneOf":[{"type":"object","title":"AssetUrl","description":"Asset input via publicly accessible HTTPS URL.","required":["type","url"],"properties":{"type":{"const":"url","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.0.type","typeLabel":"string"},"url":{"description":"Public http(s) URL HeyGen can download without auth or redirects. Not a local or sandbox path (/mnt/data/..., file://, sandbox:); upload such files and pass asset_id.","title":"Url","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.0.url","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.0","typeLabel":"AssetUrl · object"},{"type":"object","title":"AssetId","description":"Asset input via HeyGen asset ID from the asset upload endpoint.","required":["type","asset_id"],"properties":{"type":{"const":"asset_id","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.1.type","typeLabel":"string"},"asset_id":{"description":"HeyGen asset ID from an asset upload or import; not a third-party file ID.","title":"Asset Id","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.1.asset_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.1","typeLabel":"AssetId · object"},{"type":"object","title":"AssetBase64","description":"Asset input via base64-encoded content.","required":["type","media_type","data"],"x-mcp-visible":false,"properties":{"type":{"const":"base64","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.2.type","typeLabel":"string"},"media_type":{"description":"MIME type of the encoded content (e.g. \"image/png\")","title":"Media Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.2.media_type","typeLabel":"string"},"data":{"description":"Base64-encoded file content","title":"Data","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.2.data","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset.oneOf.2","typeLabel":"AssetBase64 · object"}],"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.1.asset","typeLabel":"AssetUrl · object | AssetId · object | AssetBase64 · object"},"fit":{"default":"contain","description":"How the image fits the element's box. Omit it on a template created from a video with POST /v3/templates to keep that video's framing: a background fills the frame, a placed image fits inside its box. On a template built in the HeyGen editor the default is contain.","enum":["cover","contain","crop","none"],"title":"Fit","type":"string","uniqueKey":"data.variables.additionalProperties.oneOf.1.fit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.1","typeLabel":"TemplateImageVariable · object"},{"type":"object","title":"TemplateVideoVariable","description":"Replaces a video placeholder in the template.","required":["type","asset"],"properties":{"type":{"const":"video","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.type","typeLabel":"string"},"asset":{"oneOf":[{"type":"object","title":"AssetUrl","description":"Asset input via publicly accessible HTTPS URL.","required":["type","url"],"properties":{"type":{"const":"url","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.0.type","typeLabel":"string"},"url":{"description":"Public http(s) URL HeyGen can download without auth or redirects. Not a local or sandbox path (/mnt/data/..., file://, sandbox:); upload such files and pass asset_id.","title":"Url","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.0.url","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.0","typeLabel":"AssetUrl · object"},{"type":"object","title":"AssetId","description":"Asset input via HeyGen asset ID from the asset upload endpoint.","required":["type","asset_id"],"properties":{"type":{"const":"asset_id","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.1.type","typeLabel":"string"},"asset_id":{"description":"HeyGen asset ID from an asset upload or import; not a third-party file ID.","title":"Asset Id","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.1.asset_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.1","typeLabel":"AssetId · object"},{"type":"object","title":"AssetBase64","description":"Asset input via base64-encoded content.","required":["type","media_type","data"],"x-mcp-visible":false,"properties":{"type":{"const":"base64","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.2.type","typeLabel":"string"},"media_type":{"description":"MIME type of the encoded content (e.g. \"image/png\")","title":"Media Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.2.media_type","typeLabel":"string"},"data":{"description":"Base64-encoded file content","title":"Data","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.2.data","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset.oneOf.2","typeLabel":"AssetBase64 · object"}],"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.2.asset","typeLabel":"AssetUrl · object | AssetId · object | AssetBase64 · object"},"fit":{"default":"contain","description":"How the video fits the element's box. Omit it on a template created from a video with POST /v3/templates to keep that video's framing: a background fills the frame, a placed clip fits inside its box. On a template built in the HeyGen editor the default is contain.","enum":["cover","contain","crop","none"],"title":"Fit","type":"string","uniqueKey":"data.variables.additionalProperties.oneOf.2.fit","typeLabel":"enum\u003cstring>"},"play_style":{"default":"loop","description":"Playback behavior when the video is shorter than the scene","enum":["fit_to_scene","freeze","loop","once","full_video"],"title":"Play Style","type":"string","uniqueKey":"data.variables.additionalProperties.oneOf.2.play_style","typeLabel":"enum\u003cstring>"},"volume":{"default":1,"description":"Audio volume of the video track, 0.0 (muted) to 1.0","maximum":1,"minimum":0,"title":"Volume","type":"number","uniqueKey":"data.variables.additionalProperties.oneOf.2.volume","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.2","typeLabel":"TemplateVideoVariable · object"},{"type":"object","title":"TemplateAudioVariable","description":"Replaces an audio placeholder in the template.","required":["type","asset"],"properties":{"type":{"const":"audio","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.type","typeLabel":"string"},"asset":{"oneOf":[{"type":"object","title":"AssetUrl","description":"Asset input via publicly accessible HTTPS URL.","required":["type","url"],"properties":{"type":{"const":"url","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.0.type","typeLabel":"string"},"url":{"description":"Public http(s) URL HeyGen can download without auth or redirects. Not a local or sandbox path (/mnt/data/..., file://, sandbox:); upload such files and pass asset_id.","title":"Url","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.0.url","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.0","typeLabel":"AssetUrl · object"},{"type":"object","title":"AssetId","description":"Asset input via HeyGen asset ID from the asset upload endpoint.","required":["type","asset_id"],"properties":{"type":{"const":"asset_id","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.1.type","typeLabel":"string"},"asset_id":{"description":"HeyGen asset ID from an asset upload or import; not a third-party file ID.","title":"Asset Id","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.1.asset_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.1","typeLabel":"AssetId · object"},{"type":"object","title":"AssetBase64","description":"Asset input via base64-encoded content.","required":["type","media_type","data"],"x-mcp-visible":false,"properties":{"type":{"const":"base64","description":"Input type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.2.type","typeLabel":"string"},"media_type":{"description":"MIME type of the encoded content (e.g. \"image/png\")","title":"Media Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.2.media_type","typeLabel":"string"},"data":{"description":"Base64-encoded file content","title":"Data","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.2.data","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset.oneOf.2","typeLabel":"AssetBase64 · object"}],"isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.3.asset","typeLabel":"AssetUrl · object | AssetId · object | AssetBase64 · object"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.3","typeLabel":"TemplateAudioVariable · object"},{"type":"object","title":"TemplateCharacterVariable","description":"Replaces an avatar or talking-photo placeholder in the template.\n\nThe look is ``avatar_id``, the name every other v3 surface uses for it. Two older names for the\nsame value were published before it and integrations were built against them, so both are still\naccepted on input and echoed on output, marked deprecated, until a published sunset. A client\nwritten against any edition of the docs keeps working.","required":["type"],"properties":{"type":{"const":"character","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.type","typeLabel":"string"},"avatar_id":{"oneOf":[{"type":"string","title":"Avatar Id","description":"Avatar look ID to place; any avatar look, including talking photos. Same IDs as GET /v3/avatars/looks and as avatar_id on a scene's avatar element. Whether the look is an avatar or a talking photo is inferred from the look itself.","minLength":1,"example":"Abigail_expressive_2024112501","uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Avatar Id","description":"Avatar look ID to place; any avatar look, including talking photos. Same IDs as GET /v3/avatars/looks and as avatar_id on a scene's avatar element. Whether the look is an avatar or a talking photo is inferred from the look itself.","example":"Abigail_expressive_2024112501","uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_id","typeLabel":"string | null"},"avatar_look_id":{"oneOf":[{"type":"string","title":"Avatar Look Id","description":"Deprecated alias of avatar_id. Accepted on input and returned with the same value; send avatar_id.","minLength":1,"deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_look_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Avatar Look Id","description":"Deprecated alias of avatar_id. Accepted on input and returned with the same value; send avatar_id.","deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_look_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.variables.additionalProperties.oneOf.4.avatar_look_id","typeLabel":"string | null"},"character_id":{"oneOf":[{"type":"string","title":"Character Id","description":"Deprecated alias of avatar_id. Accepted on input and returned with the same value; send avatar_id.","minLength":1,"deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Character Id","description":"Deprecated alias of avatar_id. Accepted on input and returned with the same value; send avatar_id.","deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_id","typeLabel":"string | null"},"character_type":{"oneOf":[{"type":"string","title":"Character Type","description":"Deprecated. Ignored on input: whether the look is an avatar or a talking photo is inferred from the look itself. Returned as the kind recorded on the template.","enum":["avatar","talking_photo"],"deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Character Type","description":"Deprecated. Ignored on input: whether the look is an avatar or a talking photo is inferred from the look itself. Returned as the kind recorded on the template.","deprecated":true,"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.variables.additionalProperties.oneOf.4.character_type","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.4","typeLabel":"TemplateCharacterVariable · object"},{"type":"object","title":"TemplateVoiceVariable","description":"Overrides the voice used by a script placeholder in the template.","required":["type","voice_id"],"properties":{"type":{"const":"voice","description":"Variable type discriminator","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.5.type","typeLabel":"string"},"voice_id":{"description":"Voice ID used for text-to-speech","minLength":1,"title":"Voice Id","type":"string","isRequired":true,"uniqueKey":"data.variables.additionalProperties.oneOf.5.voice_id","typeLabel":"string"},"locale":{"oneOf":[{"type":"string","title":"Locale","description":"Optional voice locale, e.g. 'en-US'","uniqueKey":"data.variables.additionalProperties.oneOf.5.locale.oneOf.0","typeLabel":"string"},{"type":"null","title":"Locale","description":"Optional voice locale, e.g. 'en-US'","uniqueKey":"data.variables.additionalProperties.oneOf.5.locale.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.variables.additionalProperties.oneOf.5.locale","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"data.variables.additionalProperties.oneOf.5","typeLabel":"TemplateVoiceVariable · object"}],"uniqueKey":"data.variables.additionalProperties","typeLabel":"TemplateTextVariable · object | TemplateImageVariable · object | TemplateVideoVariable · object | TemplateAudioVariable · object | TemplateCharacterVariable · object | TemplateVoiceVariable · object"},"description":"Variables defined in the template with their current default values, keyed by variable name","title":"Variables","type":"object","uniqueKey":"data.variables","typeLabel":"Variables · object"},"source_video_id":{"oneOf":[{"type":"string","title":"Source Video Id","description":"Video the template was created from, when known. Present only for workspaces with access to the template authoring API.","uniqueKey":"data.source_video_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Video Id","description":"Video the template was created from, when known. Present only for workspaces with access to the template authoring API.","uniqueKey":"data.source_video_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.source_video_id","typeLabel":"string | null"},"edit_version":{"oneOf":[{"type":"string","title":"Edit Version","description":"Opaque version of the template returned by this request. Every save of the template's draft or variable set changes it, whether through PUT /v3/templates/{template_id}/variables or the HeyGen editor; renaming or deleting the template does not. Send it back as expected_edit_version on PUT /v3/templates/{template_id}/variables to detect concurrent edits. Present only for workspaces with access to the template authoring API.","example":"3","uniqueKey":"data.edit_version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Edit Version","description":"Opaque version of the template returned by this request. Every save of the template's draft or variable set changes it, whether through PUT /v3/templates/{template_id}/variables or the HeyGen editor; renaming or deleting the template does not. Send it back as expected_edit_version on PUT /v3/templates/{template_id}/variables to detect concurrent edits. Present only for workspaces with access to the template authoring API.","example":"3","uniqueKey":"data.edit_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.edit_version","typeLabel":"string | null"},"scene_ids":{"description":"Scene IDs in template order, as POST /v3/templates/{template_id} accepts them","items":{"type":"string","uniqueKey":"data.scene_ids.items.[INDEX]","typeLabel":"string"},"title":"Scene Ids","type":"array","uniqueKey":"data.scene_ids","typeLabel":"string[]"},"scenes":{"deprecated":true,"description":"Per-scene summary: the scene id, its script text and the variables it uses. Deprecated in favour of composition, which describes each scene in the same shape as GET /v3/videos/{video_id}/scenes; kept until a published sunset.","items":{"description":"A scene defined in the template.","properties":{"scene_id":{"description":"Scene ID, usable in the generate request's scene_ids","title":"Scene Id","type":"string","isRequired":true,"uniqueKey":"data.scenes.items.[INDEX].scene_id","typeLabel":"string"},"script":{"oneOf":[{"type":"string","title":"Script","description":"Scene script text, with variable placeholders unreplaced","uniqueKey":"data.scenes.items.[INDEX].script.oneOf.0","typeLabel":"string"},{"type":"null","title":"Script","description":"Scene script text, with variable placeholders unreplaced","uniqueKey":"data.scenes.items.[INDEX].script.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.scenes.items.[INDEX].script","typeLabel":"string | null"},"variables":{"description":"Variables used in this scene","items":{"description":"A variable used within a scene.","properties":{"name":{"description":"Variable name, matching a key in the template's variables","title":"Name","type":"string","isRequired":true,"uniqueKey":"data.scenes.items.[INDEX].variables.items.[INDEX].name","typeLabel":"string"},"variable_type":{"description":"Variable type: text, image, video, audio, character, or voice","title":"Variable Type","type":"string","isRequired":true,"uniqueKey":"data.scenes.items.[INDEX].variables.items.[INDEX].variable_type","typeLabel":"string"}},"required":["name","variable_type"],"title":"TemplateSceneVariableRef","type":"object","uniqueKey":"data.scenes.items.[INDEX].variables.items.[INDEX]","typeLabel":"TemplateSceneVariableRef · object"},"title":"Variables","type":"array","uniqueKey":"data.scenes.items.[INDEX].variables","typeLabel":"TemplateSceneVariableRef · object[]"}},"required":["scene_id"],"title":"TemplateSceneV3","type":"object","uniqueKey":"data.scenes.items.[INDEX]","typeLabel":"TemplateSceneV3 · object"},"title":"Scenes","type":"array","uniqueKey":"data.scenes","typeLabel":"TemplateSceneV3 · object[]"},"composition":{"oneOf":[{"type":"object","title":"TemplateComposition","description":"The template's scenes and cross-scene audio tracks in the shape GET /v3/videos/{video_id}/scenes uses, with each node carrying the variable types it can be bound to (bindable_as), the variable bound to it (variable) and the text variables in its {{placeholders}} (text_variables). Present only for workspaces with access to the template authoring API, and omitted when the template's draft cannot be read.","properties":{"scenes":{"description":"Scenes in template order, each in the video-scenes shape plus bindings.","items":{"additionalProperties":false,"description":"One scene of the template, in template order, with what a variable can bind to in it.","properties":{"id":{"description":"Identifier of this scene within the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].id","typeLabel":"string"},"background":{"oneOf":[{"type":"object","title":"ColorBackground","description":"A solid colour filling the frame behind the scene's elements.","required":["color"],"properties":{"color":{"description":"Hex colour, e.g. '#f6f6fc'.","title":"Color","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.0.color","typeLabel":"string"},"type":{"const":"color","default":"color","description":"Background type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.0.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.0","typeLabel":"ColorBackground · object"},{"type":"object","title":"TemplateImageBackground","description":"A frame-filling image; an image variable replaces it.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.id","typeLabel":"string"},"type":{"const":"image","default":"image","description":"Background type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the image. Present when the video records a link for this background and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the image. Present when the video records a link for this background and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.url","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.1","typeLabel":"TemplateImageBackground · object"},{"type":"object","title":"TemplateVideoBackground","description":"A frame-filling clip; a video variable replaces it.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.id","typeLabel":"string"},"type":{"const":"video","default":"video","description":"Background type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the clip. Present when the video records a link for this background and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the clip. Present when the video records a link for this background and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.url","typeLabel":"string | null"},"playback":{"oneOf":[{"type":"string","title":"Playback","description":"How the clip is reconciled to the scene. Same values as a video element's playback.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.playback.oneOf.0","typeLabel":"string"},{"type":"null","title":"Playback","description":"How the clip is reconciled to the scene. Same values as a video element's playback.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.playback.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.playback","typeLabel":"string | null"},"trim":{"oneOf":[{"type":"object","title":"VideoTrim","description":"Seconds trimmed from each end of the clip.","required":["start_offset","end_offset"],"properties":{"start_offset":{"description":"Seconds trimmed from the start of the clip.","title":"Start Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.trim.oneOf.0.start_offset","typeLabel":"number"},"end_offset":{"description":"Seconds trimmed from the end of the clip.","title":"End Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.trim.oneOf.0.end_offset","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.trim.oneOf.0","typeLabel":"VideoTrim · object"},{"type":"null","description":"Seconds trimmed from each end of the clip.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.trim.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.trim","typeLabel":"VideoTrim · object | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.volume","typeLabel":"number | null"},"speed_multiplier":{"oneOf":[{"type":"number","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.speed_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.speed_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.speed_multiplier","typeLabel":"number | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.2","typeLabel":"TemplateVideoBackground · object"},{"type":"null","title":"Background","description":"What fills the frame behind this scene's elements.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background.oneOf.3","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].background","typeLabel":"ColorBackground · object | TemplateImageBackground · object | TemplateVideoBackground · object | null"},"elements":{"description":"Every element this scene places, in the template's own order.","items":{"oneOf":[{"type":"object","title":"TemplateAvatarElement","description":"An avatar element; a character variable replaces its look.","required":["id","avatar_id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.id","typeLabel":"string"},"avatar_id":{"description":"The avatar look performing this scene.","title":"Avatar Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.avatar_id","typeLabel":"string"},"type":{"const":"avatar","default":"avatar","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.type","typeLabel":"string"},"engine":{"oneOf":[{"type":"string","title":"AvatarEngineTier","description":"Generation engine for this avatar. Absent when the video does not record one and none can be determined.","enum":["avatar_vi","heygen-avatar-6-turbo","avatar_v","avatar_iv","avatar_iii"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.engine.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Generation engine for this avatar. Absent when the video does not record one and none can be determined.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.engine.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.engine","typeLabel":"enum\u003cstring> | null"},"expressiveness":{"oneOf":[{"type":"string","title":"Expressiveness","description":"Expressiveness level. Absent when left at the default.","enum":["high","medium","low"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.expressiveness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Expressiveness level. Absent when left at the default.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.expressiveness.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.expressiveness","typeLabel":"enum\u003cstring> | null"},"motion_prompt":{"oneOf":[{"type":"string","title":"Motion Prompt","description":"Motion description authored for this avatar.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.motion_prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Motion Prompt","description":"Motion description authored for this avatar.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.motion_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.motion_prompt","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.0","typeLabel":"TemplateAvatarElement · object"},{"type":"object","title":"TemplateImageElement","description":"An image element; an image variable replaces its picture.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.id","typeLabel":"string"},"type":{"const":"image","default":"image","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the image. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed; the element is still reported either way, so an image with no URL is one this read could not link to rather than an element this API does not describe. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the image. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed; the element is still reported either way, so an image with no URL is one this read could not link to rather than an element this API does not describe. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.url","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.1","typeLabel":"TemplateImageElement · object"},{"type":"object","title":"TemplateVideoElement","description":"A video element; a video variable replaces its clip.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.id","typeLabel":"string"},"type":{"const":"video","default":"video","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the clip. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the clip. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.url","typeLabel":"string | null"},"playback":{"oneOf":[{"type":"string","title":"Playback","description":"How the clip is reconciled to the scene: 'freeze' holds the last frame, 'loop' repeats it, 'fit_to_scene' changes speed to match, 'full_video' plays it whole and drives the scene's length.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.playback.oneOf.0","typeLabel":"string"},{"type":"null","title":"Playback","description":"How the clip is reconciled to the scene: 'freeze' holds the last frame, 'loop' repeats it, 'fit_to_scene' changes speed to match, 'full_video' plays it whole and drives the scene's length.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.playback.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.playback","typeLabel":"string | null"},"trim":{"oneOf":[{"type":"object","title":"VideoTrim","description":"Seconds trimmed from each end of the clip.","required":["start_offset","end_offset"],"properties":{"start_offset":{"description":"Seconds trimmed from the start of the clip.","title":"Start Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.trim.oneOf.0.start_offset","typeLabel":"number"},"end_offset":{"description":"Seconds trimmed from the end of the clip.","title":"End Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.trim.oneOf.0.end_offset","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.trim.oneOf.0","typeLabel":"VideoTrim · object"},{"type":"null","description":"Seconds trimmed from each end of the clip.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.trim.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.trim","typeLabel":"VideoTrim · object | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.volume","typeLabel":"number | null"},"speed_multiplier":{"oneOf":[{"type":"number","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.speed_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.speed_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.speed_multiplier","typeLabel":"number | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.2","typeLabel":"TemplateVideoElement · object"},{"type":"object","title":"TemplateTextElement","description":"An on-screen text element; text variables fill its {{placeholders}}.","required":["id","text"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.id","typeLabel":"string"},"text":{"description":"The text as displayed. Paragraphs of styled text are joined with newlines.","title":"Text","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.text","typeLabel":"string"},"type":{"const":"text","default":"text","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.type","typeLabel":"string"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.3","typeLabel":"TemplateTextElement · object"},{"type":"object","title":"PlaceholderElement","description":"An element this version names but does not describe.\n\nExists so a scene's ``elements`` array is never a filtered view presented as a complete one: a\ncaller iterating it sees every element the scene places. Carries exactly two fields: which\nelement this is, and what kind of thing it is.\n\n**Absence of content is not by itself proof that an element is undescribed.** A described\ncategory can serialize with nothing but an id and a type when every optional field happens to be\nunavailable, and one case is reachable today: an image with no usable link carries no ``url``,\nleaving ``{id, type}``. Read the ``type`` to tell them apart.\n``avatar``, ``image``, ``video`` and ``text`` are described, so a bare one of those is a described\nelement missing an optional value rather than an unexpanded node.\n\nThe ``id`` matters most here. Two masked elements in one scene are otherwise identical on the\nwire, so without it a caller can see that the scene places two things and nothing else about\neither.","required":["id","type"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.4.id","typeLabel":"string"},"type":{"description":"The element's category. An **open set**: new values may be added, so treat an unrecognized one as an element to skip rather than an error. Several kinds of element can share one value, so a category says what an element is rather than naming a single underlying kind. Every value is permanent except 'other', which means 'a kind of element this API does not yet categorise' and may be replaced by a more specific category later.","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.4","typeLabel":"PlaceholderElement · object"},{"type":"object","title":"TemplateContainerElement","description":"A group or mask; nothing binds to the container itself, its children carry their own bindings.","required":["id","type"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.id","typeLabel":"string"},"type":{"description":"The container's category, e.g. 'group' or 'mask'.","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.type","typeLabel":"string"},"children":{"description":"The elements this container holds, each described exactly as a top-level element would be.","items":{"oneOf":[{"type":"object","title":"TemplateAvatarElement","description":"An avatar element; a character variable replaces its look.","required":["id","avatar_id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.id","typeLabel":"string"},"avatar_id":{"description":"The avatar look performing this scene.","title":"Avatar Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.avatar_id","typeLabel":"string"},"type":{"const":"avatar","default":"avatar","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.type","typeLabel":"string"},"engine":{"oneOf":[{"type":"string","title":"AvatarEngineTier","description":"Generation engine for this avatar. Absent when the video does not record one and none can be determined.","enum":["avatar_vi","heygen-avatar-6-turbo","avatar_v","avatar_iv","avatar_iii"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.engine.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Generation engine for this avatar. Absent when the video does not record one and none can be determined.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.engine.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.engine","typeLabel":"enum\u003cstring> | null"},"expressiveness":{"oneOf":[{"type":"string","title":"Expressiveness","description":"Expressiveness level. Absent when left at the default.","enum":["high","medium","low"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.expressiveness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Expressiveness level. Absent when left at the default.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.expressiveness.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.expressiveness","typeLabel":"enum\u003cstring> | null"},"motion_prompt":{"oneOf":[{"type":"string","title":"Motion Prompt","description":"Motion description authored for this avatar.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.motion_prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Motion Prompt","description":"Motion description authored for this avatar.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.motion_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.motion_prompt","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.0","typeLabel":"TemplateAvatarElement · object"},{"type":"object","title":"TemplateImageElement","description":"An image element; an image variable replaces its picture.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.id","typeLabel":"string"},"type":{"const":"image","default":"image","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the image. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed; the element is still reported either way, so an image with no URL is one this read could not link to rather than an element this API does not describe. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the image. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed; the element is still reported either way, so an image with no URL is one this read could not link to rather than an element this API does not describe. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.url","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.1","typeLabel":"TemplateImageElement · object"},{"type":"object","title":"TemplateVideoElement","description":"A video element; a video variable replaces its clip.","required":["id"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.id","typeLabel":"string"},"type":{"const":"video","default":"video","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the clip. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the clip. Present when the video records a link for this element and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.url","typeLabel":"string | null"},"playback":{"oneOf":[{"type":"string","title":"Playback","description":"How the clip is reconciled to the scene: 'freeze' holds the last frame, 'loop' repeats it, 'fit_to_scene' changes speed to match, 'full_video' plays it whole and drives the scene's length.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.playback.oneOf.0","typeLabel":"string"},{"type":"null","title":"Playback","description":"How the clip is reconciled to the scene: 'freeze' holds the last frame, 'loop' repeats it, 'fit_to_scene' changes speed to match, 'full_video' plays it whole and drives the scene's length.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.playback.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.playback","typeLabel":"string | null"},"trim":{"oneOf":[{"type":"object","title":"VideoTrim","description":"Seconds trimmed from each end of the clip.","required":["start_offset","end_offset"],"properties":{"start_offset":{"description":"Seconds trimmed from the start of the clip.","title":"Start Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.trim.oneOf.0.start_offset","typeLabel":"number"},"end_offset":{"description":"Seconds trimmed from the end of the clip.","title":"End Offset","type":"number","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.trim.oneOf.0.end_offset","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.trim.oneOf.0","typeLabel":"VideoTrim · object"},{"type":"null","description":"Seconds trimmed from each end of the clip.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.trim.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.trim","typeLabel":"VideoTrim · object | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Clip audio volume. 1.0 = source level, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.volume","typeLabel":"number | null"},"speed_multiplier":{"oneOf":[{"type":"number","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.speed_multiplier.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed Multiplier","description":"Playback speed multiplier. 2.0 = twice as fast.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.speed_multiplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.speed_multiplier","typeLabel":"number | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.2","typeLabel":"TemplateVideoElement · object"},{"type":"object","title":"TemplateTextElement","description":"An on-screen text element; text variables fill its {{placeholders}}.","required":["id","text"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.id","typeLabel":"string"},"text":{"description":"The text as displayed. Paragraphs of styled text are joined with newlines.","title":"Text","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.text","typeLabel":"string"},"type":{"const":"text","default":"text","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.type","typeLabel":"string"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.3","typeLabel":"TemplateTextElement · object"},{"type":"object","title":"PlaceholderElement","description":"An element this version names but does not describe.\n\nExists so a scene's ``elements`` array is never a filtered view presented as a complete one: a\ncaller iterating it sees every element the scene places. Carries exactly two fields: which\nelement this is, and what kind of thing it is.\n\n**Absence of content is not by itself proof that an element is undescribed.** A described\ncategory can serialize with nothing but an id and a type when every optional field happens to be\nunavailable, and one case is reachable today: an image with no usable link carries no ``url``,\nleaving ``{id, type}``. Read the ``type`` to tell them apart.\n``avatar``, ``image``, ``video`` and ``text`` are described, so a bare one of those is a described\nelement missing an optional value rather than an unexpanded node.\n\nThe ``id`` matters most here. Two masked elements in one scene are otherwise identical on the\nwire, so without it a caller can see that the scene places two things and nothing else about\neither.","required":["id","type"],"properties":{"id":{"description":"Opaque identifier of this element within the video. Not to be parsed, sorted, or assumed to encode anything. Stable across edits and across regeneration of the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.4.id","typeLabel":"string"},"type":{"description":"The element's category. An **open set**: new values may be added, so treat an unrecognized one as an element to skip rather than an error. Several kinds of element can share one value, so a category says what an element is rather than naming a single underlying kind. Every value is permanent except 'other', which means 'a kind of element this API does not yet categorise' and may be replaced by a more specific category later.","title":"Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX].oneOf.4","typeLabel":"PlaceholderElement · object"},{}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children.items.[INDEX]","typeLabel":"TemplateAvatarElement · object | TemplateImageElement · object | TemplateVideoElement · object | TemplateTextElement · object | PlaceholderElement · object"},"title":"Children","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5.children","typeLabel":"(TemplateAvatarElement · object | TemplateImageElement · object | TemplateVideoElement · object | TemplateTextElement · object | PlaceholderElement · object)[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX].oneOf.5","typeLabel":"TemplateContainerElement · object"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements.items.[INDEX]","typeLabel":"TemplateAvatarElement · object | TemplateImageElement · object | TemplateVideoElement · object | TemplateTextElement · object | PlaceholderElement · object | TemplateContainerElement · object"},"title":"Elements","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].elements","typeLabel":"(TemplateAvatarElement · object | TemplateImageElement · object | TemplateVideoElement · object | TemplateTextElement · object | PlaceholderElement · object | TemplateContainerElement · object)[]"},"script":{"description":"This scene's audio sources in order, each one synthesized speech, uploaded audio, or a silence.","items":{"oneOf":[{"type":"object","title":"TemplateTextScriptEntry","description":"Synthesized speech; a voice variable replaces its voice, text variables fill its {{placeholders}}.","required":["id","text"],"properties":{"id":{"description":"Opaque identifier of this script entry within the video. Not to be parsed, sorted, or assumed to encode anything. The same id under two scenes means one entry is shared between them: its text belongs to both, and concatenating both scenes' scripts would synthesize the shared words twice.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.id","typeLabel":"string"},"text":{"description":"The script, verbatim, including inline markup. Empty when the scene was left unfinished.","title":"Text","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.text","typeLabel":"string"},"type":{"const":"text","default":"text","description":"Script entry type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.type","typeLabel":"string"},"voice_id":{"oneOf":[{"type":"string","title":"Voice Id","description":"The voice delivering this script.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Voice Id","description":"The voice delivering this script.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_id","typeLabel":"string | null"},"voice_settings":{"oneOf":[{"type":"object","title":"ScriptVoiceSettings","description":"Voice tuning applied to this script.","properties":{"speed":{"oneOf":[{"type":"number","title":"Speed","description":"Playback speed multiplier.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.speed.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed","description":"Playback speed multiplier.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.speed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.speed","typeLabel":"number | null"},"pitch":{"oneOf":[{"type":"number","title":"Pitch","description":"Pitch adjustment in semitones.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.pitch.oneOf.0","typeLabel":"number"},{"type":"null","title":"Pitch","description":"Pitch adjustment in semitones.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.pitch.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.pitch","typeLabel":"number | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Voice audio volume. 1.0 = full, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Voice audio volume. 1.0 = full, 0.0 = silent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.volume","typeLabel":"number | null"},"locale":{"oneOf":[{"type":"string","title":"Locale","description":"Locale/accent hint for multi-lingual voices (e.g. 'en-US').","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","title":"Locale","description":"Locale/accent hint for multi-lingual voices (e.g. 'en-US').","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.locale","typeLabel":"string | null"},"engine_settings":{"oneOf":[{"type":"object","title":"ElevenLabsEngineSettings","description":"Engine-specific voice settings for ElevenLabs-backed voices.\n\nSupports model, stability, similarity_boost, style, and use_speaker_boost.\nWhen using eleven_v3 or eleven_v4, stability may be any value in [0.0, 1.0].","required":["engine_type"],"properties":{"engine_type":{"const":"elevenlabs","description":"Engine type discriminator. Must be 'elevenlabs' for ElevenLabs-backed voices.","title":"Engine Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.engine_type","typeLabel":"string"},"model":{"oneOf":[{"type":"string","title":"ElevenLabsModel","description":"The model ID to use for ElevenLabs.","enum":["eleven_multilingual_v2","eleven_turbo_v2_5","eleven_flash_v2_5","eleven_v3","eleven_v4"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.model.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The model ID to use for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.model","typeLabel":"enum\u003cstring> | null"},"similarity_boost":{"oneOf":[{"type":"number","title":"Similarity Boost","description":"The similarity boost parameter for ElevenLabs.","maximum":1,"minimum":0,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.similarity_boost.oneOf.0","typeLabel":"number"},{"type":"null","title":"Similarity Boost","description":"The similarity boost parameter for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.similarity_boost.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.similarity_boost","typeLabel":"number | null"},"stability":{"oneOf":[{"type":"number","title":"Stability","description":"The stability parameter for ElevenLabs.","maximum":1,"minimum":0,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.stability.oneOf.0","typeLabel":"number"},{"type":"null","title":"Stability","description":"The stability parameter for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.stability","typeLabel":"number | null"},"style":{"oneOf":[{"type":"number","title":"Style","description":"The style parameter for ElevenLabs.","maximum":1,"minimum":0,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.style.oneOf.0","typeLabel":"number"},{"type":"null","title":"Style","description":"The style parameter for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.style.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.style","typeLabel":"number | null"},"use_speaker_boost":{"oneOf":[{"type":"boolean","title":"Use Speaker Boost","description":"Whether to use speaker boost for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.use_speaker_boost.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Use Speaker Boost","description":"Whether to use speaker boost for ElevenLabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.use_speaker_boost.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0.use_speaker_boost","typeLabel":"boolean | null"}},"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.0","typeLabel":"ElevenLabsEngineSettings · object"},{"type":"object","title":"FishEngineSettings","description":"Engine-specific voice settings for Fish Audio-backed voices.\n\nInherits Fish's tuning fields (model, stability, similarity).","required":["engine_type"],"properties":{"engine_type":{"const":"fish","description":"Engine type discriminator. Must be 'fish' for Fish Audio-backed voices.","title":"Engine Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.engine_type","typeLabel":"string"},"model":{"oneOf":[{"type":"string","title":"FishModel","description":"Fish Audio model version (default 's2.1-pro'). 's1' is deprecated and is retired on 2026-11-15; use 's2.1-pro'.","enum":["s1","s2-pro","s2.1-pro"],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.model.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Fish Audio model version (default 's2.1-pro'). 's1' is deprecated and is retired on 2026-11-15; use 's2.1-pro'.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.model","typeLabel":"enum\u003cstring> | null"},"stability":{"oneOf":[{"type":"number","title":"Stability","description":"Stability parameter; higher is more consistent.","maximum":1,"minimum":0,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.stability.oneOf.0","typeLabel":"number"},{"type":"null","title":"Stability","description":"Stability parameter; higher is more consistent.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.stability","typeLabel":"number | null"},"similarity":{"oneOf":[{"type":"number","title":"Similarity","description":"Similarity parameter; how closely to match the source voice.","maximum":1,"minimum":0,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.similarity.oneOf.0","typeLabel":"number"},{"type":"null","title":"Similarity","description":"Similarity parameter; how closely to match the source voice.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.similarity.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1.similarity","typeLabel":"number | null"}},"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.1","typeLabel":"FishEngineSettings · object"},{"type":"object","title":"StarfishEngineSettings","description":"Engine selection without tunable settings.\n\nOnly selects the engine named by ``engine_type`` on voices that support multiple engines;\nomit engine settings to use the voice's saved default.","required":["engine_type"],"properties":{"engine_type":{"const":"starfish","description":"Engine type discriminator for this settings variant.","title":"Engine Type","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.2.engine_type","typeLabel":"string"}},"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.2","typeLabel":"StarfishEngineSettings · object"},{"type":"null","title":"Engine Settings","description":"The engine this line is set to use and its tuning, discriminated by 'engine_type'. Present only when that engine is elevenlabs, fish or starfish; absent for any other engine and when the server picks one, except that a line carrying ElevenLabs tuning with no engine set reports elevenlabs.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings.oneOf.3","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0.engine_settings","typeLabel":"ElevenLabsEngineSettings · object | FishEngineSettings · object | StarfishEngineSettings · object | null"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.0","typeLabel":"ScriptVoiceSettings · object"},{"type":"null","description":"Voice tuning applied to this script.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.voice_settings","typeLabel":"ScriptVoiceSettings · object | null"},"trim_to_speech":{"oneOf":[{"type":"boolean","title":"Trim To Speech","description":"Deprecated and ignored: the narration is kept whole, without trimming silence, whatever this says.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.trim_to_speech.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Trim To Speech","description":"Deprecated and ignored: the narration is kept whole, without trimming silence, whatever this says.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.trim_to_speech.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.trim_to_speech","typeLabel":"boolean | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.0","typeLabel":"TemplateTextScriptEntry · object"},{"type":"object","title":"TemplateAudioScriptEntry","description":"Uploaded audio; an audio variable replaces the recording.","required":["id"],"properties":{"id":{"description":"Identifier of this script entry within the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.id","typeLabel":"string"},"type":{"const":"audio","default":"audio","description":"Script entry type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.type","typeLabel":"string"},"audio_url":{"oneOf":[{"type":"string","title":"Audio Url","description":"URL of the audio. Present when the video records a link for this entry and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.audio_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Audio Url","description":"URL of the audio. Present when the video records a link for this entry and, if that link is signed, it is not at or near its deadline. Absent when no link is recorded, or the only recorded link has lapsed. Only the deadline is checked, so a present URL is not a promise that it resolves: it may name an object that has since moved, or a host the customer supplied. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.audio_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.audio_url","typeLabel":"string | null"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1.text_variables","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.1","typeLabel":"TemplateAudioScriptEntry · object"},{"type":"object","title":"SilenceScriptEntry","description":"A held silence, with no words spoken over the scene.","required":["id"],"properties":{"id":{"description":"Identifier of this script entry within the video.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2.id","typeLabel":"string"},"type":{"const":"silence","default":"silence","description":"Script entry type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2.type","typeLabel":"string"},"duration":{"oneOf":[{"type":"number","title":"Duration","description":"How long the silence is held, in seconds. Absent where the number does not describe what renders — on a scene whose video clip plays in full, the clip's own length governs the scene.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2.duration.oneOf.0","typeLabel":"number"},{"type":"null","title":"Duration","description":"How long the silence is held, in seconds. Absent where the number does not describe what renders — on a scene whose video clip plays in full, the clip's own length governs the scene.","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2.duration","typeLabel":"number | null"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX].oneOf.2","typeLabel":"SilenceScriptEntry · object"}],"uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script.items.[INDEX]","typeLabel":"TemplateTextScriptEntry · object | TemplateAudioScriptEntry · object | SilenceScriptEntry · object"},"title":"Script","type":"array","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX].script","typeLabel":"(TemplateTextScriptEntry · object | TemplateAudioScriptEntry · object | SilenceScriptEntry · object)[]"}},"required":["id"],"title":"TemplateScene","type":"object","uniqueKey":"data.composition.oneOf.0.scenes.items.[INDEX]","typeLabel":"TemplateScene · object"},"title":"Scenes","type":"array","uniqueKey":"data.composition.oneOf.0.scenes","typeLabel":"TemplateScene · object[]"},"background_audio":{"description":"Music and sound-effect tracks that play across scenes, with what an audio variable can replace.","items":{"additionalProperties":false,"description":"A music or sound-effect track that plays across scenes; an audio variable replaces it.","properties":{"id":{"description":"Opaque identifier of this track within the template. Stable for the life of the template.","title":"Id","type":"string","isRequired":true,"uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].id","typeLabel":"string"},"bindable_as":{"description":"Variable types that can be bound to this node.","items":{"enum":["text","image","video","audio","character","voice"],"type":"string","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].bindable_as.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Bindable As","type":"array","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].bindable_as","typeLabel":"enum\u003cstring>[]"},"variable":{"oneOf":[{"type":"string","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].variable.oneOf.0","typeLabel":"string"},{"type":"null","title":"Variable","description":"Name of the image, video, audio, character or voice variable bound to this node, if any.","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].variable.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].variable","typeLabel":"string | null"},"text_variables":{"description":"Text variable names appearing as {{placeholders}} in this node's text, in order of first appearance.","items":{"type":"string","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].text_variables.items.[INDEX]","typeLabel":"string"},"title":"Text Variables","type":"array","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].text_variables","typeLabel":"string[]"},"type":{"const":"audio","default":"audio","description":"Element type discriminator.","title":"Type","type":"string","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].type","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","description":"URL of the track. Present when the template records a link and, if that link is signed, it is not at or near its deadline. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"URL of the track. Present when the template records a link and, if that link is signed, it is not at or near its deadline. Signed links expire, so download what you need rather than storing the URL.","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX].url","typeLabel":"string | null"}},"required":["id"],"title":"TemplateBackgroundAudio","type":"object","uniqueKey":"data.composition.oneOf.0.background_audio.items.[INDEX]","typeLabel":"TemplateBackgroundAudio · object"},"title":"Background Audio","type":"array","uniqueKey":"data.composition.oneOf.0.background_audio","typeLabel":"TemplateBackgroundAudio · object[]"}},"additionalProperties":false,"uniqueKey":"data.composition.oneOf.0","typeLabel":"TemplateComposition · object"},{"type":"null","description":"The template's scenes and cross-scene audio tracks in the shape GET /v3/videos/{video_id}/scenes uses, with each node carrying the variable types it can be bound to (bindable_as), the variable bound to it (variable) and the text variables in its {{placeholders}} (text_variables). Present only for workspaces with access to the template authoring API, and omitted when the template's draft cannot be read.","uniqueKey":"data.composition.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.composition","typeLabel":"TemplateComposition · object | null"}},"required":["id","name"],"title":"TemplateDetailV3","type":"object","uniqueKey":"data","typeLabel":"TemplateDetailV3 · object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"77e650952c024c6188a35e23e7088617","name":"Quarterly Update","thumbnail_url":"\u003cstring>","aspect_ratio":"16:9","created_at":1711929600,"updated_at":1711929600,"variables":{},"source_video_id":"\u003cstring>","edit_version":"3","scene_ids":["\u003cstring>"],"scenes":[{"scene_id":"\u003cstring>","script":"\u003cstring>","variables":[{"name":"\u003cstring>","variable_type":"\u003cstring>"}]}],"composition":{"scenes":[{"id":"\u003cstring>","background":{"color":"\u003cstring>","type":"color"},"elements":[{"id":"\u003cstring>","avatar_id":"\u003cstring>","type":"avatar","engine":"avatar_vi","expressiveness":"high","motion_prompt":"\u003cstring>","bindable_as":["text"],"variable":"\u003cstring>","text_variables":["\u003cstring>"]}],"script":[{"id":"\u003cstring>","text":"\u003cstring>","type":"text","voice_id":"\u003cstring>","voice_settings":{"speed":123,"pitch":123,"volume":123,"locale":"\u003cstring>","engine_settings":{"engine_type":"elevenlabs","model":"eleven_multilingual_v2","similarity_boost":0.5,"stability":0.5,"style":0.5,"use_speaker_boost":true}},"trim_to_speech":true,"bindable_as":["text"],"variable":"\u003cstring>","text_variables":["\u003cstring>"]}]}],"background_audio":[{"id":"\u003cstring>","bindable_as":["text"],"variable":"\u003cstring>","text_variables":["\u003cstring>"],"type":"audio","url":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"847e4565-7bdf-4d68-b8a8-83acd275cfeb":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"invalid_parameter","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Video not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"param":{"oneOf":[{"type":"string","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"doc_url":{"oneOf":[{"type":"string","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.doc_url","typeLabel":"string | null"},"errors":{"type":"array","description":"Per-item error details for batch/multi-node failures (e.g. graph compilation errors by node).","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"unknown_node_type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Unknown node type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].message","typeLabel":"string"},"node_id":{"type":"string","description":"Graph node id this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].node_id","typeLabel":"string"},"port":{"type":"string","description":"Port name on the node this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].port","typeLabel":"string"},"path":{"type":"string","description":"Field path within the item this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].path","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.errors","typeLabel":"object[]"},"request_id":{"type":"string","description":"Request identifier, also returned in the X-HeyGen-Request-Id response header. Include it when contacting support.","example":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40","uniqueKey":"error.request_id","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_parameter","message":"Video not found","param":"\u003cstring>","doc_url":"\u003cstring>","errors":[{"code":"unknown_node_type","message":"Unknown node type","node_id":"\u003cstring>","port":"\u003cstring>","path":"\u003cstring>"}],"request_id":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2cb62ae3-61a9-4399-8114-974fa9ccdf36":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"invalid_parameter","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Video not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"param":{"oneOf":[{"type":"string","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"doc_url":{"oneOf":[{"type":"string","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.doc_url","typeLabel":"string | null"},"errors":{"type":"array","description":"Per-item error details for batch/multi-node failures (e.g. graph compilation errors by node).","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"unknown_node_type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Unknown node type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].message","typeLabel":"string"},"node_id":{"type":"string","description":"Graph node id this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].node_id","typeLabel":"string"},"port":{"type":"string","description":"Port name on the node this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].port","typeLabel":"string"},"path":{"type":"string","description":"Field path within the item this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].path","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.errors","typeLabel":"object[]"},"request_id":{"type":"string","description":"Request identifier, also returned in the X-HeyGen-Request-Id response header. Include it when contacting support.","example":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40","uniqueKey":"error.request_id","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized","message":"Invalid or expired API key. Verify your x-api-key header.","param":null,"doc_url":null}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"Invalid or expired API key. Verify your x-api-key header.","param":null,"doc_url":null}}}},"exampleType":"examples"}},"exampleType":"examples"},"2483eaf0-4d36-4897-845a-46e10669e8ab":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"invalid_parameter","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Video not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"param":{"oneOf":[{"type":"string","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"doc_url":{"oneOf":[{"type":"string","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.doc_url","typeLabel":"string | null"},"errors":{"type":"array","description":"Per-item error details for batch/multi-node failures (e.g. graph compilation errors by node).","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"unknown_node_type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Unknown node type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].message","typeLabel":"string"},"node_id":{"type":"string","description":"Graph node id this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].node_id","typeLabel":"string"},"port":{"type":"string","description":"Port name on the node this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].port","typeLabel":"string"},"path":{"type":"string","description":"Field path within the item this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].path","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.errors","typeLabel":"object[]"},"request_id":{"type":"string","description":"Request identifier, also returned in the X-HeyGen-Request-Id response header. Include it when contacting support.","example":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40","uniqueKey":"error.request_id","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"resource_access_denied","message":"Template creation is restricted by your workspace settings. Ask a workspace admin to allow it.","param":null,"doc_url":null}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"resource_access_denied","message":"Template creation is restricted by your workspace settings. Ask a workspace admin to allow it.","param":null,"doc_url":null}}}},"exampleType":"examples"}},"exampleType":"examples"},"2739f885-a7b5-4c94-b5b6-598534e818ad":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"invalid_parameter","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Video not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"param":{"oneOf":[{"type":"string","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"doc_url":{"oneOf":[{"type":"string","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.doc_url","typeLabel":"string | null"},"errors":{"type":"array","description":"Per-item error details for batch/multi-node failures (e.g. graph compilation errors by node).","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"unknown_node_type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Unknown node type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].message","typeLabel":"string"},"node_id":{"type":"string","description":"Graph node id this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].node_id","typeLabel":"string"},"port":{"type":"string","description":"Port name on the node this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].port","typeLabel":"string"},"path":{"type":"string","description":"Field path within the item this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].path","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.errors","typeLabel":"object[]"},"request_id":{"type":"string","description":"Request identifier, also returned in the X-HeyGen-Request-Id response header. Include it when contacting support.","example":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40","uniqueKey":"error.request_id","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"template_not_found","message":"Template not found.","param":null,"doc_url":null}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"template_not_found","message":"Template not found.","param":null,"doc_url":null}}}},"exampleType":"examples"}},"exampleType":"examples"},"8e5c6f80-69ea-4562-acac-6a6a3fb99bd8":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"invalid_parameter","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Video not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"param":{"oneOf":[{"type":"string","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which request field caused the error","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"doc_url":{"oneOf":[{"type":"string","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to error documentation","uniqueKey":"error.doc_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.doc_url","typeLabel":"string | null"},"errors":{"type":"array","description":"Per-item error details for batch/multi-node failures (e.g. graph compilation errors by node).","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","example":"unknown_node_type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"Unknown node type","isRequired":true,"uniqueKey":"error.errors.items.[INDEX].message","typeLabel":"string"},"node_id":{"type":"string","description":"Graph node id this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].node_id","typeLabel":"string"},"port":{"type":"string","description":"Port name on the node this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].port","typeLabel":"string"},"path":{"type":"string","description":"Field path within the item this error pertains to, if applicable","uniqueKey":"error.errors.items.[INDEX].path","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.errors","typeLabel":"object[]"},"request_id":{"type":"string","description":"Request identifier, also returned in the X-HeyGen-Request-Id response header. Include it when contacting support.","example":"8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40","uniqueKey":"error.request_id","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Retry after the duration specified in the Retry-After header.","param":null,"doc_url":null}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Retry after the duration specified in the Retry-After header.","param":null,"doc_url":null}}}},"exampleType":"examples"}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}},"exampleType":"examples"}},"security":{"232c52a6-0e2f-4b2b-b3f0-39ce37fabbfd":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"HeyGen API key. Obtain from your HeyGen dashboard.","scopes":[],"schemeName":"ApiKeyAuth"}},"603d2e32-d0a3-4d19-86a1-d29eb4514f0c":{"BearerAuth":{"type":"http","scheme":"bearer","description":"OAuth2 bearer token.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"a5d566af-1bb6-47c4-8a1d-232a5eee4a1d":{"url":"https://api.heygen.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"HeyGen API key. Obtain from your HeyGen dashboard.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"HeyGen API key. Obtain from your HeyGen dashboard.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"OAuth2 bearer token.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"OAuth2 bearer token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi/external-api.json"},"subdomain":"heygen-1fa696a7","siteName":"HeyGen Documentation","title":"Update Template - HeyGen Documentation","relatedPagesConfig":{"enabled":true,"limit":8,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T17:02:42.147Z","originalFileLocation":"reference/update-template.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HeyGen Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update Template - HeyGen Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HeyGen Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://heygen-1fa696a7.mintlify.app/reference/update-template\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://heygen-1fa696a7.mintlify.site/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+Template\u0026amp;description=Renames+a+template.+Other+properties+are+edited+in+the+HeyGen+editor+or+through+PUT+%2Fv3%2Ftemplates%2F%7Btemplate_id%7D%2Fvariables.+Returns+the+template+detail.\u0026amp;theme=409ebfea156913020ba408b2\u0026amp;signature=980ea16a6116243b4a87a14c444871906abdc11acb896b022847343613d453e8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update Template - HeyGen Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://heygen-1fa696a7.mintlify.site/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+Template\u0026amp;description=Renames+a+template.+Other+properties+are+edited+in+the+HeyGen+editor+or+through+PUT+%2Fv3%2Ftemplates%2F%7Btemplate_id%7D%2Fvariables.+Returns+the+template+detail.\u0026amp;theme=409ebfea156913020ba408b2\u0026amp;signature=980ea16a6116243b4a87a14c444871906abdc11acb896b022847343613d453e8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/heygen-1fa696a7/V7Z_LW-WQjtKUYWA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HeyGen Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#03C3FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://heygen-1fa696a7.mintlify.app/reference/update-template\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/update-template.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://heygen-1fa696a7.mintlify.app/#organization\",\"name\":\"HeyGen Documentation\",\"url\":\"https://heygen-1fa696a7.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/heygen-1fa696a7/dQ_uLJDftFYFhC7B/logo/light.png?fit=max\u0026auto=format\u0026n=dQ_uLJDftFYFhC7B\u0026q=85\u0026s=b03d2e41dde1cc0b50cd50e574f66f1c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://heygen-1fa696a7.mintlify.app#website\",\"name\":\"HeyGen Documentation\",\"url\":\"https://heygen-1fa696a7.mintlify.app\",\"publisher\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template#webpage\",\"url\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template\",\"name\":\"Update Template\",\"description\":\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.\",\"dateModified\":\"2026-11-05T17:02:42.147Z\",\"isPartOf\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Templates\",\"item\":\"https://heygen-1fa696a7.mintlify.app/reference/list-templates\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update Template\",\"item\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template#apireference\",\"headline\":\"Update Template\",\"name\":\"Update Template\",\"description\":\"Renames a template. Other properties are edited in the HeyGen editor or through PUT /v3/templates/{template_id}/variables. Returns the template detail.\",\"url\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template\",\"mainEntityOfPage\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app/reference/update-template#webpage\"},\"dateModified\":\"2026-11-05T17:02:42.147Z\",\"publisher\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://heygen-1fa696a7.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HeyGen Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HeyGen Documentation","nav":{"global":null,"tabs":[{"tab":"Developer Guide","pages":[{"title":"Developer Guide","href":"/docs/quick-start"}]},{"tab":"API Reference","groups":[{"group":"Video Agent","pages":[{"title":"List Video Agent Sessions","deprecated":null,"version":null,"sidebarTitle":"List video agent sessions","openapi":"/openapi/external-api.json get /v3/video-agents","href":"/reference/list-video-agent-sessions"},{"title":"Create Video Agent Session","deprecated":null,"version":null,"sidebarTitle":"Create video agent session","openapi":"/openapi/external-api.json post /v3/video-agents","href":"/reference/create-video-agent-session"},{"title":"List Video Agent Styles","deprecated":null,"version":null,"sidebarTitle":"List video agent styles","openapi":"/openapi/external-api.json get /v3/video-agents/styles","href":"/reference/list-video-agent-styles"},{"title":"Get Video Agent Session","deprecated":null,"version":null,"sidebarTitle":"Get video agent session","openapi":"/openapi/external-api.json get /v3/video-agents/{session_id}","href":"/reference/get-video-agent-session"},{"title":"Send Video Agent Message","deprecated":null,"version":null,"sidebarTitle":"Send message or request revision","openapi":"/openapi/external-api.json post /v3/video-agents/{session_id}","href":"/reference/send-message-or-request-revision"},{"title":"Get Session Resource","deprecated":null,"version":null,"sidebarTitle":"Get session resource","openapi":"/openapi/external-api.json get /v3/video-agents/{session_id}/resources/{resource_id}","href":"/reference/get-session-resource"},{"title":"List Session Videos","deprecated":null,"version":null,"sidebarTitle":"List session videos","openapi":"/openapi/external-api.json get /v3/video-agents/{session_id}/videos","href":"/reference/list-session-videos"},{"title":"Stop Video Agent Session","deprecated":null,"version":null,"sidebarTitle":"Stop video agent session","openapi":"/openapi/external-api.json post /v3/video-agents/{session_id}/stop","href":"/reference/stop-video-agent-session"}]},{"group":"Brand","pages":[{"title":"List Brand Glossaries","deprecated":null,"version":null,"sidebarTitle":"List brand glossaries","openapi":"/openapi/external-api.json get /v3/brand-glossaries","href":"/reference/list-brand-glossaries"},{"title":"Create Brand Glossary","deprecated":null,"version":null,"sidebarTitle":"Create brand glossary","openapi":"/openapi/external-api.json post /v3/brand-glossaries","href":"/reference/create-brand-glossary"},{"title":"List Brand Kits","deprecated":null,"version":null,"sidebarTitle":"List brand kits","openapi":"/openapi/external-api.json get /v3/brand-kits","href":"/reference/list-brand-kits"},{"title":"Create Brand Kit","deprecated":null,"version":null,"sidebarTitle":"Create brand kit","openapi":"/openapi/external-api.json post /v3/brand-kits","href":"/reference/create-brand-kit"},{"title":"Get Brand Kit","deprecated":null,"version":null,"sidebarTitle":"Get brand kit","openapi":"/openapi/external-api.json get /v3/brand-kits/{brand_kit_id}","href":"/reference/get-brand-kit"},{"title":"Delete Brand Kit","deprecated":null,"version":null,"sidebarTitle":"Delete brand kit","openapi":"/openapi/external-api.json delete /v3/brand-kits/{brand_kit_id}","href":"/reference/delete-brand-kit"},{"title":"Update Brand Kit","deprecated":null,"version":null,"sidebarTitle":"Update brand kit","openapi":"/openapi/external-api.json patch /v3/brand-kits/{brand_kit_id}","href":"/reference/update-brand-kit"},{"title":"Get Brand Glossary","deprecated":null,"version":null,"sidebarTitle":"Get brand glossary","openapi":"/openapi/external-api.json get /v3/brand-glossaries/{brand_glossary_id}","href":"/reference/get-brand-glossary"},{"title":"Delete Brand Glossary","deprecated":null,"version":null,"sidebarTitle":"Delete brand glossary","openapi":"/openapi/external-api.json delete /v3/brand-glossaries/{brand_glossary_id}","href":"/reference/delete-brand-glossary"},{"title":"Update Brand Glossary","deprecated":null,"version":null,"sidebarTitle":"Update brand glossary","openapi":"/openapi/external-api.json patch /v3/brand-glossaries/{brand_glossary_id}","href":"/reference/update-brand-glossary"}]},{"group":"Avatars","pages":[{"title":"List Avatar Groups","deprecated":null,"version":null,"sidebarTitle":"List avatar groups","openapi":"/openapi/external-api.json get /v3/avatars","href":"/reference/list-avatar-groups"},{"title":"Create Avatar","deprecated":null,"version":null,"sidebarTitle":"Create avatar","openapi":"/openapi/external-api.json post /v3/avatars","href":"/reference/create-avatar"},{"title":"Get Avatar Group","deprecated":null,"version":null,"sidebarTitle":"Get avatar group","openapi":"/openapi/external-api.json get /v3/avatars/{group_id}","href":"/reference/get-avatar-group"},{"title":"Delete Avatar Group","deprecated":null,"version":null,"sidebarTitle":"Delete avatar group","openapi":"/openapi/external-api.json delete /v3/avatars/{group_id}","href":"/reference/delete-avatar-group"},{"title":"Update Avatar Group","deprecated":null,"version":null,"sidebarTitle":"Update avatar group","openapi":"/openapi/external-api.json patch /v3/avatars/{group_id}","href":"/reference/update-avatar-group"},{"title":"Create Avatar Consent","deprecated":null,"version":null,"sidebarTitle":"Create avatar consent","openapi":"/openapi/external-api.json post /v3/avatars/{group_id}/consent","href":"/reference/create-avatar-consent"},{"title":"List Avatar Looks","deprecated":null,"version":null,"sidebarTitle":"List avatar looks","openapi":"/openapi/external-api.json get /v3/avatars/looks","href":"/reference/list-avatar-looks"},{"title":"Create Avatar Looks","deprecated":null,"version":null,"sidebarTitle":"Create avatar looks","openapi":"/openapi/external-api.json post /v3/avatars/looks","href":"/reference/create-avatar-looks"},{"title":"List Look Templates","deprecated":null,"version":null,"sidebarTitle":"List look templates","openapi":"/openapi/external-api.json get /v3/avatars/look-templates","href":"/reference/list-look-templates"},{"title":"Get Avatar Look","deprecated":null,"version":null,"sidebarTitle":"Get avatar look","openapi":"/openapi/external-api.json get /v3/avatars/looks/{look_id}","href":"/reference/get-avatar-look"},{"title":"Delete Avatar Look","deprecated":null,"version":null,"sidebarTitle":"Delete avatar look","openapi":"/openapi/external-api.json delete /v3/avatars/looks/{look_id}","href":"/reference/delete-avatar-look"},{"title":"Update Avatar Look","deprecated":null,"version":null,"sidebarTitle":"Update avatar look","openapi":"/openapi/external-api.json patch /v3/avatars/looks/{look_id}","href":"/reference/update-avatar-look"}]},{"group":"Audio","pages":[{"title":"Search audio (music or sound effects)","deprecated":null,"version":null,"sidebarTitle":"Search audio music or sound effects","openapi":"/openapi/external-api.json get /v3/audio/sounds","href":"/reference/search-audio-music-or-sound-effects"}]},{"group":"Voices","pages":[{"title":"Generate Speech","deprecated":null,"version":null,"sidebarTitle":"Generate speech","openapi":"/openapi/external-api.json post /v3/voices/speech","href":"/reference/generate-speech"},{"title":"List Voices","deprecated":null,"version":null,"sidebarTitle":"List voices","openapi":"/openapi/external-api.json get /v3/voices","href":"/reference/list-voices"},{"title":"Design a Voice","deprecated":null,"version":null,"sidebarTitle":"Design a voice","openapi":"/openapi/external-api.json post /v3/voices","href":"/reference/design-a-voice"},{"title":"Clone a Voice","deprecated":null,"version":null,"sidebarTitle":"Clone a voice","openapi":"/openapi/external-api.json post /v3/voices/clone","href":"/reference/clone-a-voice"},{"title":"Get Voice","deprecated":null,"version":null,"sidebarTitle":"Get voice","openapi":"/openapi/external-api.json get /v3/voices/{voice_id}","href":"/reference/get-voice"},{"title":"Delete a Voice","deprecated":null,"version":null,"sidebarTitle":"Delete a voice","openapi":"/openapi/external-api.json delete /v3/voices/{voice_id}","href":"/reference/delete-a-voice"}]},{"group":"Models","pages":[{"title":"List Audio Voices","deprecated":null,"version":null,"sidebarTitle":"List audio voices","openapi":"/openapi/external-api.json get /v3/models/audio/voices","href":"/reference/list-audio-voices"},{"title":"Create or Retrain an Audio Voice","deprecated":null,"version":null,"sidebarTitle":"Create or retrain an audio voice","openapi":"/openapi/external-api.json post /v3/models/audio/voices","href":"/reference/create-or-retrain-an-audio-voice"},{"title":"Convert Speech","deprecated":null,"version":null,"sidebarTitle":"Convert model speech","openapi":"/openapi/external-api.json post /v3/models/audio/sts","href":"/reference/convert-model-speech"},{"title":"Generate Speech","deprecated":null,"version":null,"sidebarTitle":"Generate model speech","openapi":"/openapi/external-api.json post /v3/models/audio/tts","href":"/reference/generate-model-speech"},{"title":"Stream Speech","deprecated":null,"version":null,"sidebarTitle":"Stream speech","openapi":"/openapi/external-api.json post /v3/models/audio/tts/stream","href":"/reference/stream-speech"},{"title":"Create Speech Input Token","deprecated":null,"version":null,"sidebarTitle":"Create speech input token","openapi":"/openapi/external-api.json post /v3/models/audio/tts/stream-input/tokens","href":"/reference/create-speech-input-token"},{"title":"Get an Audio Voice","deprecated":null,"version":null,"sidebarTitle":"Get an audio voice","openapi":"/openapi/external-api.json get /v3/models/audio/voices/{voice_id}","href":"/reference/get-an-audio-voice"},{"title":"Delete an Audio Voice","deprecated":null,"version":null,"sidebarTitle":"Delete an audio voice","openapi":"/openapi/external-api.json delete /v3/models/audio/voices/{voice_id}","href":"/reference/delete-an-audio-voice"},{"title":"Create HeyGen Video","deprecated":null,"version":null,"sidebarTitle":"Create heygen video","openapi":"/openapi/external-api.json post /v3/models/videos","href":"/reference/create-heygen-video"},{"title":"Get HeyGen Video","deprecated":null,"version":null,"sidebarTitle":"Get heygen video","openapi":"/openapi/external-api.json get /v3/models/videos/{video_id}","href":"/reference/get-heygen-video"},{"title":"Create HeyGen Image","deprecated":null,"version":null,"sidebarTitle":"Create heygen image","openapi":"/openapi/external-api.json post /v3/models/images","href":"/reference/create-heygen-image"},{"title":"Get HeyGen Image","deprecated":null,"version":null,"sidebarTitle":"Get heygen image","openapi":"/openapi/external-api.json get /v3/models/images/{generation_id}","href":"/reference/get-heygen-image"}]},{"group":"Videos","pages":[{"title":"List Videos","deprecated":null,"version":null,"sidebarTitle":"List videos","openapi":"/openapi/external-api.json get /v3/videos","href":"/reference/list-videos"},{"title":"Create Video","deprecated":null,"version":null,"sidebarTitle":"Create video","openapi":"/openapi/external-api.json post /v3/videos","href":"/reference/create-video"},{"title":"Get Video","deprecated":null,"version":null,"sidebarTitle":"Get video","openapi":"/openapi/external-api.json get /v3/videos/{video_id}","href":"/reference/get-video"},{"title":"Delete Video","deprecated":null,"version":null,"sidebarTitle":"Delete video","openapi":"/openapi/external-api.json delete /v3/videos/{video_id}","href":"/reference/delete-video"},{"title":"Get Video Scenes","deprecated":null,"version":null,"sidebarTitle":"Get video scenes","openapi":"/openapi/external-api.json get /v3/videos/{video_id}/scenes","href":"/reference/get-video-scenes"}]},{"group":"Templates","pages":[{"title":"List Templates","deprecated":null,"version":null,"sidebarTitle":"List templates","openapi":"/openapi/external-api.json get /v3/templates","href":"/reference/list-templates"},{"title":"Create Template from Video","deprecated":null,"version":null,"sidebarTitle":"Create template from video","openapi":"/openapi/external-api.json post /v3/templates","href":"/reference/create-template-from-video"},{"title":"Get Template","deprecated":null,"version":null,"sidebarTitle":"Get template","openapi":"/openapi/external-api.json get /v3/templates/{template_id}","href":"/reference/get-template"},{"title":"Generate Video from Template","deprecated":null,"version":null,"sidebarTitle":"Generate video from template","openapi":"/openapi/external-api.json post /v3/templates/{template_id}","href":"/reference/generate-video-from-template"},{"title":"Delete Template","description":"Soft-deletes a template. It disappears from the list and can no longer be used to generate videos; videos already generated from it are unaffected. Templates managed by another HeyGen product cannot be deleted here.","deprecated":null,"version":null,"sidebarTitle":"Delete template","openapi":"/openapi/external-api.json delete /v3/templates/{template_id}","href":"/reference/delete-template"},{"title":"Update Template","deprecated":null,"version":null,"sidebarTitle":"Update template","openapi":"/openapi/external-api.json patch /v3/templates/{template_id}","href":"/reference/update-template"},{"title":"Set Template Variables","description":"Replaces a template's full set of variables: any variable you omit is removed. Media, character and voice variables bind to a node by `element_id`, listed under `composition` in GET /v3/templates/{template_id}. A text variable with `match` turns that text into a `{{name}}` placeholder.","deprecated":null,"version":null,"sidebarTitle":"Set template variables","openapi":"/openapi/external-api.json put /v3/templates/{template_id}/variables","href":"/reference/set-template-variables"}]},{"group":"Video Translate","pages":[{"title":"List Video Translations","deprecated":null,"version":null,"sidebarTitle":"List video translations","openapi":"/openapi/external-api.json get /v3/video-translations","href":"/reference/list-video-translations"},{"title":"Create Video Translation","deprecated":null,"version":null,"sidebarTitle":"Create video translation","openapi":"/openapi/external-api.json post /v3/video-translations","href":"/reference/create-video-translation"},{"title":"Get Video Translation","deprecated":null,"version":null,"sidebarTitle":"Get video translation","openapi":"/openapi/external-api.json get /v3/video-translations/{video_translation_id}","href":"/reference/get-video-translation"},{"title":"Delete Video Translation","deprecated":null,"version":null,"sidebarTitle":"Delete video translation","openapi":"/openapi/external-api.json delete /v3/video-translations/{video_translation_id}","href":"/reference/delete-video-translation"},{"title":"Update Video Translation","deprecated":null,"version":null,"sidebarTitle":"Update video translation","openapi":"/openapi/external-api.json patch /v3/video-translations/{video_translation_id}","href":"/reference/update-video-translation"},{"title":"List Supported Translation Languages","deprecated":null,"version":null,"sidebarTitle":"List supported translation languages","openapi":"/openapi/external-api.json get /v3/video-translations/languages","href":"/reference/list-supported-translation-languages"},{"title":"List Proofread Sessions","deprecated":null,"version":null,"sidebarTitle":"List proofread sessions","openapi":"/openapi/external-api.json get /v3/video-translations/proofreads","href":"/reference/list-proofread-sessions"},{"title":"Create Proofread Session","deprecated":null,"version":null,"sidebarTitle":"Create proofread session","openapi":"/openapi/external-api.json post /v3/video-translations/proofreads","href":"/reference/create-proofread-session"},{"title":"Get Proofread Session","deprecated":null,"version":null,"sidebarTitle":"Get proofread session","openapi":"/openapi/external-api.json get /v3/video-translations/proofreads/{proofread_id}","href":"/reference/get-proofread-session"},{"title":"Delete Proofread Session","deprecated":null,"version":null,"sidebarTitle":"Delete proofread session","openapi":"/openapi/external-api.json delete /v3/video-translations/proofreads/{proofread_id}","href":"/reference/delete-proofread-session"},{"title":"Download Proofread SRT","deprecated":null,"version":null,"sidebarTitle":"Download proofread srt","openapi":"/openapi/external-api.json get /v3/video-translations/proofreads/{proofread_id}/srt","href":"/reference/download-proofread-srt"},{"title":"Upload Proofread SRT","deprecated":null,"version":null,"sidebarTitle":"Upload proofread srt","openapi":"/openapi/external-api.json put /v3/video-translations/proofreads/{proofread_id}/srt","href":"/reference/upload-proofread-srt"},{"title":"Generate Video from Proofread","deprecated":null,"version":null,"sidebarTitle":"Generate video from proofread","openapi":"/openapi/external-api.json post /v3/video-translations/proofreads/{proofread_id}/generate","href":"/reference/generate-video-from-proofread"}]},{"group":"Lipsync","pages":[{"title":"List Lipsyncs","deprecated":null,"version":null,"sidebarTitle":"List lipsyncs","openapi":"/openapi/external-api.json get /v3/lipsyncs","href":"/reference/list-lipsyncs"},{"title":"Create Lipsync","deprecated":null,"version":null,"sidebarTitle":"Create lipsync","openapi":"/openapi/external-api.json post /v3/lipsyncs","href":"/reference/create-lipsync"},{"title":"Get Lipsync","deprecated":null,"version":null,"sidebarTitle":"Get lipsync","openapi":"/openapi/external-api.json get /v3/lipsyncs/{lipsync_id}","href":"/reference/get-lipsync"},{"title":"Delete Lipsync","deprecated":null,"version":null,"sidebarTitle":"Delete lipsync","openapi":"/openapi/external-api.json delete /v3/lipsyncs/{lipsync_id}","href":"/reference/delete-lipsync"},{"title":"Update Lipsync","deprecated":null,"version":null,"sidebarTitle":"Update lipsync","openapi":"/openapi/external-api.json patch /v3/lipsyncs/{lipsync_id}","href":"/reference/update-lipsync"}]},{"group":"HyperFrames","pages":[{"title":"List HyperFrames Renders","deprecated":null,"version":null,"sidebarTitle":"List hyperframes renders","openapi":"/openapi/external-api.json get /v3/hyperframes/renders","href":"/reference/list-hyperframes-renders"},{"title":"Create HyperFrames Render","deprecated":null,"version":null,"sidebarTitle":"Create hyperframes render","openapi":"/openapi/external-api.json post /v3/hyperframes/renders","href":"/reference/create-hyperframes-render"},{"title":"Get HyperFrames Render","deprecated":null,"version":null,"sidebarTitle":"Get hyperframes render","openapi":"/openapi/external-api.json get /v3/hyperframes/renders/{render_id}","href":"/reference/get-hyperframes-render"},{"title":"Delete HyperFrames Render","deprecated":null,"version":null,"sidebarTitle":"Delete hyperframes render","openapi":"/openapi/external-api.json delete /v3/hyperframes/renders/{render_id}","href":"/reference/delete-hyperframes-render"}]},{"group":"User","pages":[{"title":"Get Current User","deprecated":null,"version":null,"sidebarTitle":"Get current user","openapi":"/openapi/external-api.json get /v3/users/me","href":"/reference/get-current-user"}]},{"group":"API Keys","pages":[{"title":"Get Current API Key","deprecated":null,"version":null,"sidebarTitle":"Get current api key","openapi":"/openapi/external-api.json get /v3/api_keys/self","href":"/reference/get-current-api-key"}]},{"group":"Webhooks","pages":[{"title":"List Webhook Event Types","deprecated":null,"version":null,"sidebarTitle":"List webhook event types","openapi":"/openapi/external-api.json get /v3/webhooks/event-types","href":"/reference/list-webhook-event-types"},{"title":"List Webhook Endpoints","deprecated":null,"version":null,"sidebarTitle":"List webhook endpoints","openapi":"/openapi/external-api.json get /v3/webhooks/endpoints","href":"/reference/list-webhook-endpoints"},{"title":"Create Webhook Endpoint","deprecated":null,"version":null,"sidebarTitle":"Create webhook endpoint","openapi":"/openapi/external-api.json post /v3/webhooks/endpoints","href":"/reference/create-webhook-endpoint"},{"title":"Delete Webhook Endpoint","deprecated":null,"version":null,"sidebarTitle":"Delete webhook endpoint","openapi":"/openapi/external-api.json delete /v3/webhooks/endpoints/{endpoint_id}","href":"/reference/delete-webhook-endpoint"},{"title":"Update Webhook Endpoint","deprecated":null,"version":null,"sidebarTitle":"Update webhook endpoint","openapi":"/openapi/external-api.json patch /v3/webhooks/endpoints/{endpoint_id}","href":"/reference/update-webhook-endpoint"},{"title":"Rotate Webhook Signing Secret","deprecated":null,"version":null,"sidebarTitle":"Rotate webhook signing secret","openapi":"/openapi/external-api.json post /v3/webhooks/endpoints/{endpoint_id}/rotate-secret","href":"/reference/rotate-webhook-signing-secret"},{"title":"List Webhook Events","deprecated":null,"version":null,"sidebarTitle":"List webhook events","openapi":"/openapi/external-api.json get /v3/webhooks/events","href":"/reference/list-webhook-events"}]},{"group":"Folders","pages":[{"title":"Create Folder","deprecated":null,"version":null,"sidebarTitle":"Create folder","openapi":"/openapi/external-api.json post /v3/folders","href":"/reference/create-folder"},{"title":"Get Folder","deprecated":null,"version":null,"sidebarTitle":"Get folder","openapi":"/openapi/external-api.json get /v3/folders/{folder_id}","href":"/reference/get-folder"}]},{"group":"Assets","pages":[{"title":"Upload Asset","deprecated":null,"version":null,"sidebarTitle":"Upload asset","openapi":"/openapi/external-api.json post /v3/assets","href":"/reference/upload-asset"},{"title":"Get Asset","deprecated":null,"version":null,"sidebarTitle":"Get asset","openapi":"/openapi/external-api.json get /v3/assets/{asset_id}","href":"/reference/get-asset"},{"title":"Delete Asset","deprecated":null,"version":null,"sidebarTitle":"Delete asset","openapi":"/openapi/external-api.json delete /v3/assets/{asset_id}","href":"/reference/delete-asset"},{"title":"Create Asset Upload","deprecated":null,"version":null,"sidebarTitle":"Create asset upload","openapi":"/openapi/external-api.json post /v3/assets/direct-uploads","href":"/reference/create-asset-upload"},{"title":"Complete Asset Upload","deprecated":null,"version":null,"sidebarTitle":"Complete asset upload","openapi":"/openapi/external-api.json post /v3/assets/{asset_id}/complete","href":"/reference/complete-asset-upload"}]},{"group":"AI Clipping","pages":[{"title":"Get AI Clipping","deprecated":null,"version":null,"sidebarTitle":"Get ai clipping","openapi":"/openapi/external-api.json get /v3/ai-clipping/{job_id}","href":"/reference/get-ai-clipping"},{"title":"Delete AI Clipping","deprecated":null,"version":null,"sidebarTitle":"Delete ai clipping","openapi":"/openapi/external-api.json delete /v3/ai-clipping/{job_id}","href":"/reference/delete-ai-clipping"},{"title":"List AI Clipping","deprecated":null,"version":null,"sidebarTitle":"List ai clipping","openapi":"/openapi/external-api.json get /v3/ai-clipping","href":"/reference/list-ai-clipping"},{"title":"Create AI Clipping","deprecated":null,"version":null,"sidebarTitle":"Create ai clipping","openapi":"/openapi/external-api.json post /v3/ai-clipping","href":"/reference/create-ai-clipping"}]},{"group":"Filler Word Removal","pages":[{"title":"Create Filler Word Removal","deprecated":null,"version":null,"sidebarTitle":"Create filler word removal","openapi":"/openapi/external-api.json post /v3/filler-word-removals","href":"/reference/create-filler-word-removal"},{"title":"Get Filler Word Removal","deprecated":null,"version":null,"sidebarTitle":"Get filler word removal","openapi":"/openapi/external-api.json get /v3/filler-word-removals/{filler_word_removal_id}","href":"/reference/get-filler-word-removal"}]},{"group":"Batches","pages":[{"title":"Create Video Batch","deprecated":null,"version":null,"sidebarTitle":"Create video batch","openapi":"/openapi/external-api.json post /v3/videos/batches","href":"/reference/create-video-batch"},{"title":"Get Video Batch","deprecated":null,"version":null,"sidebarTitle":"Get video batch","openapi":"/openapi/external-api.json get /v3/videos/batches/{batch_id}","href":"/reference/get-video-batch"},{"title":"Bulk Video Statuses","deprecated":null,"version":null,"sidebarTitle":"Bulk video statuses","openapi":"/openapi/external-api.json get /v3/videos/statuses","href":"/reference/bulk-video-statuses"}]},{"group":"Video Translation Batches","pages":[{"title":"Create Video Translation Batch","deprecated":null,"version":null,"sidebarTitle":"Create video translation batch","openapi":"/openapi/external-api.json post /v3/video-translations/batches","href":"/reference/create-video-translation-batch"},{"title":"Get Video Translation Batch","deprecated":null,"version":null,"sidebarTitle":"Get video translation batch","openapi":"/openapi/external-api.json get /v3/video-translations/batches/{batch_id}","href":"/reference/get-video-translation-batch"},{"title":"Bulk Video Translation Statuses","deprecated":null,"version":null,"sidebarTitle":"Bulk video translation statuses","openapi":"/openapi/external-api.json get /v3/video-translations/statuses","href":"/reference/bulk-video-translation-statuses"}]},{"group":"Lipsync Batches","pages":[{"title":"Create Lipsync Batch","deprecated":null,"version":null,"sidebarTitle":"Create lipsync batch","openapi":"/openapi/external-api.json post /v3/lipsyncs/batches","href":"/reference/create-lipsync-batch"},{"title":"Get Lipsync Batch","deprecated":null,"version":null,"sidebarTitle":"Get lipsync batch","openapi":"/openapi/external-api.json get /v3/lipsyncs/batches/{batch_id}","href":"/reference/get-lipsync-batch"},{"title":"Bulk Lipsync Statuses","deprecated":null,"version":null,"sidebarTitle":"Bulk lipsync statuses","openapi":"/openapi/external-api.json get /v3/lipsyncs/statuses","href":"/reference/bulk-lipsync-statuses"}]},{"group":"Asset Batches","pages":[{"title":"Create Asset Upload Batch","deprecated":null,"version":null,"sidebarTitle":"Create asset upload batch","openapi":"/openapi/external-api.json post /v3/assets/direct-uploads/batches","href":"/reference/create-asset-upload-batch"},{"title":"Complete Asset Upload Batch","deprecated":null,"version":null,"sidebarTitle":"Complete asset upload batch","openapi":"/openapi/external-api.json post /v3/assets/complete/batches","href":"/reference/complete-asset-upload-batch"},{"title":"Get Asset Batch","deprecated":null,"version":null,"sidebarTitle":"Get asset batch","openapi":"/openapi/external-api.json get /v3/assets/batches/{batch_id}","href":"/reference/get-asset-batch"},{"title":"Bulk Asset Statuses","deprecated":null,"version":null,"sidebarTitle":"Bulk asset statuses","openapi":"/openapi/external-api.json get /v3/assets/statuses","href":"/reference/bulk-asset-statuses"}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Skills","pages":[{"title":"Skills","href":"/skills/overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Get help","pages":[{"title":"Get help","href":"/docs/discord"}]}]},"basePath":"","title":"Update Template - HeyGen Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D9ithiIZ.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}