Seedance 2.5 API

Long-form video model for coherent clips up to 30 seconds, with up to 50 reference images, videos, and audio clips, native audio, editing, and extension.

ByteDanceVideo GenerationReleased Aug 7, 2026MalaysiaProprietary EndpointNew

About Seedance 2.5

Long-form video model for coherent clips up to 30 seconds, with up to 50 reference images, videos, and audio clips, native audio, editing, and extension.

Also known as ByteDance Seedance 2.5

text to videoimage to videoreference to videovideo editingmultimodalaudio synccamera controlcharacter consistency

Seedance 2.5 specs

Model ID
seedance-2-5
Provider
ByteDance
Category
Video Generation
Released
Aug 7, 2026
Input
TextImageVideoAudio
Output
Video
Region
Malaysia
Endpoints
POST/v1/videos/generations
Alternate model IDs
bytedance/seedance-2.5seedance-2.5

Seedance 2.5 API pricing

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
T2V/I2V 480P
per second
$0.206
T2V/I2V 720P
per second
$0.462
Video Input 480P
per second of input plus output
$0.123
Video Input 720P
per second of input plus output
$0.276
Compare on the full pricing page

How to call the Seedance 2.5 API

Seedance 2.5 runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.

cURL: submit the job
curl https://api.empiriolabs.ai/v1/videos/generations \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5",
    "prompt": "Describe what you want Seedance 2.5 to generate."
  }'
cURL: poll for the result
curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"
Python
import requests

response = requests.post(
    "https://api.empiriolabs.ai/v1/videos/generations",
    headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    json={
        "model": "seedance-2-5",
        "prompt": "Describe what you want Seedance 2.5 to generate.",
    },
)
job = response.json()

# Generation runs as an async job. Poll until it completes.
import time
while True:
    status = requests.get(
        f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
        headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    ).json()
    if status.get("status") in ("completed", "failed"):
        print(status)
        break
    time.sleep(5)
Full Seedance 2.5 API reference

Seedance 2.5 API parameters

Request parameters supported by the Seedance 2.5 API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
promptstring--Scene description. Address a specific attachment inline as @Image1, @Video1, or @Audio1 to say which reference a shot should follow.
modeenumautoauto, t2v, i2v_first, i2v_both, referenceSelects how your inputs are used. auto detects it from what you attach. t2v is text to video. i2v_first animates a first frame. i2v_both animates between a first and...
resolutionenum720p480p, 720pVideo generation resolution. Options are model-specific and sourced from the catalog.
aspect_ratioenumadaptiveadaptive, 16:9, 9:16, 1:1, 4:3, 3:4, 21:9Output aspect ratio. adaptive lets the model choose. When you supply a first frame, the output follows that image's aspect ratio, so aspect_ratio must stay adaptive....
custom_durationbooleantrue-If false, the model decides clip length.
durationnumber54 to 30Clip length in seconds. Only used when custom_duration=true. Video editing always keeps the source clip length.
generate_audiobooleantrue-Generate native audio with the video.
output_formatenummp4mp4, movmp4 plays everywhere. mov carries higher color precision for color grading, keying, and compositing, and some players cannot open it.
return_last_framebooleanfalse-Also return the final frame as a PNG, ready to use as the first frame of the next clip.
imagestring--Reference / first-frame image URL.
image_endstring--End-frame image URL for i2v_both.
videostring--Reference video URL for reference / edit / extend.
negative_promptstring--What to avoid.

Good to know

Next-generation Seedance built for long-form storytelling: one request can produce a coherent clip of up to 30 seconds, draw on up to 50 reference assets, and edit or extend existing footage.

Modes

  • Text to video, first frame, or first and last frame.
  • Multimodal reference to video from up to 30 images, 10 videos, and 10 audio clips. Audio-only input works on its own.
  • To edit an attached clip or continue it, describe that in your prompt. The model reads the intent from your wording.

Output

  • 480p and 720p at 24fps, 4 to 30 seconds, with native synchronized audio.
  • MP4 by default. MOV carries higher color precision for grading and compositing, and some players cannot open it.
  • When you supply a first frame, the output follows that image's aspect ratio, so aspect_ratio stays adaptive. Reference jobs, including ones with a reference video, accept any ratio.

Input limits

  • Images: jpeg, png, webp, bmp, tiff, gif, heic, or heif, 300 to 6000 px per side, under 30 MB each.
  • Videos: MP4 or MOV, 2 to 30 seconds each and 30 seconds in total, under 200 MB each.
  • Audio: WAV or MP3, 2 to 30 seconds each and 30 seconds in total, under 15 MB each.
  • Reference uploads that contain real human faces are rejected by the model.

Billing

  • Without a reference video, you are billed per second of generated video at the rate for the output resolution.
  • With a reference video, the model prices the reference clip's seconds alongside the generated seconds, at the lower video-input rate. Billed seconds are therefore reference duration plus output duration, so a request that includes a reference video costs more in total than the same output generated from text alone.
  • Worked example at 480p: a 4 second clip from a text prompt bills 4 seconds. A 4 second clip generated from a 5 second reference video bills 9 seconds at the video-input rate.

Uploaded media preprocessing

  • Video inputs are capped to 30 seconds.
  • Uploaded video inputs are normalized to provider-compatible MP4 when needed. Set preprocess_video to false to send a clip through untouched.

Seedance 2.5 API: common questions

How much does the Seedance 2.5 API cost?

On EmpirioLabs, Seedance 2.5 is billed pay as you go: T2V/I2V 480P $0.206 per second; T2V/I2V 720P $0.462 per second; Video Input 480P $0.123 per second of input plus output. The live rate card on this page always matches what the API charges.

Which endpoint does Seedance 2.5 use?

Seedance 2.5 is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.

Can I try Seedance 2.5 in the browser before integrating?

Yes. The EmpirioLabs playground runs Seedance 2.5 in the browser with the same parameters the API exposes, so you can test prompts before writing code.

How do I get a Seedance 2.5 API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.