Skip to main content
POST
Creates a video task and returns the provider-neutral task envelope. Poll GET /v2/videos/{id} until the task completes. See supported models and billing for Mini, standard 2.0, Fast and 2.5 limits and a full poll loop.
string
required
Use doubao-seedance-2-0-mini-260615, seedance-2.0, doubao-seedance-2-0-fast-260128, or doubao-seedance-2-5-260628. Mini also accepts seedance-2-0-mini and seedance-2.0-mini.
string
required
Text description of the video to generate.
array
Optional media inputs. Each item needs type and url. Mini allows at most 9 images, 3 videos, and 3 audios. Combined reference-video duration must be ≤ 15s. Standard, Fast and 2.5 accept up to 9 images only.
integer
Output seconds: 4–15 for Mini, standard and Fast; 4–30 for 2.5. Default 5.
string
adaptive, 16:9, 9:16, 1:1, 4:3, 3:4, or 21:9. Mini defaults to 16:9.
string
480p, 720p, or 1080p. Only 2.5 also accepts 1080p; the other models accept 480p and 720p. Default 480p.
boolean
Whether to generate audio. Mini defaults to false.
object
Provider-keyed native options. Not supported on these four model profiles.
Unknown fields are rejected. Duration lives on outputs[] after completion, not on the task top level.
string
Public task ID (gen-...). Use this on GET and DELETE. Upstream IDs stay internal.
string
Always video.
string
Model name from the request.
string
Upstream provider that accepted the task, for example volcengine.
string
queued, in_progress, completed, failed, cancelled, or expired.
integer
Optional 0–100 progress.
array
Present after completed. Duration is on each output, not the task.
object
Present when status is failed. Contains code and message.

Errors

Mini and standard 2.0 are billed after acceptance. Fast and 2.5 settle on completion from actual video tokens. Validation failures return 400 and are not billed. Same envelope as Errors. Unknown JSON fields are rejected.
Missing model / prompt, unsupported Mini duration or resolution, wrong input role, too many references, or provider_options on Mini.
Quote is taken at create time. Insufficient balance rejects the request before a task is created.
See Rate Limits.