Skip to main content
Glama

Create video generation task

create_video

Start an asynchronous video generation task, returning a task ID and poll URL to track rendering status.

Instructions

Creates an asynchronous video generation task. The response returns a canonical task ID and usually a preferred poll_url; clients should poll poll_url first, or use /v1/tasks/{id} as the fixed status endpoint.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bgmNoOptional audio control. Accepted only when declared by the selected model and operation; availabili…
fpsNoFrames per second
seedNoSeed for reproducibility on compatible models. Compatible Seedance models use -1 for a random seed …
sizeNoModel-specific size tier for compatible video models.
userNoEnd-user identifier
audioNoAudio-output selector for operations that declare it. Omission follows the model default; `false` r…
draftNoSeedance 1.5 Pro draft workflow flag. Only supported by Seedance models supporting drafts; draft=tr…
imageNoInline image as a data URL (for example, data:image/png;base64,...). Prefer image_url for broader p…
modelNoModel to use (e.g., veo3.1, kling-v1)
ratioNoCompatibility alias for aspect_ratio. If both ratio and aspect_ratio are provided, they must match.
framesNoOptional frame count for compatible video models. Seedance 1.5 Pro, Seedance 2.0, and Seedance 2.5 …
promptNoVideo description
secondsNoAlias of duration used by compatible request shapes. Seedance models also accept -1 to let the mode…
task_idNoTask identifier used by some continuation, extension, or derivative flows.
durationNoVideo duration in seconds. Seedance models also accept -1 to let the model choose within its suppor…
priorityNoOptional task priority for compatible video models. Do not combine priority with service_tier=flex.
voice_idNoOptional audio control. Accepted only when declared by the selected model and operation; availabili…
audio_urlNoPublic audio URL for an audio-driven or reference-audio operation supported by the selected model.
cfg_scaleNoPrompt adherence strength (0-20) for models that expose CFG-style control.
end_imageNoLast frame image input for start-end-to-video flows. Seedance accepts a public image reference or a…
extend_atNoModel-specific extension start offset used by some video-extension flows.
image_urlNoPublicly reachable image URL for image-to-video generation, or asset://asset-YYYYMMDDHHMMSS-xxxxx f…
operationNoRequested video operation. If omitted, TokenLab infers the operation from the provided inputs. Expl…
video_urlNoPublicly reachable video URL for video-to-video style flows and motion-control models.
watermarkNoOptional watermark toggle for models that expose it. Seedance defaults to false when omitted.
audio_typeNoOptional audio control. Accepted only when declared by the selected model and operation; availabili…
audio_urlsNoCompatibility array for audio-conditioned flows when multiple audio references are supported by the…
image_urlsNoImage URL array for compatible image-conditioned video flows. Seedance 2.5 accepts up to 30 aggrega…
resolutionNoVideo resolution. Seedance defaults to 720p when omitted; available values are model-dependent.
video_urlsNoCompatibility array for video-conditioned flows when multiple input videos are supported by the sel…
effect_typeNoModel-specific effect selector for specialized editing flows.
outputAudioNoCompatibility alias for output_audio. If both are provided, they must match.
start_imageNoFirst frame image input for start-end-to-video flows. Seedance accepts a public image reference or …
aspect_ratioNoCanonical video aspect ratio. Seedance defaults to adaptive when omitted. The ratio alias is accept…
camera_fixedNoOptional fixed-camera selector for compatible video models. Seedance 2.0 and Seedance 2.5 do not su…
extend_timesNoModel-specific extension multiplier or repeat count used by some video-extension flows.
output_audioNoAudio-output selector for operations that declare it. Omission follows the model default; `false` r…
service_tierNoOptional service tier for compatible video models. service_tier=default is accepted as a compatibil…
draft_task_idNoSeedance 1.5 Pro draft promotion task ID. Provide this instead of draft=true to create the final vi…
output_formatNoVideo container format for compatible models. Seedance 2.5 supports mp4 and mov; omit this field fo…
generate_audioNoCompatibility alias for output_audio. If more than one audio toggle is provided, all values must ma…
kling_elementsNoKling 3.0 element references for kling-3.0-video image-conditioned requests. Define 1-3 elements an…
motion_strengthNoMotion intensity (0-1) for models that expose it.
negative_promptNoWhat to avoid in the video
reference_imagesNoCanonical public reference-image field for reference-to-video conditioning. Seedance 2.5 accepts up…
material_asset_idNoTokenLab Seedance material asset ID returned by /v1/videos/assets, by automatic image preparation, …
return_last_frameNoReturn the last generated frame when the selected model supports it. Seedance defaults to false whe…
safety_identifierNoOptional safety/user trace identifier for compatible video models. If omitted for Seedance, TokenLa…
material_asset_idsNoTokenLab Seedance material asset IDs returned by /v1/videos/assets or by automatic image preparatio…
reference_image_typeNoOptional reference image role for models that distinguish between asset and style references. The c…
execution_expires_afterNoOptional execution expiry window in seconds for compatible video models. Seedance defaults to 17280…
X-TokenLab-Delivery-PolicyNoPer-request Delivery policy. Overrides the API key and Workspace defaults. Auto tries TokenLab Veri…

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.6.26
    • addedInput schema / properties / audio
      Added value: +{
      +  "description": "Audio-output selector for operations that declare it. Omission follows the model default; `false` r…",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / audio_type
      Added value: +{
      +  "description": "Optional audio control. Accepted only when declared by the selected model and operation; availabili…",
      +  "type": "string"
      +}
    • changedInput schema / properties / audio_url / description
      Previous value: -"Publicly reachable audio URL for model-specific audio-conditioned video flows."New value: +"Public audio URL for an audio-driven or reference-audio operation supported by the selected model."
    • addedInput schema / properties / bgm
      Added value: +{
      +  "description": "Optional audio control. Accepted only when declared by the selected model and operation; availabili…",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / draft / description
      Previous value: -"Seedance 1.5 Pro draft workflow flag. Only supported by draft-capable Seedance routes; draft=true c…"New value: +"Seedance 1.5 Pro draft workflow flag. Only supported by Seedance models supporting drafts; draft=tr…"
    • changedInput schema / properties / output_audio / description
      Previous value: -"Canonical model-dependent audio output toggle. Veo 3 and Seedance requests default to true when omi…"New value: +"Audio-output selector for operations that declare it. Omission follows the model default; `false` r…"
    • changedInput schema / properties / video_urls / description
      Previous value: -"Compatibility array for video-conditioned flows when multiple input videos are supported by the rou…"New value: +"Compatibility array for video-conditioned flows when multiple input videos are supported by the sel…"
    • addedInput schema / properties / voice_id
      Added value: +{
      +  "description": "Optional audio control. Accepted only when declared by the selected model and operation; availabili…",
      +  "type": "string"
      +}
  2. Changed33 schema fields changedv0.6.24
    • addedInput schema / properties / X-TokenLab-Delivery-Policy
      Added value: +{
      +  "description": "Per-request Delivery policy. Overrides the API key and Workspace defaults. Auto tries TokenLab Veri…",
      +  "enum": [
      +    "auto",
      +    "verified",
      +    "official"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Canonical video aspect ratio. Seedance defaults to adaptive when omitted. The ratio alias is accepted for compatibility."New value: +"Canonical video aspect ratio. Seedance defaults to adaptive when omitted. The ratio alias is accept…"
    • changedInput schema / properties / audio_urls / description
      Previous value: -"Compatibility array for audio-conditioned flows when multiple audio references are supported by the routed model family. TokenLab currently accepts up to 3 reference audios."New value: +"Compatibility array for audio-conditioned flows when multiple audio references are supported by the…"
    • changedInput schema / properties / audio_urls / maxItems
      Previous value: -3New value: +10
    • changedInput schema / properties / camera_fixed / description
      Previous value: -"Optional fixed-camera selector for compatible video models. Seedance 2.0 models do not support this field."New value: +"Optional fixed-camera selector for compatible video models. Seedance 2.0 and Seedance 2.5 do not su…"
    • changedInput schema / properties / draft / description
      Previous value: -"Seedance 1.5 Pro draft workflow flag. Only supported by draft-capable Seedance routes; draft=true creates a low-cost draft task."New value: +"Seedance 1.5 Pro draft workflow flag. Only supported by draft-capable Seedance routes; draft=true c…"
    • changedInput schema / properties / draft_task_id / description
      Previous value: -"Seedance 1.5 Pro draft promotion task ID. Provide this instead of draft=true to create the final video from a previous draft task."New value: +"Seedance 1.5 Pro draft promotion task ID. Provide this instead of draft=true to create the final vi…"
    • changedInput schema / properties / duration / description
      Previous value: -"Video duration in seconds. Seedance models also accept -1 to let the model choose within its supported duration range; TokenLab estimates billing conservatively for that mode."New value: +"Video duration in seconds. Seedance models also accept -1 to let the model choose within its suppor…"
    • changedInput schema / properties / end_image / description
      Previous value: -"Last frame image input for start-end-to-video flows. Seedance accepts a public image reference or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab material owned by the requesting organization. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cann…"New value: +"Last frame image input for start-end-to-video flows. Seedance accepts a public image reference or a…"
    • changedInput schema / properties / execution_expires_after / description
      Previous value: -"Optional execution expiry window in seconds for compatible video models. Seedance defaults to 172800 seconds when omitted."New value: +"Optional execution expiry window in seconds for compatible video models. Seedance defaults to 17280…"
    • changedInput schema / properties / frames / description
      Previous value: -"Optional frame count for compatible video models. Seedance 2.0 models and Seedance 1.5 Pro do not support this field."New value: +"Optional frame count for compatible video models. Seedance 1.5 Pro, Seedance 2.0, and Seedance 2.5 …"
    • changedInput schema / properties / generate_audio / description
      Previous value: -"Compatibility alias for output_audio. If more than one audio toggle is provided, all values must match."New value: +"Compatibility alias for output_audio. If more than one audio toggle is provided, all values must ma…"
    • changedInput schema / properties / image / description
      Previous value: -"Inline image as a data URL (for example, data:image/png;base64,...). Prefer image_url for broader production compatibility. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image pa…"New value: +"Inline image as a data URL (for example, data:image/png;base64,...). Prefer image_url for broader p…"
    • changedInput schema / properties / image_url / description
      Previous value: -"Publicly reachable image URL for image-to-video generation, or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab Seedance material used as the first frame. Preferred over inline base64 in production. TokenLab verifies material ownership. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_mat…"New value: +"Publicly reachable image URL for image-to-video generation, or asset://asset-YYYYMMDDHHMMSS-xxxxx f…"
    • changedInput schema / properties / image_urls / description
      Previous value: -"Image URL array for compatible image-conditioned video flows. This endpoint currently allows up to 9 entries. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"Image URL array for compatible image-conditioned video flows. Seedance 2.5 accepts up to 30 aggrega…"
    • changedInput schema / properties / image_urls / maxItems
      Previous value: -9New value: +30
    • changedInput schema / properties / kling_elements / description
      Previous value: -"Kling 3.0 element references for kling-3.0-video image-conditioned requests. Define 1-3 elements and reference them in the prompt with @name. Each element requires 2-4 image URLs in element_input_urls. Do not combine kling_elements with output_audio=true; omit output_audio or set it to false for element-reference requests."New value: +"Kling 3.0 element references for kling-3.0-video image-conditioned requests. Define 1-3 elements an…"
    • changedInput schema / properties / material_asset_id / description
      Previous value: -"TokenLab Seedance material asset ID returned by /v1/videos/assets, by automatic image preparation, or from a real-person group returned by GetVisualValidateResult. Use it after the asset is ACTIVE with Seedance models that can use the TokenLab material library. The asset must belong to the current account. This field is a generic reference input; to assign first-frame, last-frame, or reference-image semantics explicitly, put asset://<material_asset_id> in start_image, end_image, or reference_im…"New value: +"TokenLab Seedance material asset ID returned by /v1/videos/assets, by automatic image preparation, …"
    • changedInput schema / properties / material_asset_ids / description
      Previous value: -"TokenLab Seedance material asset IDs returned by /v1/videos/assets or by automatic image preparation. They share the Seedance image-reference limit; the selected model must be able to use the TokenLab material library and all assets must belong to the current account and be ACTIVE."New value: +"TokenLab Seedance material asset IDs returned by /v1/videos/assets or by automatic image preparatio…"
    • changedInput schema / properties / operation / description
      Previous value: -"Requested video operation. If omitted, TokenLab infers the operation from the provided inputs. Explicit operation is recommended for production reliability."New value: +"Requested video operation. If omitted, TokenLab infers the operation from the provided inputs. Expl…"
    • changedInput schema / properties / output_audio / description
      Previous value: -"Canonical model-dependent audio output toggle. Veo 3 and Seedance requests default to true when omitted. Kling 3.0 Video accepts this selector for non-element-reference requests and maps it to the compatible sound control; omitted Kling requests default to silent output. Do not combine output_audio=true with kling_elements. The aliases outputAudio and generate_audio are accepted for compatibility and must match when provided together."New value: +"Canonical model-dependent audio output toggle. Veo 3 and Seedance requests default to true when omi…"
    • addedInput schema / properties / output_format
      Added value: +{
      +  "description": "Video container format for compatible models. Seedance 2.5 supports mp4 and mov; omit this field fo…",
      +  "enum": [
      +    "mp4",
      +    "mov"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / reference_image_type / description
      Previous value: -"Optional reference image role for models that distinguish between asset and style references. The camelCase alias referenceImageType is accepted for compatibility."New value: +"Optional reference image role for models that distinguish between asset and style references. The c…"
    • changedInput schema / properties / reference_images / description
      Previous value: -"Canonical public reference-image field for reference-to-video conditioning. This endpoint currently allows up to 9 URLs, compatible data URLs, or for Seedance, asset://asset-YYYYMMDDHHMMSS-xxxxx URIs for ACTIVE TokenLab materials owned by the requesting organization; model-specific limits can be lower. xAI grok-imagine-video accepts up to 7 image references with duration capped at 10 seconds; grok-imagine-video-1.5 and grok-imagine-video-1.5-preview are image-to-video only and do not accept ref…"New value: +"Canonical public reference-image field for reference-to-video conditioning. Seedance 2.5 accepts up…"
    • changedInput schema / properties / reference_images / maxItems
      Previous value: -9New value: +30
    • changedInput schema / properties / return_last_frame / description
      Previous value: -"Return the last generated frame when the selected model supports it. Seedance defaults to false when omitted."New value: +"Return the last generated frame when the selected model supports it. Seedance defaults to false whe…"
    • changedInput schema / properties / safety_identifier / description
      Previous value: -"Optional safety/user trace identifier for compatible video models. If omitted for Seedance, TokenLab uses user when provided."New value: +"Optional safety/user trace identifier for compatible video models. If omitted for Seedance, TokenLa…"
    • changedInput schema / properties / seconds / description
      Previous value: -"Alias of duration used by compatible request shapes. Seedance models also accept -1 to let the model choose within its supported duration range; duration and seconds must match when both are provided."New value: +"Alias of duration used by compatible request shapes. Seedance models also accept -1 to let the mode…"
    • changedInput schema / properties / seed / description
      Previous value: -"Seed for reproducibility. Seedance uses -1 for random seed when omitted."New value: +"Seed for reproducibility on compatible models. Compatible Seedance models use -1 for a random seed …"
    • changedInput schema / properties / service_tier / description
      Previous value: -"Optional service tier for compatible video models. service_tier=default is accepted as a no-op for Seedance 2.0 models; service_tier=flex is rejected where the selected model does not support it."New value: +"Optional service tier for compatible video models. service_tier=default is accepted as a compatibil…"
    • changedInput schema / properties / start_image / description
      Previous value: -"First frame image input for start-end-to-video flows. Seedance accepts a public image reference or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab material owned by the requesting organization. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model can…"New value: +"First frame image input for start-end-to-video flows. Seedance accepts a public image reference or …"
    • changedInput schema / properties / video_urls / description
      Previous value: -"Compatibility array for video-conditioned flows when multiple input videos are supported by the routed model family. TokenLab currently accepts up to 3 reference videos."New value: +"Compatibility array for video-conditioned flows when multiple input videos are supported by the rou…"
    • changedInput schema / properties / video_urls / maxItems
      Previous value: -3New value: +10
  3. Changed13 schema fields changedv0.6.4
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / end_image / description
      Previous value: -"Last frame image input for start-end-to-video flows. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"Last frame image input for start-end-to-video flows. Seedance accepts a public image reference or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab material owned by the requesting organization. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cann…"
    • removedInput schema / properties / extend_at / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / frames / maximum
      Removed value: -9007199254740991
    • changedInput schema / properties / image / description
      Previous value: -"Inline image as a data URL (for example, data:image/png;base64,...). Prefer image_url for broader production compatibility. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"Inline image as a data URL (for example, data:image/png;base64,...). Prefer image_url for broader production compatibility. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image pa…"
    • changedInput schema / properties / image_url / description
      Previous value: -"Publicly reachable image URL for image-to-video generation. Preferred over inline base64 in production. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"Publicly reachable image URL for image-to-video generation, or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab Seedance material used as the first frame. Preferred over inline base64 in production. TokenLab verifies material ownership. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_mat…"
    • removedInput schema / properties / kling_elements / items / properties / element_input_urls / items / format
      Removed value: -"uri"
    • removedInput schema / properties / kling_elements / items / properties / element_input_urls / items / type
      Removed value: -"string"
    • removedInput schema / properties / kling_elements / items / properties / element_input_urls / maxItems
      Removed value: -4
    • removedInput schema / properties / kling_elements / items / properties / element_input_urls / minItems
      Removed value: -2
    • changedInput schema / properties / material_asset_id / description
      Previous value: -"TokenLab Seedance material asset ID returned by /v1/videos/assets, by automatic image preparation, or by a real-person verification bind flow. Use it after the asset is ACTIVE with Seedance models that can use the TokenLab material library. The asset must belong to the current account."New value: +"TokenLab Seedance material asset ID returned by /v1/videos/assets, by automatic image preparation, or from a real-person group returned by GetVisualValidateResult. Use it after the asset is ACTIVE with Seedance models that can use the TokenLab material library. The asset must belong to the current account. This field is a generic reference input; to assign first-frame, last-frame, or reference-image semantics explicitly, put asset://<material_asset_id> in start_image, end_image, or reference_im…"
    • changedInput schema / properties / reference_images / description
      Previous value: -"Canonical public reference-image field for reference-to-video conditioning. This endpoint currently allows up to 9 URLs or compatible data URLs; model-specific limits can be lower. xAI grok-imagine-video accepts up to 7 image references with duration capped at 10 seconds, and grok-imagine-video-1.5-preview does not accept reference images. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"Canonical public reference-image field for reference-to-video conditioning. This endpoint currently allows up to 9 URLs, compatible data URLs, or for Seedance, asset://asset-YYYYMMDDHHMMSS-xxxxx URIs for ACTIVE TokenLab materials owned by the requesting organization; model-specific limits can be lower. xAI grok-imagine-video accepts up to 7 image references with duration capped at 10 seconds; grok-imagine-video-1.5 and grok-imagine-video-1.5-preview are image-to-video only and do not accept ref…"
    • changedInput schema / properties / start_image / description
      Previous value: -"First frame image input for start-end-to-video flows. When the selected Seedance model can use the TokenLab material library, TokenLab prepares this image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model cannot use the material library, ordinary image inputs continue on the regular image path."New value: +"First frame image input for start-end-to-video flows. Seedance accepts a public image reference or asset://asset-YYYYMMDDHHMMSS-xxxxx for an ACTIVE TokenLab material owned by the requesting organization. When the selected Seedance model can use the TokenLab material library, TokenLab prepares ordinary image input as a reusable material before generation; if it is not ACTIVE within 60 seconds, the API returns 409 seedance_material_preparing with auto_material_asset_ids. If the selected model can…"
  4. Addedv0.3.1

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare write/non-idempotent/open-world behavior. The description adds meaningful context beyond them: the task is asynchronous, returns a canonical task ID, usually returns a poll_url, and offers /v1/tasks/{id} as a fallback status endpoint. It does not cover failure, timeout, or cancellation behavior, but it adds useful lifecycle detail.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, followed by the response/polling behavior. No redundant or filler content.

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

Completeness4/5

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

Given no output schema, the description usefully explains the return contract: task ID and usually poll_url. With 100% schema coverage, missing parameter explanations are not a gap. It could mention that inputs are highly model-dependent, but the schema carries that burden.

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

Parameters3/5

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

Schema description coverage is 100%, so all 52 parameters are documented in the schema itself. The description adds no parameter-level meaning or syntax beyond what the schema provides, making the baseline 3 appropriate.

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?

States a specific verb and resource: 'Creates an asynchronous video generation task.' The video-generation resource distinguishes it from siblings like create_image, create_music, and create_3d_model. An agent can identify the tool's purpose without opening the schema.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as create_image or edit_image. The only conditional guidance concerns post-creation polling, which is about handling the returned task rather than tool selection or prerequisites.

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