Create a video from a template
create_video_from_templateCreate a Synthesia video by filling a STUDIO template's variables. Validates keys, auto-escapes text, and returns video ID for progress tracking.
Instructions
Create a Synthesia video from a STUDIO template by substituting its variables (templateData). The server fetches the template first and validates every templateData key against its declared variables — variable names are case-sensitive. Text values are HTML-entity-escaped automatically (Synthesia requirement); media variables accept an uploaded asset ID or a URL. DEFAULTS TO A FREE DRAFT (watermarked); pass render_mode='final' only on explicit approval. Returns a videoId immediately; check progress with get_video.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template ID (see list_templates). | |
| templateData | Yes | Variable name → value. Keys are CASE-SENSITIVE and must match the template's variables exactly. | |
| title | No | Defaults to the template title. | |
| description | No | ||
| visibility | No | ||
| ctaSettings | No | ||
| brandKitId | No | 'workspace_default' behavior if unset; 'no_brand_kit' to disable branding; or a custom brand kit UUID. | |
| folderId | No | ||
| callbackId | No | Auto-stamped if omitted. | |
| escapeText | No | Default true: HTML-escape string values (recommended). Set false ONLY if you are passing pre-escaped entities. | |
| render_mode | No | draft (DEFAULT): free test render with a watermark, does not consume the Synthesia quota — use for all iteration. final: full-quality render that COUNTS AGAINST the account's video quota — only use when the user explicitly approves a final render. |