Seedance API
Call Seedance 2.5, Seedance 2.0 Pro, Seedance 2.0 Fast and Seedance 2.0 Mini through one REST API. Video is billed per second of output, by resolution, from $0.042/s. Failed tasks are not charged.
Seedance models on the API
Each Seedance model has its own page with a price table, a playground and the full input reference. Pick one by quality, length and budget.




- Seedance 2.5
- 480p, 720p and 1080p · 4–30 seconds · Inputs: Text prompt, first frame, last frame, reference images, reference videos, reference audio, video editing, video extension and draft preview
- Seedance 2.0 Pro
- 480p, 720p, 1080p and 4K · 4–15 seconds · Inputs: Text prompt, first frame, last frame, reference images, reference videos and reference audio
- Seedance 2.0 Fast
- 480p and 720p · 4–15 seconds · Inputs: Text prompt, first frame, last frame, reference images, reference videos and reference audio
- Seedance 2.0 Mini
- 480p and 720p · 4–15 seconds · Inputs: Text prompt, first frame, last frame, reference images, reference videos and reference audio
Seedance 2.5 API and Seedance 2.0 API compared
Every Seedance model here accepts these inputs: text prompt, first frame, last frame, reference images, reference videos and reference audio. Only Seedance 2.5 adds video editing, video extension and draft preview. Seedance 2.5 makes clips of 4–30 seconds; the Seedance 2.0 models make up to 15 seconds. Seedance 2.0 Pro also renders at 4K, which Seedance 2.5 does not sell.
Every Seedance model takes its prompt and media in the same content array, so you can test a shot on a lower-cost model and render the final one on another by changing the model field.
Seedance API pricing
Every Seedance tier is priced per second of output video. The resolution you request picks the tier, and a request with an input video uses its own rate. Credits are held when a task is accepted and charged on delivery, so each task appears on its own line of your bill.
1 Credit ≈ $0.005. At the standard pack price. Larger packs include bonus Credits, so each Credit costs less.
| Model | Tier | Price | Reference amount (USD) | fal |
|---|---|---|---|---|
| Seedance 2.5 | 480p | 26.4 Credits/s | $0.132/s | 40% less than fal fal price $0.221 per second |
| Seedance 2.5 | 720p | 56.6 Credits/s | $0.283/s | 40% less than fal fal price $0.473 per second |
| Seedance 2.5 | 1080p | 136.4 Credits/s | $0.682/s | 40% less than fal fal price $1.137 per second |
| Seedance 2.5 | 480p with video input* | 15.8 Credits/s | $0.079/s | |
| Seedance 2.5 | 720p with video input* | 34 Credits/s | $0.17/s | |
| Seedance 2.5 | 1080p with video input* | 81.8 Credits/s | $0.409/s | |
| Seedance 2.0 Pro | 480p | 16.8 Credits/s | $0.084/s | 40% less than fal fal price $0.141 per second |
| Seedance 2.0 Pro | 720p | 36.4 Credits/s | $0.182/s | 40% less than fal fal price $0.303 per second |
| Seedance 2.0 Pro | 1080p | 81.8 Credits/s | $0.409/s | 40% less than fal fal price $0.682 per second |
| Seedance 2.0 Pro | 4K | 157 Credits/s | $0.785/s | |
| Seedance 2.0 Pro | 480p with video input* | 10 Credits/s | $0.05/s | |
| Seedance 2.0 Pro | 720p with video input* | 21.8 Credits/s | $0.109/s | |
| Seedance 2.0 Pro | 1080p with video input* | 49 Credits/s | $0.245/s | |
| Seedance 2.0 Pro | 4K with video input* | 97 Credits/s | $0.485/s | |
| Seedance 2.0 Fast | 480p | 13.4 Credits/s | $0.067/s | 40% less than fal fal price $0.113 per second |
| Seedance 2.0 Fast | 720p | 29 Credits/s | $0.145/s | 40% less than fal fal price $0.242 per second |
| Seedance 2.0 Fast | 480p with video input* | 8 Credits/s | $0.04/s | |
| Seedance 2.0 Fast | 720p with video input* | 17.4 Credits/s | $0.087/s | |
| Seedance 2.0 Mini | 480p | 8.4 Credits/s | $0.042/s | 41% less than fal fal price $0.072 per second |
| Seedance 2.0 Mini | 720p | 18.4 Credits/s | $0.092/s | 40% less than fal fal price $0.155 per second |
| Seedance 2.0 Mini | 480p with video input* | 5 Credits/s | $0.025/s | |
| Seedance 2.0 Mini | 720p with video input* | 11 Credits/s | $0.055/s |
fal prices from its public pricing page, checked 2026-11-03. Savings use the standard USD pack.
The rate applies to input and output seconds.
Reference, excl. tax where applicableSee every model
Call the Seedance API
Send one POST request with the model and its input, and get a task ID back at once. Poll the task until it closes, or pass a webhook endpoint and get a signed event when it finishes. This example asks Seedance 2.5 for a 5 second 720p clip from a text prompt.
cURL
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 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}'Python
import os, time, requests
api = "https://api.vizoapi.com/v1"
headers = {"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"}
# Create the task once and keep its ID.
res = requests.post(f"{api}/generations", headers=headers, timeout=30, json={
"model": "seedance-2-5",
"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"},
})
res.raise_for_status()
task = res.json()
# Poll until the task closes, then read its status and result.
while True:
t = requests.get(f"{api}/generations/{task['id']}", headers=headers, timeout=30).json()
if t.get("closed_at"):
break
time.sleep(5)
print(t["status"], t.get("result"))Node.js
const api = "https://api.vizoapi.com/v1";
const headers = { Authorization: `Bearer ${process.env.VIZO_API_KEY}`, "Content-Type": "application/json" };
// Create the task once and keep its ID.
const res = await fetch(`${api}/generations`, { method: "POST", headers, body: JSON.stringify({
model: "seedance-2-5",
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" },
}) });
if (!res.ok) throw new Error(await res.text());
const task = await res.json();
// Poll until the task closes, then read its status and result.
let t;
do {
await new Promise((ok) => setTimeout(ok, 5000));
t = await (await fetch(`${api}/generations/${task.id}`, { headers })).json();
} while (!t.closed_at);
console.log(t.status, t.result);The quick start walks through a full request, from the API key to the download. Every input field and its limits are in the API reference: Seedance 2.5, Seedance 2.0 Pro, Seedance 2.0 Fast and Seedance 2.0 Mini.
Seedance tutorials
Hands-on guides with the prompts, settings and reference inputs that produced each result.
- Plan an eight-second short-drama scene in Seedance 2.0
Use character references, four storyboard drawings, and a timed shot list to direct an animated chess-room confrontation.
- Build a Seedance 2.0 product video from one reference image
Turn a burger photograph into an exploded-view video with clear reference binding, ordered motion, and a fixed camera.
- Direct a 30-second Seedance 2.5 scene with a nine-shot storyboard
Assign separate roles to storyboard, location, and character references, then build a timed 30-second dramatic sequence.
- Recreate camera movement from a previs clip with Seedance 2.5
Use a simple-model video for camera and timing, then supply your own keyframes to render a finished 30-second scene through VizoAPI.
- Re-render a white-model motion clip with Seedance 2.5
Turn a six-second white-model walk into a finished rooftop shot, with a reference-video request and checks for motion, framing, and sound.