Skip to main content
POST
/api/v1/video/queue
Call /video/quote to get a price estimate, then poll /video/retrieve with the returned queue_id until complete. Private models also return a download_url for the finished video. It is a short-lived delivery URL (a few retries are fine if a download drops); see the Video Generation guide for details and optional DELETE for privacy.

Seedance 2.0 & 2.5

For seedance-2-0-*-api and seedance-2-5-*-api models (text-to-video, image-to-video, reference-to-video, plus the Seedance 2.0 -fast-* variants), see the Seedance 2.0 & 2.5 Guide for the four-workflow model (Reference / Edit / Extend / Stitch), family-specific multimodal limits, faces-off API behavior, and pricing details.

Seedance faces-off API

Public Seedance models do not support face-asset provisioning or face-consent attestation. Face-bearing inputs may be rejected upstream. For likeness / face-asset generation, use the Venice app or Studio. See the Seedance guide for details.

Video upscaling

For the topaz-video-upscale model, use upscale_factor (1, 2, or 4) instead of resolution, and provide a video_url. Duration and FPS are detected automatically from the video file. See the Video Upscaling Guide for full details and examples.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request body for video generation. Available fields and valid values vary by model.

model
string
required

The model to use for video generation.

Example:

"seedance-2-0-text-to-video"

prompt
string
required

The prompt to use for video generation. Required for most models. The maximum length varies by model (default 2500 characters, up to 20000 for some models).

Required string length: 1 - 20000
Example:

"Commerce being conducted in the city of Venice, Italy."

duration
enum<string>
required

The duration of the video to generate. Available options vary by model.

Available options:
1s,
2s,
3s,
4s,
5s,
6s,
7s,
8s,
9s,
10s,
11s,
12s,
13s,
14s,
15s,
16s,
17s,
18s,
19s,
20s,
21s,
22s,
23s,
24s,
25s,
26s,
27s,
28s,
29s,
30s,
1 gen,
Auto
Example:

"10s"

consents
object

Optional provider-specific consent attestations. Seedance consent is required only when submitted media contains faces.

negative_prompt
string

Optional negative prompt. The maximum length varies by model (default 2500 characters, up to 20000 for some models).

Maximum string length: 20000
Example:

"low resolution, error, worst quality, low quality, defects"

aspect_ratio
enum<string>

The aspect ratio of the video. Available options vary by model. Some models do not support aspect_ratio.

Available options:
1:1,
2:3,
3:2,
3:4,
4:3,
4:5,
5:4,
9:16,
9:21,
16:9,
21:9,
adaptive,
auto
Example:

"16:9"

resolution
enum<string>

The resolution of the video. Available options vary by model. Some models do not support resolution. Use upscale_factor for upscale models.

Available options:
256p,
360p,
480p,
540p,
580p,
720p,
1080p,
1440p,
2160p,
4k,
2x,
4x,
2K,
768P,
true_1080p
Example:

"720p"

upscale_factor
enum<integer>
default:2

For upscale models only. 1 = quality enhancement, 2 = double resolution (default), 4 = quadruple.

Available options:
1,
2,
4
Example:

2

audio
boolean
default:true

For models which support audio generation and configuration. Defaults to true.

Example:

true

image_url
string

For image-to-video models, the reference image. Must be a URL (http/https) or a data URL (data:image/...).

Example:

"data:image/png;base64,iVBORw0K..."

end_image_url
string

For models that support end images or transitions, the end frame image. Must be a URL or data URL.

Example:

"data:image/png;base64,iVBORw0K..."

audio_url
string

For models that support audio input, background music. Must be a URL or data URL. Supported: WAV, MP3. Max: 30s, 15MB.

Example:

"data:audio/mpeg;base64,SUQzBAA..."

video_url
string

For models that support video input (video-to-video, upscale). Must be a URL or data URL. Supported: MP4, MOV, WebM.

Example:

"data:video/mp4;base64,AAAAFGZ0eXA..."

reference_image_urls
string[]

For models with reference image support, up to 30 images for character/style consistency. Each must be a URL or data URL.

Maximum array length: 30
Example:
reference_video_urls
string[]

For models with reference video support (e.g. Seedance 2.0 R2V), up to 10 reference video URLs (role: "reference_video") used to inherit subject motion, camera movement, and overall style. Per-clip 2–15 s, .mp4 or .mov, ≤50 MB; aggregate duration ≤15 s. Each must be a URL or data URL.

Maximum array length: 10
Example:
reference_audio_urls
string[]

For models with reference audio support (e.g. Seedance 2.0 R2V), up to 10 reference audio URLs (role: "reference_audio") used as donors for vocal timbre, narration, or sound effects. Per-clip 2–15 s, .wav or .mp3; aggregate duration ≤15 s. Must be paired with at least one reference image or reference video — audio-only Reference workflows are rejected at validation. Each must be a URL or data URL.

Maximum array length: 10
Example:
elements
object[]

For models with advanced element support (e.g., Kling O3 R2V). Up to 4 elements defining characters/objects. Reference in prompt as @Element1, @Element2, etc.

Maximum array length: 4
Example:
scene_image_urls
string[]

For models with advanced element support. Up to 4 scene reference images. Reference in prompt as @Image1, @Image2, etc.

Maximum array length: 4
Example:
keyframes
object[]

For keyframe-driven models. Up to 10 keyframe images pinned to frame positions in the generated 24 fps video. Each frame_index must be unique and no greater than duration × 24.

Maximum array length: 10
Example:

Response

Video generation request queued successfully

model
string
required

The ID of the model used for video generation.

Example:

"video-model-123"

queue_id
string
required

The ID of the video generation request.

Example:

"123e4567-e89b-12d3-a456-426614174000"

download_url
string

Pre-signed URL to download the completed video. Only present for VPS-backed models. When provided, the retrieve endpoint returns JSON status only (no video stream). Fetch this URL after status is COMPLETED to get the video/mp4 file. Valid for 24 hours.