Skip to main content
Glama

Get Video Generation Status

get-video-generation-status
Read-only

Gets the status and result of a video generation job started by create-video. Pass the job_id and continuation_token from the previous create-video or get-video-generation-status response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the video arrives no earlier. A completed job may carry the video before its preview_url is available; when the response still carries a polling_policy, wait as instructed and poll again to obtain the preview. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. Automatic polling stops after 20 minutes. A delayed response means generation timed out or ran past the polling window and the video may still arrive; relay its message, direct the user to projects_url and do not start another generation automatically. An invalid_job error that carries projects_url means the status can no longer be checked; relay its message and share projects_url. When the video is ready, share its id and view_url with the user. Temporary preview and download links may expire; view_url opens the saved Canva asset.

Input Schema

NameRequiredDescriptionDefault
job_idYesThe job_id returned by create-video. This value is stable and never changes.
user_intentNoMandatory 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).
continuation_tokenYesThe continuation_token from the most recent create-video or get-video-generation-status response.

Output Schema

NameRequiredDescriptionDefault
videoNoThe generated video. Only present when the job completed. Its durable id can be used even when the temporary preview_url is absent.
job_idYesID of the video generation job. Stable across all responses.
statusYesStatus of the job. While 'pending' or 'in_progress', poll again with the same job_id and the updated continuation_token after waiting polling_policy.wait_seconds. 'completed' carries the video. 'delayed' means automatic polling has stopped: generation timed out or ran past 20 minutes, and the video may still arrive; direct the user to projects_url. 'failed' carries the failure. 'polled_too_early' means you called before the wait window elapsed — wait polling_policy.wait_seconds, then poll again with the same job_id and continuation_token.
failureNoWhy the job failed. Only present when status is 'failed'. Tell the user and do not automatically call create-video again.
messageNoHuman-readable guidance suitable to relay to the user. Present when status is 'delayed', and when a completed video's preview is not available once polling has stopped.
progressNoOptional progress details while the job is in progress.
projects_urlNoCanva Projects destination where the video will appear if it generated. Present when status is 'delayed', whether generation timed out or ran past the polling window; share it with the user.
polling_policyNoHow and when to poll next. Present while the job is still running, and when the job has completed but the video's preview_url is not yet available.
continuation_tokenNoOpaque token to pass on the next poll. Always use the most recent token.
expected_duration_secondsNoEstimated total generation time in seconds, when available.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added
  4. Removed
  5. Changed3 schema fields changed
    • changedOutput schema / properties / message / description
      Previous value: -"Human-readable delayed-state guidance suitable to relay to the user. Present when status is 'delayed'."New value: +"Human-readable guidance suitable to relay to the user. Present when status is 'delayed', and when a completed video's preview is not available once polling has stopped."
    • changedOutput schema / properties / projects_url / description
      Previous value: -"Canva Projects destination where a delayed video will appear when it is ready. Present when status is 'delayed'; share it with the user."New value: +"Canva Projects destination where the video will appear if it generated. Present when status is 'delayed', whether generation timed out or ran past the polling window; share it with the user."
    • changedOutput schema / properties / status / description
      Previous value: -"Status of the job. While 'pending' or 'in_progress', poll again with the same job_id\nand the updated continuation_token after waiting polling_policy.wait_seconds. 'completed' carries the video. 'delayed'\nmeans automatic polling has stopped after 20 minutes but generation may still be\nrunning; direct the user to projects_url. 'failed' carries the failure.\n'polled_too_early' means you called before the wait window elapsed — wait polling_policy.wait_seconds, then poll again with the same job_id and continuation_token."New value: +"Status of the job. While 'pending' or 'in_progress', poll again with the same job_id\nand the updated continuation_token after waiting polling_policy.wait_seconds. 'completed' carries the video. 'delayed'\nmeans automatic polling has stopped: generation timed out or ran past 20 minutes, and the\nvideo may still arrive; direct the user to projects_url. 'failed' carries the failure.\n'polled_too_early' means you called before the wait window elapsed — wait polling_policy.wait_seconds, then poll again with the same job_id and continuation_token."
  6. Changed1 schema field changed
    • changedOutput schema / properties / polling_policy / properties / instructions / description
      Previous value: -"Instructions for polling this job and communicating what happens next. They MUST be followed. Relay the generation-time expectation and Canva Projects link to the user, then continue polling as instructed while polling_policy is present."New value: +"Instructions for polling this job and communicating what happens next. They MUST be followed. Follow the polling instructions, but do not repeat the initial generation-time notice unless explicitly instructed. While the status is pending or in_progress, continue polling and do not tell the user the video is available in Canva Projects; it appears there only after generation finishes."
  7. Changed8 schema fields changed
    • addedInput schema / properties / continuation_token
      Added value: +{
      +  "description": "The continuation_token from the most recent create-video or get-video-generation-status response.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "job_id"
      -]New value: +[
      +  "job_id",
      +  "continuation_token"
      +]
    • addedOutput schema / properties / continuation_token
      Added value: +{
      +  "description": "Opaque token to pass on the next poll. Always use the most recent token.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "description": "Human-readable delayed-state guidance suitable to relay to the user. Present when status is 'delayed'.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / polling_policy / properties / instructions / description
      Previous value: -"Instructions for polling this job and communicating what happens next. They MUST be followed. Relay the generation-time expectation and Canva Uploads link to the user, then continue polling as instructed while polling_policy is present."New value: +"Instructions for polling this job and communicating what happens next. They MUST be followed. Relay the generation-time expectation and Canva Projects link to the user, then continue polling as instructed while polling_policy is present."
    • addedOutput schema / properties / projects_url
      Added value: +{
      +  "description": "Canva Projects destination where a delayed video will appear when it is ready. Present when status is 'delayed'; share it with the user.",
      +  "format": "uri",
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / description
      Previous value: -"Status of the job. While 'pending' or 'in_progress', poll again with the same job_id\nafter waiting polling_policy.wait_seconds. 'completed' carries the video; 'failed'\ncarries the failure."New value: +"Status of the job. While 'pending' or 'in_progress', poll again with the same job_id\nand the updated continuation_token after waiting polling_policy.wait_seconds. 'completed' carries the video. 'delayed'\nmeans automatic polling has stopped after 20 minutes but generation may still be\nrunning; direct the user to projects_url. 'failed' carries the failure.\n'polled_too_early' means you called before the wait window elapsed — wait polling_policy.wait_seconds, then poll again with the same job_id and continuation_token."
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "pending",
      -  "in_progress",
      -  "completed",
      -  "failed"
      -]New value: +[
      +  "pending",
      +  "in_progress",
      +  "polled_too_early",
      +  "completed",
      +  "delayed",
      +  "failed"
      +]
  8. Changed3 schema fields changed
    • changedOutput schema / properties / failure / description
      Previous value: -"Why the job failed. Only present when status is 'failed'."New value: +"Why the job failed. Only present when status is 'failed'. Tell the user and do not automatically call create-video again."
    • changedOutput schema / properties / polling_policy / properties / instructions / description
      Previous value: -"Instructions on when to poll this job next, in words. They MUST be followed. Relay them to the user while they wait."New value: +"Instructions for polling this job and communicating what happens next. They MUST be followed. Relay the generation-time expectation and Canva Uploads link to the user, then continue polling as instructed while polling_policy is present."
    • changedOutput schema / properties / polling_policy / properties / wait_seconds / description
      Previous value: -"The number of seconds you MUST wait before calling get-video-generation-status again. Polling sooner returns the same answer and does not make the video arrive sooner. The value falls as the job advances, so read it from every response rather than assuming a fixed interval."New value: +"The number of seconds you MUST wait before calling get-video-generation-status again. Polling sooner returns the same answer and does not make the video arrive sooner. Read it from every response."
  9. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare it is a non-destructive read; the description adds the behavioral layer that actually matters: polling cadence semantics, that early polls return the same answer, the 20-minute automatic polling window, that a delayed response may mean a timeout but the video may still arrive, that invalid_job may be unrecoverable, and that preview/download links are temporary while view_url points to the saved asset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then the input-provenance rule, then polling rules, then error paths — a logical order. It is longer than most tool descriptions and dense, but nearly every sentence carries an actionable constraint; only the repeated 'relay its message' phrasing could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still supplies the interpretation an agent needs to act on the response (polling_policy fields, preview_url lag, expiry of links, terminal states). Combined with the annotations and a well-documented 3-parameter schema, nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds use-site semantics beyond the schema: job_id stays stable across polls while continuation_token must be refreshed from each response, and both come from create-video or a prior status call. It does not address user_intent, which the schema already documents as mandatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Gets the status and result of a video generation job started by create-video.' It explicitly ties the tool to its sibling create-video and makes clear this is the polling/retrieval counterpart, so an agent can separate it from create-video and the other get-*-job siblings without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-and-how: pass job_id and continuation_token from the previous response, wait the response's polling_policy.wait_seconds before polling again, never poll sooner, and follow polling_policy.instructions. It also covers exception paths — 20-minute polling cutoff, delayed/timeout response, invalid_job with projects_url — with explicit next actions for each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources