Seedance 2.0 API

Multi-shot Seedance generation with synchronized audio and first/last-frame control, 4–15 s.

ByteDance·VideoAvailable

from$0.053/ second$0.05910% off

Model IDseedance-2.0

text-to-videoimage-to-videoaudio

Input

Text · Image

Output

Video

Provider

9 providers

Duration (s)

4 – 15

Resolution

480p · 720p · 1080p

Aspect ratio

16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9

Last 7 days · not enough recent requests for stats yet.

Seedance 2.0 pricing

Prices are per unit; requests without a provider are routed to the cheapest provider that supports your parameters.

Option480p720p1080p
All options
$0.084 / second
9 Credits
$0.179 / second
18 Credits
$0.447 / second
45 Credits

Try Seedance 2.0 before you integrate

Test output quality, compare provider prices and estimate cost before writing any code.

Provider
Video
Estimated cost

Input

prompt
image_url
end_image_url
duration
resolution
aspect_ratio
generate_audio

Result

Idle
Your generation will appear here.

Provider prices for this request

Enter a prompt to compare provider prices.

Seedance 2.0 prompt examples

Ready-to-use prompts. Load one into the playground and tweak it.

Source
Scene

31 prompts

A realistic cinematic close-up shot of a beautiful young blonde European woman blowing a bubble gum bubble. She has long blonde hair, soft natural makeup, fair skin, and a stylish casual outfit without a hat. She faces the camera in a cool and confident way, slowly chewing gum and gently blowing a large bubble. The bubble grows naturally in front of her lips, then slightly pops with a playful smile and relaxed expression. Natural facial movements, subtle eye movement, realistic hair motion, soft daylight, shallow depth of field, fashion portrait style, ultra realistic skin texture, cinematic camera movement.

Authentic cinematic summer lifestyle video of a stylish young European blonde woman standing beside an open car door on a sunny day. She wears a fitted opaque short-sleeve ribbed cotton t-shirt in a soft pastel color, with a structured fabric texture, not transparent, not see-through, naturally hugging her body while keeping a casual fashionable look. Paired with relaxed blue jeans. She casually drinks from a simple unbranded clear beverage bottle with no logo, no text, no existing brand design. A gentle summer breeze flows through her long blonde hair, creating natural soft movement. Loose strands of hair sway around her face in the sunlight. She slightly lowers the bottle after drinking, showing a relaxed confident expression. Camera captures a realistic handheld close-up lifestyle shot, focusing on her face, hair movement, and natural body language. Bright sunny outdoor environment, warm daylight, realistic skin texture, cinematic depth of field, authentic summer fashion campaign style. Negative Prompt: transparent shirt, see-through clothing, visible underwear, overly thin fabric, white sheer top, brand logo, product label, text, existing beverage brand, unnatural pose, plastic skin, fake hair movement, CGI look.

Editorial still life for a luxury perfume brand, no people or hands in frame. A single heavy-based glass bottle with a faceted amber-tinted body and a brushed brass cap, standing on a slab of honed travertine against a warm sand-toned plaster wall. Beside it, a low-profile companion object for scale — a folded cream linen card embossed with the brand mark and a single dried sprig of eucalyptus resting on the stone. A slow drip of liquid catches the light on the bottle's shoulder. Hard, directional late-afternoon sunlight from the right rakes across the scene, casting a long, sharp bottle shadow and a bright caustic refraction on the wall behind it; a soft secondary bounce lifts the shadow side. Palette of amber, ivory, warm grey, and dull gold. Eye-level camera, slight three-quarter angle to the bottle, generous negative space above and to the left for type, medium-format look, 90mm lens, shallow but controlled depth of field, subtle film grain. Quiet, architectural, restrained, tactile, with the light doing the storytelling

5-second ultra-cinematic mythic teaser, horizontal 16:9. A woman rides a white horse across a clear turquoise sea, with the waterline splitting the world into two dimensions—above and below. The opening is a half-above, half-underwater tracking shot, calm and sacred in tone, with realistic splashes and natural sunlight filtering underwater. The camera slowly pushes in with a slight arc as the horse walks steadily forward; the woman, dressed in flowing ivory robes, sits upright with a distant, prophetic presence, wind moving her fabric and earrings. Brief cut to a close shot: she seems to sense a calling ahead, her eyes lift slightly, and her breath pauses for a moment. The camera then widens as the horse continues forward with stronger splashes; the light on the horizon gradually intensifies, as if an unseen gate is opening. The final shot pushes into the glow, conveying a sense of divine return and fate awakening. Premium cinematic look, realistic water physics, natural horse motion, subtle mystical atmosphere, no extra characters, no text.

A cinematic view of the endless ocean at sunrise, golden sunlight spreading across the deep blue sea, powerful waves rising and crashing with white foam. The camera flies low above the water surface, water droplets and mist glowing in the light. Massive clouds stretch across the sky while seabirds glide through the wind. The ocean feels vast, powerful, and majestic, dramatic lighting, volumetric light rays, ultra detailed water simulation, epic cinematic atmosphere, 4K.

Seedance 2.0 API reference

Endpoints, request fields and runnable examples for this model.

Base URL

https://01router.com/api/v1
llms.txt

Quick start

Set API_KEY to your project key, then run a sample from your server. Replace example media URLs with your own public URLs.

Auto-routing chooses a provider that supports the request. Select a provider to see its input constraints and pinned request examples.

curl https://01router.com/api/v1/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "seedance-2.0",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}
JSON

# Replace GENERATION_ID with the id returned above; poll until status is "succeeded" or "failed"
curl https://01router.com/api/v1/generations/GENERATION_ID -H "Authorization: Bearer $API_KEY"

Endpoints

Only endpoints relevant to this model are listed. Paths below include /api/v1. Click an endpoint to read its usage.

Authentication

Send your API key as a Bearer token. Requests are billed to the key owner's credits.

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Get an API key

Input

Send JSON with Content-Type: application/json. Model parameters belong inside input; model, provider and callback_url are top-level fields.

Request body

NameTypeRequiredDescription
modelstringYes"seedance-2.0"
providerstringNoPin a provider; omit to auto-route to the cheapest. One of: fal | 01router | replicate | wavespeed | kie | apimart | evolink | atlascloud | vercel
inputobjectYesModel parameters, see the input fields below.
callback_urlstringNoOptional public HTTPS webhook URL. The final task result is signed and delivered here; polling remains available.

input · input fields

Required fields are marked explicitly. Other fields use the listed defaults when omitted.

NameTypeRequiredValuesDefault
prompt*stringYes——
image_url
Optional start image (image-to-video)
stringNo——
end_image_urlstringNo——
durationintegerNomin: 4 · max: 155
resolutionstringNo480p | 720p | 1080p720p
aspect_ratiostringNo16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:916:9
generate_audiobooleanNo—true
Callbacks →

Output

Creating a task does not mean generation has finished. Keep its id, poll until succeeded or failed, then read outputs or error. Amounts below are illustrative; actual charges depend on the request.

queued→processing→succeeded / failed

Task submitted

{
  "id": "gen_example",
  "object": "generation",
  "model": "seedance-2.0",
  "type": "video",
  "provider": "fal",
  "status": "processing",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "outputs": [],
  "error": null,
  "credits": 0,
  "price_usd": 0,
  "created_at": "2026-10-25T08:00:00.000Z",
  "completed_at": null
}

Task completed

{
  "id": "gen_example",
  "object": "generation",
  "model": "seedance-2.0",
  "type": "video",
  "provider": "fal",
  "status": "succeeded",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "outputs": [
    "https://example.com/output.mp4"
  ],
  "error": null,
  "credits": 0,
  "price_usd": 0,
  "created_at": "2026-10-25T08:00:00.000Z",
  "completed_at": "2026-10-25T08:01:00.000Z"
}

Response fields

NameTypeRequiredDescription
idstringYesGeneration ID. Use it to query or cancel this task.
objectstringYesgeneration
modelstringYesseedance-2.0
typestringYesvideo
providerstringYesProvider
statusstringYesqueued → processing → succeeded / failed. Stop polling at either terminal state.
inputobjectYesModel parameters, see the input fields below.
outputsstring[]YesResult URLs. Empty while processing; read after succeeded and save the files promptly.
errorstring | nullYesFailure reason, or null when no failure is reported.
creditsnumberYesCredits charged for this request.
price_usdnumberYesRequest price in USD.
created_atstringYesCreation time in ISO 8601 format.
completed_atstring | nullYesCompletion time in ISO 8601 format; null before completion.

Get the result

Poll every few seconds until status is succeeded or failed. Output URLs are provider-hosted and may expire — download them promptly. Or pass callback_url to get the result pushed.

curl "https://01router.com/api/v1/generations/GENERATION_ID" \
  -H "Authorization: Bearer $API_KEY"

queued → processing → succeeded / failed. Stop polling at either terminal state. Result URLs. Empty while processing; read after succeeded and save the files promptly.

Cancel a task

Cancellation depends on provider support and task state. A confirmed cancellation returns status: failed and error: Canceled by user. Unsupported or completed tasks return 409 not_cancelable.

curl -X POST "https://01router.com/api/v1/generations/GENERATION_ID/cancel" \
  -H "Authorization: Bearer $API_KEY"

Quote

Same body as creating a generation. Returns every available provider sorted by price, plus the ones that cannot serve the request and why.

curl "https://01router.com/api/v1/quote" -H "Content-Type: application/json" --data-binary @- <<'JSON'
{
  "model": "seedance-2.0",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}
JSON

Model schema

This public endpoint returns the model parameters and each provider’s supported constraints and prices.

curl "https://01router.com/api/v1/models/seedance-2.0"

Errors

Check the HTTP status and error.message. Fix the request before retrying validation or authentication errors. A failed generation is reported in status and error on the task itself.

{
  "error": {
    "message": "Invalid or missing API key",
    "code": "unauthorized"
  }
}

400Invalid body or parameter value

401Missing or invalid API key

402Not enough credits

404Unknown model or generation

409The task cannot be canceled (already finished, or the provider does not support canceling)

429Too many requests — retry after the given seconds

502Every provider rejected the task (credits refunded)

Auth, routing, billing and error codes are covered in →

Use with AI

Give your coding assistant this model reference: endpoints, input constraints, output fields and request examples in plain text.

Open llms.txt

How does Seedance 2.0 compare?

Specs and starting prices side by side. Test with the same prompt before you choose.

Seedance 2.0Seedance 2.5Seedance 2.0 MiniGrok Imagine Video 1.5
VendorByteDanceByteDanceByteDancexAI
Starting price$0.053 / second$0.086 / second$0.016 / second$0.011 / second
InputText · ImageText · ImageText · ImageText · Image
Provider9 providers9 providers9 providers10 providers
Duration (s)4 – 154 – 304 – 151 – 15
Resolution480p · 720p · 1080p480p · 720p · 1080p480p · 720p480p · 720p · 1080p
Aspect ratio16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:916:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:916:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:916:9 · 4:3 · 3:2 · 1:1 · 2:3 · 3:4 · 9:16

Seedance 2.0 API FAQ

What is Seedance 2.0 good at?

Cinematic camera work, multi-shot sequences, physically plausible action and lip-synced dialogue. It is a mature choice for ads, short dramas, music clips and product videos.

Can I control the first and last frame?

Yes. Pass image_url as the first frame and optionally end_image_url as the last frame to animate between two images.

What durations and resolutions are available?

4 to 15 seconds at 480p, 720p or 1080p, in 16:9, 9:16, 1:1, 4:3, 3:4 or 21:9.

How do I add dialogue?

Put the spoken lines in double quotes and say who speaks. Audio with lip-sync is generated by default at no extra cost.

How is it billed on 01router?

Per output second at the chosen resolution; see the pricing table. Failed generations are refunded.

Related models

Other models you can call with the same API key.