Seedance 2.5 API
Cinematic video from text or images.
- 4 to 30 second clips
- Draft clips at 480p to check a shot before you render the final
| Resolution | Text or images | With video input |
|---|---|---|
| 480p | Text or images26.4 Credits/s ($0.132/s)40% less than fal fal price $0.221 per second | With video input15.8 Credits/s ($0.079/s) |
| 720p | Text or images56.6 Credits/s ($0.283/s)40% less than fal fal price $0.473 per second | With video input34 Credits/s ($0.17/s) |
| 1080p | Text or images136.4 Credits/s ($0.682/s)40% less than fal fal price $1.137 per second | With video input81.8 Credits/s ($0.409/s) |
With video input, both the input and output seconds are billed.
Full pricing ↓All Seedance modelsPricing
Prices as of 2026-11-09
| Tier | Price |
|---|---|
480p | 26.4 Credits/s ($0.132/s)Note 14–30 s |
720p | 56.6 Credits/s ($0.283/s)Note 14–30 s |
1080p | 136.4 Credits/s ($0.682/s)Note 14–30 s |
480p with video input 480p-video | 15.8 Credits/s ($0.079/s)Notes 2, 34–30 s |
720p with video input 720p-video | 34 Credits/s ($0.17/s)Notes 2, 34–30 s |
1080p with video input 1080p-video | 81.8 Credits/s ($0.409/s)Notes 2, 34–30 s |
- Holds Credits for up to 30 seconds and charges the actual length.
- The rate applies to input and output seconds.
- Holds Credits for up to 30 seconds of output plus up to 30 seconds of input, and charges the actual length.
1 Credit ≈ $0.005. At the standard pack price. Larger packs include bonus Credits, so each Credit costs less.
For 720p, fal charges $0.473/s; VizoAPI charges $0.283/s, 40% less.
Delivery and billing
- Output
- Finished files are listed in the task result with an asset ID and type for each.
- Download
- Files are kept for 7 days and downloaded through short-lived signed links. You can delete them any time.
- Billing
- Credits are held when a task is accepted and charged on delivery. If generation fails, or nothing is delivered within 24 hours, the held Credits are released in full.
- Notifications
- Poll the task by ID, or use signed webhooks and deduplicate by event_id.
How is it billed?
Do failed generations cost anything?
API reference
Create the task once, then poll it by its ID. Full script with upload and download · API reference
API=https://api.vizoapi.com/v1
AUTH="Authorization: Bearer $VIZO_API_KEY"
# Create the task once and keep its ID.
ID=$(curl -fsS $API/generations -H "$AUTH" -H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"input": {
"content": [
{
"type": "text",
"text": "A 12-second cinematic space opera in four shots, epic and quiet, film grain, natural light.\nShot 1: dawn on a prehistoric savanna, wide low-angle shot. A few early hominids crouch warily around a tall black monolith from the reference image. Its polished face carries an engraved open ring with a gap at the upper right.\nShot 2: slow push-in on the monolith. The amber sun rises behind it and sits exactly in the gap of the ring, completing the symbol. One hominid stands, raises a bleached animal skull with long curved horns, roars and hurls it high into the sky.\nShot 3: slow motion, low angle, the horned skull tumbles high against the blue dawn sky, its curved horns tracing an open ring. Match cut: the tumbling skull becomes the dark grey ring-shaped space station from the reference image, tumbling the same way in black space.\nShot 4: locked-off shot in space. The station slows and stops facing the camera: an open ring with a gap at the upper right, a line of tiny lights along it. An amber planet rises behind it and fills the gap exactly. Hold still.\nSound: wind, distant birds, low growls, a rising deep hum, a roar, the whoosh of the skull, then the silence of space and a long low synth tone. No music, no voices, no text."
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5
},
"metadata": {
"client_reference": "my-unique-reference-1"
}
}' | jq -r .id)
# Poll until the task closes, then read its status and result.
until curl -fsS $API/generations/$ID -H "$AUTH" | jq -e '.closed_at != null' > /dev/null; do sleep 5; done
curl -fsS $API/generations/$ID -H "$AUTH" | jq '{status, result}'All fields
Send these fields in input. A field the table does not list is refused with HTTP 422 invalid_input.
- Apart from a
draft_taskrequest,contentneeds at least one text, image or video item. - Every image, video and audio item in
contentnames itsrole. - Input limits: up to 30 images, 10 videos and 10 audio items in
content, with no limit on the total. Each video and audio item runs 2 to 30 seconds, and aneditsource video 4 to 30 seconds. Videos add up to at most 30 seconds, and audio to at most 30 seconds. Lengths are checked before the task is created when the file can be measured (422input_duration_out_of_range). - Image pixel size and aspect ratio, and video resolution and frame rate, are not checked when the request is made: the model checks them when the task runs, and a file it refuses usually fails the task with
input_media_invalid(otherwisegeneration_failed); the task is not charged. first_frameandlast_frameimages (at most one each) cannot be combined with reference images, videos or audio, and alast_frameneeds afirst_frame.ratiomust beadaptivefor first-frame, edit and extend input.omni_reference_task_typemay be omitted or auto with a reference video; it is not allowed without video. Automatic task selection holds the maximum output length to cover edit or extend; foredit,durationmust be-1.draftset totrueneedsresolution480pand cannot be combined withreturn_last_frame.- A
draft_taskitem must be the only item incontent, and names a succeeded draft of your project from the last 7 days. - A
draft_taskrequest reuses the draft's settings: it does not acceptduration,ratio,seed,generate_audio,omni_reference_task_type,draftorbitrate_mode, andresolutioncan only be1080p. - Prompt text must not contain inline
--flagparameters.
| Field | Description |
|---|---|
| Prompt text and media items. Each image, video and audio item names its role. At least 1 items |
content[]. | Item kind. Allowed values textimage_urlvideo_urlaudio_urldraft_task |
Items where type is text | |
content[]. | Prompt text, up to 4000 characters per item. At most 4000 characters |
Items where type is image_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
Items where type is video_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
Items where type is audio_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
Items where type is draft_task | |
content[]. | The finished draft to upgrade. Must be the only content item. |
content[]. | Generation id of a succeeded draft (gen_...). Pattern |
| Output resolution. Defaults to 720p, or 1080p when the content is a draft. Allowed values 480p720p1080pDefault |
| Output aspect ratio. Must be adaptive for first-frame, edit and extend inputs. Defaults to adaptive. Allowed values 16:94:31:13:49:1621:9adaptiveDefault |
| Output length in seconds, 4 to 30, or -1 to let the model choose. Defaults to 5. Must be -1 for edit. Default 4 to 30, or |
| Adds a synchronized soundtrack. Defaults to true. Default |
| Random seed. -1 or omitted picks one at random. Minimum -1 · Maximum 4,294,967,295 |
| Also returns the last frame of the video as an image. |
| Container format. Only mp4. Only |
| Encoding quality. Only standard. Only |
| Generates a quick 480p preview that a later request can upgrade to 1080p. |
| With a reference video, omit or choose auto to infer the task. Reference makes a new video, edit changes the source, and extend lengthens it. Automatic selection holds the maximum output length. Allowed values referenceeditextendauto |
| Add a visible watermark. Defaults to false; the tier price is unchanged. Default |
| Execution and delivery deadline in seconds from acceptance. Defaults to 86400. Credits remain held until completion or this deadline. Default Minimum 3600 · Maximum 259,200 |
Full example request and response
A complete create request, the 202 answer and the task once it has succeeded. This input selects the 720p tier at 56.6 Credits per second. For 5 seconds the API holds 283.000 Credits.
Request
{
"model": "seedance-2-5",
"input": {
"content": [
{
"type": "text",
"text": "A paper boat drifting on a pond at dawn, slow dolly in"
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5
},
"metadata": {
"client_reference": "my-unique-reference-1"
}
}202 Accepted
{
"id": "gen_01JD8Z5QW3XR",
"model": "seedance-2-5",
"source": "api",
"created_at": "2026-11-08T09:00:00Z",
"customer_resolution_deadline": "2026-11-09T09:00:00Z",
"late_result_available": false,
"metadata": {
"client_reference": "my-unique-reference-1"
},
"status": "processing",
"execution_status": "processing",
"delivery_status": "pending",
"billing_status": "pending",
"version": 1,
"price": {
"unit": "credit",
"estimated": "283.000",
"reserved": "0.000",
"charged": "0.000",
"refunded": "0.000"
},
"allowed_actions": [],
"closed_at": null,
"error": null,
"result": null
}200 Succeeded
{
"id": "gen_01JD8Z5QW3XR",
"model": "seedance-2-5",
"source": "api",
"created_at": "2026-11-08T09:00:00Z",
"customer_resolution_deadline": "2026-11-09T09:00:00Z",
"late_result_available": false,
"metadata": {
"client_reference": "my-unique-reference-1"
},
"status": "succeeded",
"execution_status": "succeeded",
"delivery_status": "ready",
"billing_status": "settled",
"version": 4,
"price": {
"unit": "credit",
"estimated": "283.000",
"reserved": "0.000",
"charged": "283.000",
"refunded": "0.000"
},
"allowed_actions": [],
"closed_at": "2026-11-08T09:01:31Z",
"error": null,
"result": {
"asset_id": "ast_01JD8Z9M2C4V",
"outputs": [
{
"index": 0,
"asset_id": "ast_01JD8Z9M2C4V",
"content_type": "video/mp4"
}
]
}
}

