A young woman prepares breakfast inside a quiet modern apartment early in the morning. She casually opens the curtains and freezes: an enormous silent spacecraft is hovering between the nearby skyscrapers. Her coffee cup slowly lowers from her hand as sunlight reflects from the ship across the room. The camera begins with an intimate domestic shot, follows her toward the window, then pulls behind her shoulder into a massive exterior reveal. Grounded science fiction, realistic scale, quiet awe, cinematic morning light.
Seedance 2.5 API
ByteDance’s flagship video model: up to 30 s in one pass, native synchronized audio, first/last-frame control.
from$0.086/ second$0.09610% off
Model IDseedance-2.5
Input
Text · Image
Output
Video
Provider
9 providers
Duration (s)
4 – 30
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.5 pricing
Prices are per unit; requests without a provider are routed to the cheapest provider that supports your parameters.
| Option | 480p | 720p | 1080p |
|---|---|---|---|
| All options | $0.124 / second 13 Credits | $0.266 / second 27 Credits | $0.665 / second 67 Credits |
Try Seedance 2.5 before you integrate
Test output quality, compare provider prices and estimate cost before writing any code.
Input
Result
IdleProvider prices for this request
Enter a prompt to compare provider prices.
Seedance 2.5 prompt examples
Ready-to-use prompts. Load one into the playground and tweak it.
148 prompts
Rainy night, neon-lit city street. A young man in a dark jacket, clearly visible in the center of the frame from the first second, walks toward the camera holding an old leather suitcase, rain dripping from his hair. He stops, looks behind him, and slowly lifts the lid; warm golden light spills out and lights up his surprised face. Slow push-in, cinematic 35mm film look, realistic reflections on wet asphalt, natural acting.
A stylish young woman in a red coat walks through an underground parking garage and unlocks a sleek black car. She opens the driver door, then freezes when she sees a leather briefcase already sitting on the passenger seat. A phone inside the briefcase begins ringing. She slowly looks around the empty garage without entering the car. The camera follows behind her, moves into a close-up of the briefcase, then gently circles toward her face. Modern crime thriller, cold industrial light, polished reflections, slow controlled suspense.
A professional surfer paddles into a colossal turquoise wave at a remote ocean reef. He pops up and races down the face as the wave curls into a massive glassy barrel above him. The camera starts with a dramatic drone shot from above, then drops to water level inside the barrel following behind him, as spray explodes around. He bursts out of the barrel just before it collapses and raises his fist in triumph. Epic sports documentary, thunderous surf, golden afternoon sun, crystal-clear water.
A massive black dragon bursts out of storm clouds above a medieval stone castle at night. Archers on the walls fire flaming arrows as the dragon unleashes a torrent of fire across the battlements. A lone knight in silver armor steps forward, raises her shield and shouts: "Hold the wall! Do not run!" The camera sweeps from a wide aerial view of the castle into a low close-up of the knight as flames roar past her shield. Epic fantasy war film, lightning, embers, dramatic orchestral score.
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
Seedance 2.5 API reference
Endpoints, request fields and runnable examples for this model.
Base URL
https://01router.com/api/v1Quick 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.5",
"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.
/api/v1/generationsCreate a generation (charges credits) · API key required
/api/v1/generations/{id}Get a generation; polls the provider while running · API key required
/api/v1/generations/{id}/cancelCancel a running generation (credits refunded) · API key required
/api/v1/quotePrice a request on every provider (no charge, no key needed) · Public · no key
/api/v1/models/seedance-2.5Get one model · Public · no key
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/jsonInput
Send JSON with Content-Type: application/json. Model parameters belong inside input; model, provider and callback_url are top-level fields.
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | "seedance-2.5" |
| provider | string | No | Pin a provider; omit to auto-route to the cheapest. One of: fal | 01router | replicate | wavespeed | kie | apimart | evolink | atlascloud | vercel |
| input | object | Yes | Model parameters, see the input fields below. |
| callback_url | string | No | Optional 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.
| Name | Type | Required | Values | Default |
|---|---|---|---|---|
| prompt* | string | Yes | — | — |
| image_url Optional start image (image-to-video) | string | No | — | — |
| end_image_url | string | No | — | — |
| duration | integer | No | min: 4 · max: 30 | 5 |
| resolution | string | No | 480p | 720p | 1080p | 720p |
| aspect_ratio | string | No | 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | 16:9 |
| generate_audio | boolean | No | — | true |
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.
Task submitted
{
"id": "gen_example",
"object": "generation",
"model": "seedance-2.5",
"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.5",
"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
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Generation ID. Use it to query or cancel this task. |
| object | string | Yes | generation |
| model | string | Yes | seedance-2.5 |
| type | string | Yes | video |
| provider | string | Yes | Provider |
| status | string | Yes | queued → processing → succeeded / failed. Stop polling at either terminal state. |
| input | object | Yes | Model parameters, see the input fields below. |
| outputs | string[] | Yes | Result URLs. Empty while processing; read after succeeded and save the files promptly. |
| error | string | null | Yes | Failure reason, or null when no failure is reported. |
| credits | number | Yes | Credits charged for this request. |
| price_usd | number | Yes | Request price in USD. |
| created_at | string | Yes | Creation time in ISO 8601 format. |
| completed_at | string | null | Yes | Completion 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.5",
"input": {
"prompt": "A cinematic shot of a red fox running through snow",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true
}
}
JSONModel 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.5"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)
Use with AI
Give your coding assistant this model reference: endpoints, input constraints, output fields and request examples in plain text.
How does Seedance 2.5 compare?
Specs and starting prices side by side. Test with the same prompt before you choose.
| Seedance 2.5 | Seedance 2.0 | Seedance 2.0 Mini | Grok Imagine Video 1.5 | |
|---|---|---|---|---|
| Vendor | ByteDance | ByteDance | ByteDance | xAI |
| Starting price | $0.086 / second | $0.053 / second | $0.016 / second | $0.011 / second |
| Input | Text · Image | Text · Image | Text · Image | Text · Image |
| Provider | 9 providers | 9 providers | 9 providers | 10 providers |
| Duration (s) | 4 – 30 | 4 – 15 | 4 – 15 | 1 – 15 |
| Resolution | 480p · 720p · 1080p | 480p · 720p · 1080p | 480p · 720p | 480p · 720p · 1080p |
| Aspect ratio | 16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9 | 16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9 | 16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9 | 16:9 · 4:3 · 3:2 · 1:1 · 2:3 · 3:4 · 9:16 |
Seedance 2.5 API FAQ
What is new in Seedance 2.5?
ByteDance's Seedance 2.5 generates longer shots (4 to 30 seconds), handles richer multimodal references and keeps characters and products consistent, with synchronized audio included.
Which inputs does it accept on 01router?
A text prompt, plus an optional first-frame image (image_url) and last-frame image (end_image_url) to control how the shot starts and ends.
What durations, resolutions and ratios are supported?
4 to 30 seconds at 480p, 720p or 1080p, with 16:9, 9:16, 1:1, 4:3, 3:4 or 21:9.
Is audio extra?
No. generate_audio is on by default and adds no extra cost; turn it off for silent clips.
How is it billed on 01router?
Per output second at the chosen resolution, so a 10-second clip costs twice a 5-second one. Use 480p for prompt iteration and 1080p for finals. Failed generations are refunded.
Related models
Other models you can call with the same API key.
Seedance 2.0
Multi-shot Seedance generation with synchronized audio and first/last-frame control, 4–15 s.
Seedance 2.0 Mini
Faster, lower-cost Seedance 2.0 for drafts and high-volume generation (480p/720p).
Grok Imagine Video 1.5
Grok Imagine Video 1.5: 1–15 second videos with synchronized audio, at 480p, 720p or 1080p. Image-to-video follows the source image aspect ratio.
Grok Imagine Video 1.5 Lite
Grok Imagine Video 1.5 Lite: 1–15 second videos with synchronized audio, at 480p, 720p or 1080p. Image-to-video follows the source image aspect ratio.
MiniMax H3 Max
MiniMax H3 post-trained by fal for speed: 5–15 s clips with first/last frame, ranked #1 on video arenas.
MiniMax H3
MiniMax Hailuo H3 with native 768p and 2K output, 4–15 s, first/last frame.