Studio

SUPERSEEDANCE

API documentation

Create persistent jobs, follow their status and download your results.

Accounts & library

Server-backed accounts and private files

Video generation

Checking…

Video analysis

Checking…

Payments

Checking…

Email

Checking…

Authentication

Create an account and verify your email. Create an API key in Account. Browser requests use the HttpOnly session cookie; server requests use Bearer authentication. Never put API keys in frontend code.

Open account settings →

POST /api/quote

Send model, duration, resolution, aspectRatio, mode, nativeAudio and draft. The response contains credits, confirmed (studio price) and generationAvailable (current service availability). This is the studio credit price, not the upstream provider bill.

Seedance 2.5 supports 4–30 seconds, 480p/720p/1080p and audio on/off. Drafts require 480p. First-frame image mode follows the image ratio; text and single-image reference modes also offer 21:9 and automatic aspect. Five seconds at 16:9 costs 83 / 187 / 462 credits for 480p / 720p / 1080p. Automatic aspect uses a fixed quote based on the largest listed canvas in that resolution tier.

{
  "model": "seedance-2.5",
  "duration": 4,
  "resolution": "480p",
  "aspectRatio": "16:9",
  "nativeAudio": false,
  "draft": false,
  "mode": "text"
}

POST /api/generate

A verified account, available provider and sufficient credits are required. Reuse the same idempotencyKey only when retrying the exact same request. Returns HTTP 202 with {job}; never a sample clip. For image and reference modes, upload a file to POST /api/assets first and send its assetId.

curl https://superseedance.si/api/generate \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $STUDIO_API_KEY" \
  -d '{"model":"seedance-2.5","duration":4,"resolution":"480p","aspectRatio":"16:9","nativeAudio":false,"draft":false,"mode":"text","locale":"en","prompt":"A cup on a stone table, slow camera push-in, soft morning light.","idempotencyKey":"replace-with-a-new-uuid"}'

POST /api/analyze

Send six JPEG frame data URLs with locale and a unique idempotencyKey. Each frame must be at most 1 MB and 1280 × 720 pixels. The verified account is charged the configured analysis credits; clear failures are refunded. Only sampled frames are analyzed, not audio or the full video.

Use GET /api/analyze?id=ID or ?idempotencyKey=KEY to recover results after a connection failure. Do not automatically repeat an uncertain submission.

Track, cancel and download

Poll GET /api/jobs/{id} every 5–10 seconds. Status progresses through queued → submitting → running → saving → succeeded. Failed or cancelled jobs return reserved credits once. Only queued jobs can be cancelled using POST /api/jobs/{id}/cancel.

Download your saved result from GET /api/jobs/{id}/video?download=1. Files require owner authentication and support Range requests. An attention status means the provider outcome needs reconciliation; do not submit the same work again until it is resolved.

Errors and limits

400 · Invalid input 401 · Sign in required 402 · Insufficient credits 403 · Verification or origin check failed 409 · State or idempotency conflict 429 · Rate limited 503 · Service is not configured

Up to three active jobs per account. Images: JPG/PNG/WebP, ≤10 MB, 300–6000 px per side and aspect ratio 0.4–2.5. Up to 100 assets / 100 MB per account.

Machine-readable API reference →