Seedance 2.5 API key: get one and send a first request

Create a Sume API key, POST to /v1/videos with model seedance-2.5, poll the job and download the file. One curl request, the auth rules and the fields to set.

4 min readSume
All posts

To call Seedance 2.5 you need an API key and one request. Create the key at https://www.sume.com/dashboard/api-keys, then POST model: "seedance-2.5" to https://api.sume.com/v1/videos and poll the job until it completes.

BytePlus documents its own Seedance 2.5 key and endpoint in the ModelArk tutorial; this page covers the Sume route.

How do I send the first request?

Send exactly one auth header, either Authorization: Bearer $SUME_API_KEY or x-api-key. Always set duration, resolution and aspect_ratio so the job and its price are explicit.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: seedance-25-first-001" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A paper boat drifts down a rain-soaked street at dusk",
    "duration": 8,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

How do I get the finished file?

The response is an async job. Poll GET /v1/videos/{id} about every 30 seconds; the docs say generation takes 30 seconds to several minutes. When the status is completed, download unsigned_urls[0].

Which errors should I expect first?

These are the 400s the docs and API code define for this route, read 2026-09-29.

First-request errors on POST /v1/videos, read 2026-09-29.
CauseResponse
Sent seed, size or a non-empty provider.options400 unsupported_parameter
Aspect ratio not in the model's list, such as 3:2400 unsupported_capability
last_frame without a first_frame400 validation error
Both auth headers on one requestRejected; send exactly one

Sources

Related posts

More in Developers

All Developers posts

Written by Sume