Seedance 2.5 API

Quickstart

Your first quote, generation and download.

1. Set credentials

Create a new key in account settings. Save it in a server secret manager; it is shown only once.

export SEEDANCE_BASE_URL="https://seedance2-5.com/api/v1"
export SEEDANCE_API_KEY="YOUR_API_KEY"

2. Prepare and quote a request

cat > video.json <<'JSON'
{
  "model": "seedance-2.5-lite",
  "mode": "text-to-video",
  "prompt": "A cat walking through a sunny garden, cinematic camera movement",
  "parameters": {
    "duration_seconds": 8,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  },
  "max_cost_credits": 80
}
JSON
curl --fail-with-body "$SEEDANCE_BASE_URL/quotes" \
  -H "Authorization: Bearer $SEEDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @video.json

The quote returns cost_credits and does not generate or charge. This 8-second Seedance 2.5 Lite request currently costs 80 credits. max_cost_credits rejects a higher price before generation.

3. Create a generation

curl --fail-with-body "$SEEDANCE_BASE_URL/videos" \
  -H "Authorization: Bearer $SEEDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: video-order-0001" \
  --data-binary @video.json

Use a distinct idempotency key for each intended generation. After a timeout, retry with the same API key, idempotency key and body. Save the id from the 202 response.

{
  "id": "api_0000000000000000000000000000000000000000000000000000000000000000",
  "model": "seedance-2.5-lite",
  "status": "processing",
  "created_at": "2026-10-03T12:00:00.000Z",
  "credits": {
    "cost": 80
  },
  "outputs": [],
  "error": null
}

4. Poll and download

curl --fail-with-body "$SEEDANCE_BASE_URL/generations/GENERATION_ID" \
  -H "Authorization: Bearer $SEEDANCE_API_KEY"

Replace GENERATION_ID with the returned id. Wait at least 10 seconds between polls of an active task. When status is success, download outputs[].url before expires_at. Links last at most 15 minutes; media is retained for 14 days.

For images, use POST /images with an image model and text-to-image. For reference images, follow Image inputs.