Skip to content

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.

Prices for every model
ModelTierPriceReference amount (USD)fal
Seedance 2.5480p26.4 Credits/s$0.132/s40% less than fal fal price $0.221 per second
Seedance 2.5720p56.6 Credits/s$0.283/s40% less than fal fal price $0.473 per second
Seedance 2.51080p136.4 Credits/s$0.682/s40% less than fal fal price $1.137 per second
Seedance 2.5480p with video input15.8 Credits/s$0.079/s
Seedance 2.5720p with video input34 Credits/s$0.17/s
Seedance 2.51080p with video input81.8 Credits/s$0.409/s
Seedance 2.0 Pro480p16.8 Credits/s$0.084/s40% less than fal fal price $0.141 per second
Seedance 2.0 Pro720p36.4 Credits/s$0.182/s40% less than fal fal price $0.303 per second
Seedance 2.0 Pro1080p81.8 Credits/s$0.409/s40% less than fal fal price $0.682 per second
Seedance 2.0 Pro4K157 Credits/s$0.785/s
Seedance 2.0 Pro480p with video input10 Credits/s$0.05/s
Seedance 2.0 Pro720p with video input21.8 Credits/s$0.109/s
Seedance 2.0 Pro1080p with video input49 Credits/s$0.245/s
Seedance 2.0 Pro4K with video input97 Credits/s$0.485/s
Seedance 2.0 Fast480p13.4 Credits/s$0.067/s40% less than fal fal price $0.113 per second
Seedance 2.0 Fast720p29 Credits/s$0.145/s40% less than fal fal price $0.242 per second
Seedance 2.0 Fast480p with video input8 Credits/s$0.04/s
Seedance 2.0 Fast720p with video input17.4 Credits/s$0.087/s
Seedance 2.0 Mini480p8.4 Credits/s$0.042/s41% less than fal fal price $0.072 per second
Seedance 2.0 Mini720p18.4 Credits/s$0.092/s40% less than fal fal price $0.155 per second
Seedance 2.0 Mini480p with video input5 Credits/s$0.025/s
Seedance 2.0 Mini720p with video input11 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.

The reference amount uses the standard pack price. Your bill shows what you are charged.
Reference, excl. tax where applicable
See 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.

Seedance API FAQ

How much does the Seedance API cost?
Seedance is billed per second of output video, at a rate set by the resolution. The lowest rate is 8.4 Credits/s ($0.042/s), for Seedance 2.0 Mini at 480p. A request with an input video has its own rate. The final charge follows the actual length the model reports. See all prices.
Which resolutions does the Seedance API support?
Seedance 2.5: 480p, 720p and 1080p, 4–30 seconds. Seedance 2.0 Pro: 480p, 720p, 1080p and 4K, 4–15 seconds. Seedance 2.0 Fast: 480p and 720p, 4–15 seconds. Seedance 2.0 Mini: 480p and 720p, 4–15 seconds.
What is the difference between Seedance 2.5 and Seedance 2.0?
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.
Am I charged when a Seedance task fails?
No. If generation fails, or nothing is delivered within 24 hours of acceptance, all held Credits are released.
Do Credits expire?
No. Credits from top-ups, redeem codes and compensation have no expiry date.
How do I get the finished video?
Send POST /v1/generations and get a task ID back at once. Poll GET /v1/generations/{id}, or receive a webhook when the task finishes. Finished files are kept for 7 days, so download what you want to keep. Read the webhooks guide.