Seedance 2.0 Fast API
Seedance 2.0 with quicker, lower-cost renders.
- 4 to 15 second clips
- A last-frame image needs a first-frame image. Reference audio needs an image to go with it.
| Resolution | Text or images | With video input |
|---|---|---|
| 480p | Text or images13.4 Credits/s ($0.067/s)40% less than fal fal price $0.113 per second | With video input8 Credits/s ($0.04/s) |
| 720p | Text or images29 Credits/s ($0.145/s)40% less than fal fal price $0.242 per second | With video input17.4 Credits/s ($0.087/s) |
With video input, both the input and output seconds are billed.
Full pricing ↓All Seedance models
Pricing
Prices as of 2026-11-09
| Tier | Price |
|---|---|
480p | 13.4 Credits/s ($0.067/s)Note 14–15 s |
720p | 29 Credits/s ($0.145/s)Note 14–15 s |
480p with video input 480p-video | 8 Credits/s ($0.04/s)Notes 2, 34–15 s |
720p with video input 720p-video | 17.4 Credits/s ($0.087/s)Notes 2, 34–15 s |
- Holds Credits for up to 15 seconds and charges the actual length.
- The rate applies to input and output seconds.
- Holds Credits for up to 15 seconds of output plus up to 15 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.242/s; VizoAPI charges $0.145/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-0-fast",
"input": {
"content": [
{
"type": "text",
"text": "A slow dolly shot through a rainy neon street"
}
],
"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.
contentneeds at least one text, image or video item.- Every image, video and audio item in
contentnames itsrole. - Input limits: up to 9 images, 3 videos and 3 audio items in
content, with no limit on the total. Each video and audio item runs 2 to 15 seconds. Videos add up to at most 15 seconds, and audio to at most 15 seconds. Lengths are checked before the task is created when the file can be measured (422input_duration_out_of_range). Task type and drafts are not supported. - 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.- Audio items need at least one image or video in
content. - Prompt text must not contain inline
--flagparameters.
| Field | Description |
|---|---|
| Encoding quality. Only standard. Only |
| 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_url |
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[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
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[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
| Output length in seconds, 4 to 15, or -1 to let the model choose. Defaults to 5. Default 4 to 15, or |
| 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 |
| Adds a synchronized soundtrack. Defaults to true. Default |
| Container format. Only mp4. Only |
| Output aspect ratio. Defaults to adaptive. Allowed values 16:94:31:13:49:1621:9adaptiveDefault |
| Output resolution. Defaults to 720p. Allowed values 480p720pDefault |
| Also returns the last frame of the video as an image. |
| Random seed. -1 or omitted picks one at random. Minimum -1 · Maximum 4,294,967,295 |
| Add a visible watermark. Defaults to false; the tier price is unchanged. Default |
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 29 Credits per second. For 5 seconds the API holds 145.000 Credits.
Request
{
"model": "seedance-2-0-fast",
"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-0-fast",
"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": "145.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-0-fast",
"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": "145.000",
"reserved": "0.000",
"charged": "145.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"
}
]
}
}

