Seedance 2.5 API

Generate video up to 30 seconds long with optional synchronised audio. Supports longer scenes in a single generation.

Seedance 2.5 modes

ByteDance · seedance-2.5-text-to-video

Text to video

Generate video up to 30 seconds long with optional synchronised audio. Supports longer scenes in a single generation.

Put a prompt and "model": "seedance-2.5-text-to-video" on a video clip, and the render generates it and edits it into the video. To generate it on its own, send the same asset to the generate endpoint.

Built forLonger scenes · Single-take product films · Ads that need room to breathe

Seedance 2.5 “Soft daylight drifts across a folded mustard wool throw on a chalk-white backdrop”
Technical specifications
InputText prompt
OutputVideo
Length4 to 30 seconds
Resolution480p, 720p, 1080p
Aspect ratiosauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
AudioOptional
{
  "asset": {
    "type": "video",
    "prompt": "Soft daylight drifts across a folded mustard wool throw on a chalk-white backdrop",
    "model": "seedance-2.5-text-to-video",
    "options": {
      "aspectRatio": "4:3",
      "resolution": "720p",
      "generateAudio": false
    }
  },
  "length": 4
}
Example request to the generate endpoint.

Options

OptionValuesDefault
aspectRatioauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16auto
resolution480p, 720p, 1080p720p
generateAudioboolean

ByteDance · seedance-2.5-image-to-video

Image to video

Animate a still image into video up to 30 seconds long, with optional synchronised audio and an ending image to guide the final frame.

Put a prompt and "model": "seedance-2.5-image-to-video" on a video clip, and the render generates it and edits it into the video. To generate it on its own, send the same asset to the generate endpoint.

Built forLonger animations of a still · Product reveals · Animated listings

The image the example starts from
Start image
Seedance 2.5 “The camera pushes in slowly on the sneakers as the light shifts”
Technical specifications
InputText prompt and a start image, with an optional end image
OutputVideo
Length4 to 30 seconds
Resolution480p, 720p, 1080p
Aspect ratiosauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
AudioOptional
{
  "asset": {
    "type": "video",
    "prompt": "The camera pushes in slowly on the sneakers as the light shifts",
    "model": "seedance-2.5-image-to-video",
    "options": {
      "startSrc": "https://cdn.shotstack.io/au/v1/generations/35tqpmb0ya/fc6813ec-8ac6-5f87-9f80-c13e5f299bf4.png",
      "aspectRatio": "4:3",
      "resolution": "720p",
      "generateAudio": false
    }
  },
  "length": 4
}
Example request to the generate endpoint.

Options

OptionValuesDefault
startSrc (required)string
endSrcstring
aspectRatioauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16auto
resolution480p, 720p, 1080p720p
generateAudioboolean

Pricing

Generation is paid in credits from the same balance as rendering, at what the model's provider charges plus a small margin. See AI generation pricing.

ModeCharged perPrice changes withLength a quote assumes without one
Text to videoSecond of video, 4 to 30Resolution: 480p, 720p (default), 1080p15 seconds
Image to videoSecond of video, 4 to 30Resolution: 480p, 720p (default), 1080p15 seconds

Get a quote

POST /generate/quote takes the same body as the generate endpoint and returns what that generation would cost. Nothing is generated, reserved or charged.

curl -X POST \
     -H "Content-Type: application/json" \
     -H "x-api-key: $SHOTSTACK_API_KEY" \
     -d '{
       "asset": {
         "type": "video",
         "prompt": "Soft daylight drifts across a folded mustard wool throw on a chalk-white backdrop",
         "model": "seedance-2.5-text-to-video",
         "options": {
           "aspectRatio": "4:3",
           "resolution": "720p",
           "generateAudio": false
         }
       },
       "length": 4
     }' \
     https://api.shotstack.io/edit/stage/generate/quote

The response gives credits, the price of that request, and ceiling, which is true when the request has no length for a model charged by length, so the price is an estimate. Prices follow the providers, so ask again rather than storing one.

How it compares

Seedance 2.5 beside the other models in Shotstack that make the same thing.

ModelBest forModesLengthMax resolutionAspect ratiosAudioEnd imageSeed
Seedance 2.5Longer scenes, up to 30 seconds in one clipText to video, Image to video4–30 s1080p6OptionalYes—
Seedance 2.0Cinematic motion and prompt-directed camera movesText to video, Image to video4–15 s1080p6OptionalYes—
Wan 3.0 Prime1080p clips, with audio and prompt enhancement on by defaultText to video, Image to video2–30 s1080p5On by defaultYesYes
Gemini Omni Flash 1.1Short clips up to 4K, with native audioText to video, Image to video3–10 s4K2NativeYes—

Questions

Do I need an account with the model provider?
No. Generation runs on your Shotstack API key and is paid in credits from the same balance as rendering, so there is no separate account to open and nothing extra to integrate.
Do I pay again for the same asset?
No. Every generated file is stored against your account. An asset with the same type, model, prompt, options and length as one generated before reuses the stored file at no charge.
What happens if a generation fails?
A failed generation isn't charged. If a render fails after some of its assets were generated, those assets are kept, and rendering again reuses them at no charge.
Can I generate an asset without rendering a video?
Yes. POST the asset to the generate endpoint and you get back a URL to the file, to check it before you render, to reuse it across many edits, or to use it outside Shotstack.

Start free

  • 10 free credits to start
  • No credit card required