Seedance 2.5 API
Seedance 2.5 is ByteDance's flagship video route on OmniaKey: the provider ID dreamina-seedance-2-5-260628 serves text to video, a first frame and reference images, and every clip comes back with an AI-generated soundtrack.
- Model ID
- dreamina-seedance-2-5-260628
- Provider
- ByteDance
- Modality
- AI Video
- Per second of output
- $0.103–$0.569
- Last verified
- 2026-09-15
01
Where it fits
Choose Seedance 2.5 when a shot needs the strongest motion and material fidelity in the family, at $0.103 to $0.569 per second across 480P to 1080P; it is also the slowest tier here, since a 4-second 480P clip took about four minutes in our record.
02
What it does
Text to video
dreamina-seedance-2-5-260628
Generate a short video clip from a text prompt.
Image to video
dreamina-seedance-2-5-260628
Animate a still image into a short video clip.
Reference video
dreamina-seedance-2-5-260628
Use reference footage to guide a generated clip.
03
Call it
Media models run asynchronously. Create a task, poll it until it finishes, then download the signed asset URL.
# 1. Create the job. 202 Accepted; the body carries the task id,
# the pre-charged price, and a poll_url. Reuse one Idempotency-Key
# across retries so a timeout never starts a second paid job.
curl --fail-with-body https://api.omniakey.com/v1/media/tasks \
-H "Authorization: Bearer $OMNIAKEY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: dreamina-seedance-2-5-260628-001" \
-d '{
"model": "dreamina-seedance-2-5-260628",
"type": "video",
"operation": "text_to_video",
"input": {"prompt": "a paper boat on a quiet lake at sunset"},
"parameters": {"duration": 6, "resolution": "720p"}
}'
# 2. The same model id and the same poll loop serve the other operations:
# image_to_video media[] type "first_frame"
# reference_to_video media[] type "reference_image"
# Reference media travel alongside the prompt:
# {"prompt": "...", "media": [{"type": "first_frame", "url": "https://example.com/first-frame.png"}]}
# A public HTTPS URL or a base64 data URI both work.
# 3. Poll GET /v1/media/tasks/{id} until status is
# succeeded | failed | canceled. Progress carries percent and stage.
curl --fail-with-body https://api.omniakey.com/v1/media/tasks/TASK_ID \
-H "Authorization: Bearer $OMNIAKEY_API_KEY"
# 4. Download assets[0].url before expires_at, or poll again for a
# fresh signed URL. Failed and canceled jobs are refunded.
curl -sS -o out.mp4 "$(jq -r '.assets[0].url' result.json)"04
Pricing
Video jobs are billed per second of rendered output, not per token. Failed or canceled jobs are refunded automatically.
$0.103–$0.569per second
- 480P
- $0.103per second
- 720P
- $0.231per second
- 1080P
- $0.569per second
More models from ByteDance
Frequently asked questions
How do I call Seedance 2.5 on OmniaKey?
POST to /v1/media/tasks with the model id, type "video", and operation "text_to_video" — or "image_to_video" with a first frame in input.media[] with type "first_frame". Reuse one Idempotency-Key across retries so a timeout never starts a second paid job.
What does Seedance 2.5 cost?
Seedance 2.5 bills $0.103–$0.569 per second of rendered video. Creation pre-charges the requested duration up front from your prepaid balance, and failed or canceled jobs are refunded automatically.
Why does the API return a task id instead of the video?
Video renders take from about a minute to several minutes, so OmniaKey runs every video route through one asynchronous lifecycle. Poll GET /v1/media/tasks/{id} until the status is succeeded, then read the signed asset URL.
