Seedance 2.5

ByteDanceVideo

ByteDance Seedance 2.5: the senior tier of the line - strong scene consistency and audio, up to 1080p.

Our price
$0.39
per second
Official
$0.47
17% vs official

First request

# Video is asynchronous: create, then poll.
curl https://api.altrouter.ai/v1/videos \
  -H "Authorization: Bearer ar-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "a drone shot over a coastline"
  }'
# → { "id": "vid_...", "status": "queued" }

curl https://api.altrouter.ai/v1/videos/vid_... \
  -H "Authorization: Bearer ar-..."
# → { "status": "completed", "url": "https://api.altrouter.ai/media/videos/..." }
API

An asynchronous endpoint: the call returns immediately in queued, and you poll GET /v1/videos/{id} for the result. The finished mp4 is re-hosted on our CDN, and only a completed render is charged.

POST/v1/videos
Body parameters
modelstringrequired"seedance-2.5"
The model id.
promptstringrequired
The text description of the scene.
secondsinteger
Clip length; `duration` is accepted as an alias.
imagestringURL or base64
A reference frame - its presence routes to the model’s image-to-video variant.
durationnumber4–15default 5
Clip length in seconds (affects price).
resolutionenum480p · 720p · 1080pdefault 720p
Resolution tier (affects price).
aspect_ratioenum1:1 · 4:3 · 3:4 · 16:9 · 9:16 · 21:9 · adaptivedefault 16:9
Output aspect ratio.
generate_audiobooleandefault true
Generate an audio track.
Response

The same object comes back from GET /v1/videos/{id}; the finished file is also served directly from GET /v1/videos/{id}/content.

idstring
The render id (vid_…) - this is what you poll.
statusenumqueued · in_progress · completed · failed
The state of the render.
urlstring
The finished mp4 on our CDN - appears at status: completed.
secondsinteger
The clip length the price was computed on.
errorobject
Why it failed at status: failed: { code, message }.
Example
cURLPythonJSON
curl https://api.altrouter.ai/v1/videos \
  -H "Authorization: Bearer ar-..." \
  -H "Content-Type: application/json" \
  -d '{
  "model": "seedance-2.5",
  "prompt": "a drone shot over a rocky coastline at sunrise",
  "resolution": "720p",
  "aspect_ratio": "16:9"
}'
Errors
400Invalid request.
401Missing or invalid API key.
402Insufficient credits, or the key’s spending cap is exhausted.
404Model not found.
429Rate limit exceeded.

More from ByteDance