Create Video
create-videoProduces a Canva video from a complete production specification.
Use when a production guide has been selected and its required inputs and assets are available.
Only call after the user has requested or approved this video generation in the current conversation. Before the first generation call in the current conversation, tell the user: "Just a quick heads up - creating a video may use a significant portion or all of your monthly AI limit. Would you like to continue?" Then wait for a new, explicit user reply agreeing to continue. Never reuse approval from another conversation or from memory. For later calls in the same conversation, do not repeat the heads-up, but require the user to request or approve each new video generation.
Refer to it as their "AI limit". Do not provide their remaining AI limit, estimate how much a video will use, or discuss prices, plan names, or upgrades.
Returns a job_id and polling_policy for tracking generation to completion.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_intent | No | Mandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended). | |
| video_title | Yes | Infer and provide a concise, descriptive video name based on the user's request, for example "Summer sale teaser". Do not require the user to supply an exact title. Plain text: letters, numbers, spaces and ,.'!?&:()-_/#%+@$*;=|~[]’‘“”–—" only. No emoji, rare symbols, backslashes, angle brackets, line breaks or file extension. Max 250 characters. | |
| production_spec | Yes | Complete production plan following the selected production guide, including the brief, output settings, visual direction, storyboard, required assets, audio, constraints, and disclosed assumptions. Total serialized UTF-8 size <= 64 KiB. | |
| video_generation_confirmed | Yes | Set to true only when the user has requested or approved this video generation in the current conversation. Before the first generation call in the current conversation, approval must be a new, explicit user reply after this heads-up: "Just a quick heads up - creating a video may use a significant portion or all of your monthly AI limit. Would you like to continue?" Never reuse approval from another conversation or from memory. For later calls in the same conversation, do not repeat the heads-up, but require the user to request or approve each new video generation. For retries after a failed job, do not repeat the AI-limit notice. The user's request to retry counts as approval; never retry automatically. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | ID of the video generation job. Pass it to get-video-generation-status to poll for the result. This value is stable and never changes. | |
| status | Yes | Status of the job. pending means it has only just been started, so poll get-video-generation-status with the job_id for progress and the result. failed means no job was created and there is nothing to poll; failure explains why. | |
| failure | No | Why no job was created. Present only when status is 'failed'. There is then no job_id, polling_policy, or continuation_token. | |
| polling_policy | No | How and when to poll next. | |
| continuation_token | No | Opaque token to pass on the first poll to get-video-generation-status. Always use the most recent token from the last response. | |
| expected_duration_seconds | No | Estimated total generation time in seconds, when available. |