REST async · one key · updated 2026-10-02

Seedance API

ByteDance's Seedance family — 2.5, 2.0, Fast, Mini and 1.5 Pro — behind one endpoint, with every host's per-second price compared live.

API at a glance

EndpointPOST https://videorouter.sh/api/v1/videos
AuthenticationAuthorization: Bearer llmr_sk_live_...
LifecycleAsync job: queued → in_progress → completed | failed. Polling is free.
Model idsbytedance/seedance-2.5, bytedance/seedance-2.0, bytedance/seedance-2.0-fast, bytedance/seedance-2.0-mini, seedance-2-mini-unrestricted, seedance-2-5-unrestricted
BillingPer requested second, charged once at job creation; failed-upstream jobs are not billed. Flat 2% platform fee.
Provider choiceUnpinned requests route to the cheapest healthy host and fail over; append /<host> to prefer one.

Models

Provider comparison — seedance-2-5

Host480p720p720p-sr720p-esr1080p1080p-sr1080p-esr & 60fps1080p-esr1440p-esr1440p-sr2160p4k-esr
OpenSand$0.0525$0.1179——$0.2919—————$0.6065—
SandBase$0.0847$0.1907——$0.4719———————
MachGen$0.085$0.19——$0.50———————
TOAPIS$0.0868$0.1958——$0.3464———————
TOAPIS-Overseas$0.1061$0.2393——$0.5881———————
Atlas Cloud$0.1397$0.3005$0.2193$0.2515$0.5914$0.4056$0.4958$0.4507$0.7602$0.70—$1.7006
WaveSpeedAI$0.18$0.36——$0.90—————$1.80—
Fal$0.2205$0.473——$1.164———————
Fal-US$0.2646$0.5676——————————

USD per second, before the 2% platform fee. Bold = cheapest at that tier.

Examples

curl https://videorouter.sh/api/v1/videos \
  -H "Authorization: Bearer $VIDEOROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "bytedance/seedance-2.5", "prompt": "a paper airplane gliding over a city", "duration_secs": 5}'
# -> {"id": "video_...", "status": "queued"}
curl https://videorouter.sh/api/v1/videos/$ID -H "Authorization: Bearer $VIDEOROUTER_API_KEY"
import time, requests
H = {"Authorization": "Bearer llmr_sk_live_..."}
job = requests.post("https://videorouter.sh/api/v1/videos", headers=H, json={
    "model": "bytedance/seedance-2.5", "prompt": "a paper airplane gliding over a city", "duration_secs": 5}).json()
while job["status"] not in ("completed", "failed"):
    time.sleep(5)
    job = requests.get(f"https://videorouter.sh/api/v1/videos/{job['id']}", headers=H).json()
print(job["data"][0]["url"] if job["status"] == "completed" else job["error"])
const H = { Authorization: "Bearer llmr_sk_live_...", "Content-Type": "application/json" };
let job = await (await fetch("https://videorouter.sh/api/v1/videos", { method: "POST", headers: H,
  body: JSON.stringify({ model: "bytedance/seedance-2.5", prompt: "a paper airplane gliding over a city", duration_secs: 5 }) })).json();
while (!["completed", "failed"].includes(job.status)) {
  await new Promise(r => setTimeout(r, 5000));
  job = await (await fetch(`https://videorouter.sh/api/v1/videos/${job.id}`, { headers: H })).json();
}
console.log(job.data?.[0]?.url ?? job.error);

Model id used: bytedance/seedance-2.5. More in examples.

Notes

A whole family, one request shape
Full, Fast and Mini variants are separate model ids; swap the string to trade quality for cost.
Unusually many hosts
Seedance 2.5 is served by around ten providers, so the spread between cheapest and priciest is large.
Reference-to-video
Guide generation with multiple images, video and audio references on supporting variants.
Pin or float
Pin a host with a suffix like /wavespeed, or let the router choose the cheapest healthy one.

FAQ

Which Seedance version should I use?

2.5 is the newest full model; 2.0 Fast and Mini trade fidelity for lower per-second cost; 1.5 Pro is an older, cheap option. Check the live table for today's spread.

Why do prices differ so much between hosts?

Each host sets its own markup over the creator's list price, and some resell at a discount. The price table makes the gap visible.

Does Seedance support image-to-video?

Yes — pass start_image_url. Reference-to-video is supported on variants that accept input_references.

Are there unrestricted variants?

The catalog contains some variants hosted with different content-filter settings; availability varies by host, so check the model page.

Guides

Using Seedance is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →