API Reference

Seedance

Seedance 2.0 text-to-video, image-to-video, and video continuation

Seedance 2.0 supports text-to-video, image-to-video, video continuation, and audio-driven video, with a standard model and a lower-latency fast variant.

All tasks are asynchronous: submit, poll the task status, then download the result. The full lifecycle is documented on the Video Generation page.

Model Lineup

seedance-2.0 — standard version, quality first.

seedance-2.0-fast — fast version, lower latency. Does not support 1080p.

Submit a Generation Task

openaiFailover: disabled

Routes by the model field in the request body to the matching model.

Task creation is not idempotent, so failover retries are disabled for video routes.

POST/v1/videosCompatibility aliasPOST/v1/video/generations

Request

schema

JSON body.

modelstringRequired

Seedance model ID.

seedance-2.0seedance-2.0-fast
promptstringOptional

Video description prompt. Required for pure text-to-video; optional when a visual input is provided via image, images, or metadata.content — at least one of prompt or a visual input is required.

imagestringOptional

Image-to-video reference, used as the first frame. Accepts URL or base64.

imagesarray<string>Optional

Multiple reference images. Accepts URLs or base64.

durationintegerOptional

Video duration in seconds: an integer in 4–15, or -1 to let the model choose automatically. The top-level field takes precedence over metadata.duration.

secondsstringOptional

String form of duration (digits only).

metadataobjectOptional

Seedance-specific parameter container.

metadata.resolutionstringOptional

Resolution. seedance-2.0-fast does not support 1080p.

480p720p1080p
metadata.ratiostringOptional

Aspect ratio. adaptive follows the input image.

16:94:31:13:49:1621:9adaptive
metadata.durationintegerOptional

Duration in seconds: an integer in 4–15, or -1 for automatic. Overridden by the top-level duration field.

metadata.seedintegerOptional

Random seed, -1 to 2^32 - 1. -1 means random.

metadata.watermarkbooleanOptional

Whether to add a watermark.

metadata.generate_audiobooleanOptional

Whether to generate synchronized audio.

metadata.service_tierstringOptional

Service tier.

autodefaultpriority
metadata.execution_expires_afterintegerOptional

Task expiry in seconds, such as 172800.

metadata.return_last_framebooleanOptional

Also return the last frame image.

metadata.callback_urlstringOptional

Callback URL invoked when the task finishes.

metadata.frames / metadata.camera_fixed / metadata.draftinteger | booleanOptional

Accepted for forward compatibility but not effective on the seedance-2.0 series; safe to omit.

metadata.content[]array<object>Optional

Multimodal inputs for advanced workflows: video continuation, audio-driven video, and multi-image references.

content[].typestringOptional

Input type.

textimage_urlvideo_urlaudio_url
content[].textstringOptional

Prompt text when type is text.

content[].image_url.urlstringOptional

Image URL when type is image_url.

content[].video_url.urlstringOptional

Source video URL when type is video_url (video continuation).

content[].audio_url.urlstringOptional

Audio URL when type is audio_url (audio-driven video).

content[].rolestringOptional

Role of an image item; required for each image in multi-image inputs.

first_framelast_framereference_image

Response

schema

Submission receipt. Fields are returned at the top level of the JSON body (no data wrapper).

idstringOptional

Task ID (task_xxx). Same value as task_id, kept for OpenAI SDK compatibility.

task_idstringOptional

Task ID used for polling and download.

objectstringOptional

Always video.

modelstringOptional

Model name from the request.

statusstringOptional

Initial task status, usually QUEUED.

SUBMITTEDQUEUEDIN_PROGRESSSUCCESSFAILURE
progressintegerOptional

Progress 0–100, usually 0 right after submission.

created_atintegerOptional

Task creation time (Unix seconds).

The top-level duration field takes precedence over metadata.duration.

Download results via GET /v1/videos/{task_id}/content instead of copying result URLs into long-lived storage.

Both success and business failures return HTTP 200. A failed call carries an error object — { "error": { "message", "type", "code" }} — instead of the receipt fields; check for the error field to tell them apart.

Query and Download

Poll the task until it reaches SUCCESS or FAILURE (every 10–15 seconds, never below 5 seconds), then download the result. The download endpoint supports Range requests (HTTP 206) for resumable download and seek-while-playing.

GET/v1/videos/{task_id}Compatibility aliasGET/v1/video/generations/{task_id}
GET/v1/videos/{task_id}/content

Response

schema

Core fields below. The full task detail schema, status lifecycle, and polling guidance are documented on the Video Generation page.

statusstringOptional

Task status.

SUBMITTEDQUEUEDIN_PROGRESSSUCCESSFAILURE
progressstringOptional

Progress percentage string, such as "50%".

result_urlstringOptional

Result video download URL, present when status is SUCCESS. Has the form /v1/videos/{task_id}/content.

fail_reasonstringOptional

Failure reason, present when status is FAILURE.

Related