Seedance 2.5 API

  • From $0.062/s with video input, or $0.099/s without, about 50% below fal and Higgsfield
  • Real-person references accepted, no approval or verification
  • Clips up to 30 seconds at up to 1080p, with up to 50 reference assets

Seedance 2.5 at a Glance

Seedance 2.5 is ByteDance's newest Seedance model, and the most capable one you can call here: six modes, clips of up to 30 seconds and up to 50 reference assets in one request. It can edit and extend footage you already have, and Draft Mode lets you test an idea at 480p before you pay for 1080p.

Model IDseedance-2.5
Clip length4–30 seconds
Resolutions480p · 720p · 1080p
Aspect ratios21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16
ModesText to Video, Omni Reference, First & Last Frames, Video Edit, Video Extension, Draft Mode
Reference assetsUp to 30 images, 10 videos and 10 audio clips, 50 in total
SoundNative audio, on by default. Set generate_audio to false for a silent clip.
Videos per requestOne

Seedance 2.5 API Pricing

Official prices. Top up from $5. No time limit.

Seedance 2.5 API Pricing
ResolutionOnlySeedanceReal people acceptedfalHiggsfieldYou Save
480p $0.062 /s $0.123 /s$0.123 /s 50%
720p $0.138 /s $0.277 /s$0.277 /s 50%
1080p $0.340 /s $0.682 /s$0.682 /s 50%
480p $0.099 /s $0.206 /s$0.206 /s 52%
720p $0.231 /s $0.462 /s$0.462 /s 50%
1080p $0.569 /s $1.137 /s$1.137 /s 50%
  • Competitors are shown at their public list prices, before temporary or negotiated discounts, as of October 2026.

Price by Mode

4–30 second clips. Prices in USD per second.

Mode480p720p1080pBilled Seconds
Text to Video$0.099 /s$0.231 /s$0.569 /sOutput
Omni Reference, images or audio$0.099 /s$0.231 /s$0.569 /sOutput
Omni Reference, with video$0.062 /s$0.138 /s$0.340 /sInput video + output
First & Last Frames$0.099 /s$0.231 /s$0.569 /sOutput
Video Edit$0.062 /s$0.138 /s$0.340 /sInput video + output, which matches the input's length
Video Extension$0.062 /s$0.138 /s$0.340 /sInput video + new segment
Draft Mode: 480p draft$0.099 /s––Output
Draft Mode: 1080p final––$0.569 /sOutput
Draft Mode: 1080p final, draft with video––$0.340 /sInput video + output

What a Clip Costs

Billed seconds times the price per second.

ExampleBilled SecondsPrice per SecondTotal
Test clip: 4 seconds at 480p4$0.099 /s$0.396
10 seconds at 720p10$0.231 /s$2.310
Long take: 30 seconds at 1080p30$0.569 /s$17.070
5 seconds at 720p with a 5-second reference video10$0.138 /s$1.380
Edit a 10-second clip at 720p20$0.138 /s$2.760

Seedance 2.5 Modes

Every mode uses the same endpoint.

Text to Video

Describe the subject, the action, the camera and the mood. Only prompt is required: a request that sets nothing else renders 5 seconds at 720p in 16:9.

POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "prompt": "A slow aerial shot over a foggy pine forest at sunrise",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "16:9"
}

Omni Reference

Send images, videos and audio for the model to follow: a subject's look, a motion, a beat. Name them in the prompt as @Image 1, @Video 1 or @Audio 1.

One request takes up to 30 images, 10 videos and 10 audio clips, 50 in total, and audio can be the only reference. Reference videos bill their seconds along with the output's, at the with-video price; images and audio are free.

Photos and videos of real people work as references, with no manual approval or extra verification. You need the consent of everyone shown: see the Acceptable Use Policy.

POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "prompt": "The woman in @Image 1 dances to the beat of @Audio 1, moving like the dancer in @Video 1",
  "duration": 10,
  "resolution": "720p",
  "reference_images": [{"url": "https://example.com/woman.png"}],
  "reference_videos": [{"url": "https://example.com/dance.mp4"}],
  "reference_audios": [{"url": "https://example.com/beat.mp3"}]
}

First & Last Frames

start_image makes the video open on your image. Add end_image and the model fills in the motion between the two.

Set aspect_ratio to adaptive: the video takes the ratio of the first frame. Frames can't be combined with reference assets in the same request.

POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "prompt": "Day turns into night over the same skyline as the lights come on",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "start_image": {"url": "https://example.com/day.png"},
  "end_image": {"url": "https://example.com/night.png"}
}

Video Edit

Rewrite footage you already have: change the subject, the scene or the style and keep the motion. The first entry of reference_videos is the clip to edit, 4 to 30 seconds long.

The result keeps the clip's length and aspect ratio, so leave out duration and aspect_ratio; you choose the resolution. The clip's seconds bill along with the output's, at the with-video price: editing a 5-second clip bills 10 seconds.

POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "omni_reference_task_type": "edit",
  "prompt": "Make the colors warmer and keep everything else",
  "resolution": "720p",
  "reference_videos": [{"url": "https://example.com/street.mp4"}]
}

Video Extension

Continue a clip forward or backward: say which way in the prompt, and what happens next. The first entry of reference_videos is the clip to continue.

duration sets the length of the new footage, 4 to 30 seconds, and the result is the new footage only, in the clip's aspect ratio. The clip's seconds bill along with the new footage, at the with-video price: extending a 5-second clip by 10 seconds bills 15 seconds.

POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "omni_reference_task_type": "extend",
  "prompt": "Continue forward: the camera keeps climbing until the whole valley is in view",
  "duration": 5,
  "resolution": "720p",
  "reference_videos": [{"url": "https://example.com/valley.mp4"}]
}

Draft Mode

Try an idea before you pay for the final. Add draft: true to a text, frame or reference request to render a 480p draft.

When a draft looks right, send its request_id in draft_task within 7 days, with the same API key and only model beside it. The final keeps the draft's prompt, inputs, length, sound and aspect ratio, and renders at 1080p.

The draft and the final are billed separately, each for the draft's length: the draft at the 480p price and the final at the 1080p price.

1. Render a draft · POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "prompt": "A slow aerial shot over a foggy pine forest at sunrise",
  "duration": 5,
  "draft": true
}
2. Render the final · POST /v1/videos/generations
{
  "model": "seedance-2.5",
  "draft_task": {"id": "e9a36267-5a81-46ee-87a1-baf62bec7e9a"}
}

Quick Start

Create an API key in the console and export it as ONLYSEEDANCE_API_KEY. These three calls submit a task, check it and save the video.

cURL · submit a task
curl https://api.onlyseedance.com/v1/videos/generations \
  -H "Authorization: Bearer $ONLYSEEDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A slow aerial shot over a foggy pine forest at sunrise"
  }'
cURL · check the task
curl https://api.onlyseedance.com/v1/videos/$REQUEST_ID \
  -H "Authorization: Bearer $ONLYSEEDANCE_API_KEY"
cURL · download the video
curl -L https://api.onlyseedance.com/v1/videos/$REQUEST_ID/content \
  -H "Authorization: Bearer $ONLYSEEDANCE_API_KEY" \
  -o output.mp4
Python
import os
import time
import requests

BASE = "https://api.onlyseedance.com"
headers = {"Authorization": f"Bearer {os.environ['ONLYSEEDANCE_API_KEY']}"}

job = requests.post(
    f"{BASE}/v1/videos/generations",
    headers=headers,
    json={"model": "seedance-2.5", "prompt": "A slow aerial shot over a foggy pine forest at sunrise"},
    timeout=60,
)
job.raise_for_status()
request_id = job.json()["request_id"]

while True:
    task = requests.get(f"{BASE}/v1/videos/{request_id}", headers=headers, timeout=60).json()
    if task["status"] != "pending":
        break
    time.sleep(10)

if task["status"] == "done":
    video = requests.get(f"{BASE}/v1/videos/{request_id}/content", headers=headers, timeout=600)
    video.raise_for_status()
    with open("output.mp4", "wb") as f:
        f.write(video.content)
else:
    print(task.get("error"))

Fields, task status, billing and errors are in the API documentation.

Compare Seedance Models

ModelWith Video InputWithout Video InputClip LengthTop ResolutionBest For
Seedance 2.5From $0.062 /sFrom $0.099 /s4–30 seconds1080pLong takes, real-person references, and editing or extending footage
Seedance 2.0From $0.043 /sFrom $0.070 /s4–15 seconds4KThe highest quality in the 2.0 series, and 4K
Seedance 2.0 FastFrom $0.033 /sFrom $0.056 /s4–15 seconds720pA balance of speed and cost
Seedance 2.0 MiniFrom $0.021 /sFrom $0.035 /s4–15 seconds720pThe lowest price, for drafts and batches

Seedance 2.5 FAQ

How much does the Seedance 2.5 API cost?

Seedance 2.5 costs $0.099 per second at 480p, $0.231 at 720p and $0.569 at 1080p, about 50% below fal and Higgsfield. With video input it costs $0.062, $0.138 and $0.340, counted on input plus output seconds.

Can Seedance 2.5 use reference images of real people?

Yes. Photos and videos of real people work as references, with no manual approval or extra verification. Use them only with the consent of the people shown, and never use public figures without their written permission. See the Acceptable Use Policy.

Is this the official Seedance 2.5 model?

Yes. Every video is generated by ByteDance's official Seedance 2.5 model through the official Seedance API. We never swap in another model or alter the output. OnlySeedance is an independent provider, not affiliated with or endorsed by ByteDance.

How long can a Seedance 2.5 video be?

From 4 to 30 seconds, in whole seconds, at 480p, 720p or 1080p. Each request renders one video.

How long does Seedance 2.5 take to render a video?

Usually 2 to 5 minutes for a clip of 4 to 10 seconds. A busy queue can take longer, so check the task's status instead of assuming a deadline.

Does Seedance 2.5 support 4K?

No, it stops at 1080p. For 4K, use Seedance 2.0.

What is Seedance 2.5 Draft Mode?

A cheaper way to try ideas. You render a 480p draft, then turn the one you like into a 1080p final within 7 days, with the same prompt, inputs and length. The draft and the final are billed separately.

Should I use Seedance 2.5 or Seedance 2.0?

Use Seedance 2.5 for clips longer than 15 seconds, more than 15 reference assets, Video Edit, Video Extension or Draft Mode. Use Seedance 2.0 for 4K, or when a lower price per second matters more.

Do I pay for failed jobs?

No. Failed jobs and jobs refused by content review are never charged.

Contact Us