Available models
Loading…
See video models in the Model Catalog and filter for Video. Charges are actual duration multiplied by the model price.
Two-step asynchronous flow
- Submit: POST /v1/videos immediately returns an id with queued status.
- Poll GET /v1/videos/{id} every few seconds until completed or failed. A five-second Seedance video usually takes about one to two minutes.
Submission parameters
modelstringRequiredyour-seedance-model-idpromptstringRequiredAn orange cat running through a sunny field, cinematic lightingdurationintegerOptional5resolutionstringOptional720Paspect_ratiostringOptional16:9bitrate_modestringOptionalstandardnegative_promptstringOptionalblur,distortionseedintegerOptional-1Volcano-specific behavior
- Returns a temporary MP4 link from Volcano TOS that usually expires after about 24 hours. Download it promptly.
- Only successful tasks are billed by duration; for example, a five-second video costs 5 × the per-second price.
- Supports text-to-video, image-to-video, and first/last-frame interpolation.
Image to video / first and last frames
Add an image URL or base64 data URI to the request body for image-to-video without uploading a file.
imagestring | string[]Optionalhttps://...pngimagesstring[]Optional["https://.../person.png","https://.../scene.png"]first_framestringOptionalhttps://...pnglast_framestringOptionalhttps://...png# Image to video: pass an image URL (or base64 data URI) in image to animate it
curl https://zerofa.ai/v1/videos \
-H "Authorization: Bearer sk-zerofa-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "your-seedance-model-id",
"prompt": "The cat stands and stretches as the camera slowly pushes in",
"image": "https://your-cdn.com/cat.png",
"duration": 5
}'
# First/last-frame interpolation: provide both frames to generate the transition
# "first_frame": "https://.../a.png",
# "last_frame": "https://.../b.png"Multimodal references (r2v) · Seedance 2.0
Seedance 2.0 can combine image, video, and audio references to borrow camera movement, style, music, or lip-sync cues.
reference_videostring | string[]Optionalhttps://...mp4reference_audiostring | string[]Optionalhttps://...mp3# Multimodal reference (Seedance 2.0): combine image, video, and audio references
curl https://zerofa.ai/v1/videos \
-H "Authorization: Bearer sk-zerofa-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "your-seedance-model-id",
"prompt": "Use this camera movement with a dog running on a beach as the subject",
"images": ["https://.../dog.png"],
"reference_video": ["https://.../style.mp4"],
"reference_audio": ["https://.../bgm.mp3"],
"duration": 5
}'Retrieve a task
/v1/videos/{id}The response is an OpenAI Videos-compatible object with one of four statuses: queued, in_progress, completed, or failed. Terminal results are cached, so repeated retrieval does not call the upstream again. progress is a stage indicator, not frame-level upstream progress.
Request and response bodies
Use the examples below to verify the request and response structures. To send a request, select Debug at the top of the page.
curl https://zerofa.ai/v1/videos \
-H "Authorization: Bearer sk-zerofa-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "your-seedance-model-id",
"prompt": "An orange cat running through a sunny field, cinematic lighting",
"duration": 5,
"resolution": "720P",
"aspect_ratio": "16:9",
"bitrate_mode": "standard"
}'
# → {"id":"<task-id>","status":"queued"}curl https://zerofa.ai/v1/videos/<task-id> \
-H "Authorization: Bearer sk-zerofa-xxx"
# in_progress → {"id":"...","status":"in_progress"}
# completed → {"id":"...","status":"completed",
# "metadata":{"url":"https://.../result.mp4"}}