Available models
Use Seedance in the dashboard
Open model page
Billing
Video generation is billed by pixel-tokens, following the official Volcengine formula:
Check your dashboard for the current per-million-token price for each model.
Note: Only successful generations are charged. Tasks that fail due to content policy or upstream errors incur no cost. Billing is reconciled against the actual token count reported by the upstream API on task completion.
How it works
Video generation is a two-step async process: submit a task, then poll for the result.1
Submit a generation task
Send a The response returns a task ID you’ll use to check progress:
POST request to /v1/generation/tasks:2
Poll for the result
Query the task status using the returned Completed response:
id. Poll every 3–5 seconds until the status is succeeded or failed:content on the response is a single object ({ video_url }), not the part-array format used in the request content field. Don’t reuse your request-parsing code for the response.Task status reference
Image-to-video
To animate a still image instead of generating from text alone, add animage_url part to the content array alongside your text prompt. There are three ways to supply that image, in order of preference:
1. Upload the file
Recommended. Small, reliable request bodies.
2. Public image URL
Simplest, if the image is already hosted.
3. Base64 data URI
Quick one-off tests only.
Option 1: Upload the file (recommended)
POST /v1/assets/upload with a multipart/form-data body containing the file and the target model. It returns a hosted assetUrl you pass straight into image_url — your generation request body stays small no matter how large the source photo is.
image/png, image/jpeg, image/webp (max 10 MB) and video/mp4 (max 50 MB, for video-editing tasks).
Option 2: Use a public image URL
If the image is already hosted somewhere reachable, skip the upload step entirely and pass the URL directly:cURL
Option 3: Inline base64 (quick tests only)
For a one-off test without wiring up an upload step, you can inline the image directly as a base64 data URI:/v1/generation/tasks/{id} exactly as shown above — the response shape and polling logic are identical regardless of how the image was supplied.
Request parameters
Note: Video generation models are not available through/v1/chat/completions. Use/v1/generation/tasksfor all video generation requests.