ByteDance
Seedance 2.5
seedance-2.5/text-to-video
ByteDance Seed's joint audio-video generation model, supporting continuous clips up to 30 seconds and up to 4K, with precise visual control via multimodal references and timestamp-level editing
Try seedance-2.5/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
seedance-2.5/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 720P | $0.204 |
| 1080P | $0.516 |
Positioning Overview
Seedance 2.5 is a joint audio-video generation model launched by ByteDance's Seed team. This endpoint handles pure text-to-video generation: developers write a prompt and receive a finished video with synchronized voice, sound effects, and ambient audio. It supports durations from 4 to 30 seconds, 720p and 1080p resolutions, seven aspect ratios, and mp4/mov output, and can optionally enable web search to supplement time-sensitive information in the prompt. It is suited to development teams that need to rapidly produce ads with sound, storyboard previsualizations, and short social media videos, and integrate them at scale through the unified HiAPI.ai interface.
Core Highlights
- Text generation with synchronized audio — Audio generation is enabled by default; visuals, voice, sound effects, and background audio are produced in one pass, eliminating post-production dubbing and audio alignment.
- Duration and aspect ratio specified per shot — Integer durations from 4 to 30 seconds can be freely set, with seven aspect ratios from 16:9 to 21:9, and adaptive letting the prompt decide.
- Prompt-triggered web search — With web_search enabled, the model can retrieve time-sensitive information referenced in the prompt for content requiring recent facts.
- Output formats suited to post-production workflows — mp4 by default for direct distribution, mov for professional editing and post-production.
Capabilities
One-pass audio-video generation: A single generation produces both visuals and synchronized audio, including dialogue, sound effects, and background sound; the output is a ready-to-use video file, reducing post-production compositing costs.
Controllable duration and resolution: Billed by duration, you can specify integer durations from 4 to 30 seconds and 720p or 1080p resolution, making it easy to control final video specifications per channel requirements.
Multi-aspect-ratio adaptation: Offers 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, and adaptive aspect ratios, so the same prompt can cover landscape, portrait, and square placements.
Multilingual prompts: Supports prompts written in Chinese, English, Japanese, Korean, Spanish, Portuguese, Indonesian, Malay, Thai, Arabic, and Vietnamese.
Retrieval augmentation and packaging options: Can enable web search to introduce time-sensitive information, and choose whether to attach an AI-generated watermark and output mp4 or mov.
Use Cases
- Advertising and brand teams: one-sentence selling point descriptions — Generate 10-to-30-second product clips with voiceover and music, ready for feed advertising or social media teasers.
- Short-video creators: vertical narrative scripts — Use the 9:16 aspect ratio to generate complete narrative segments, producing footage ready to upload.
- Film pre-production teams: storyboard text descriptions — Turn storyboard text into dynamic previsualizations with sound, used to confirm shot pacing and duration before filming.
- Platform developers: batch template-based video production — Use the unified interface to batch-generate versions with different aspect ratios and durations from the same prompt template, integrating into their own content production pipelines.
Limitations and Selection Advice
This endpoint is pure text-to-video and does not accept image or reference material inputs. When you need to lock a character, product appearance, or make timestamp-level modifications, use the reference-generation or image-to-video endpoints in the same family instead. A single clip is limited to 30 seconds with no continuation parameter, so longer narratives require generating shots separately and stitching them together. Physical plausibility of complex actions and stability of multi-subject interactions may still be insufficient. For lightweight, short-duration needs, simpler models can also be considered to control costs.
Frequently asked questions
View all FAQs →-
Does Seedance 2.5 image-to-video require both a first and last frame?
No. In endpoint-frame mode, first_frame_url alone extends the source into a complete shot; add last_frame_url when the ending state must be controlled. A last frame cannot be used by itself. You can instead use reference_image_urls or reference_audio_urls as a separate reference mode without endpoint frames.
-
Can first/last frames be mixed with multimodal references in one request?
The current HiAPI Playground treats them as separate input modes: use first/last frames, or use reference_image_urls and reference_audio_urls. Keep one mode to avoid conflicting guidance. Use seedance-2.5/reference-to-video when a reference video must guide motion or camera movement.
-
Which durations and resolutions does Seedance 2.5 image-to-video support?
The current request contract accepts integer durations from 4 to 30 seconds at 720p or 1080p. aspect_ratio is adaptive and follows the first frame. The four cases on this page cover 720p at four and five seconds; 30 seconds is a supported contract value with no page example yet.
-
How is Seedance 2.5 image-to-video priced?
Billing scales with output duration and resolution, with separate per-second tiers for 720p and 1080p. Check the live model price and task record for the final charge.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: seedance-2.5/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for seedance-2.5/text-to-video and route default — see the parameter table below.
promptstringRequiredminLength 1Text prompt describing the desired video content; supports Chinese, English, Spanish, Indonesian, Portuguese, Japanese, Malay, Thai, Arabic, Vietnamese, or Korean. For best results, keep Chinese prompts under 500 characters and English prompts under 1000 words.
durationintegerOptionalDefault: 5min 4max 30Duration of the output video in seconds, an integer from 4 to 30, default 5 seconds; HiAPI bills based on the requested duration.
watermarkbooleanOptionalDefault: falseWhether to add an AI-generated watermark in the bottom-right corner of the video, default false.
resolutionstringOptionalDefault: "720p"Resolution of the output video; Seedance 2.5 supports 720p and 1080p, default 720p.
720p1080pweb_searchbooleanOptionalDefault: falseWhether to allow the model to search the web for the latest information mentioned in the prompt, default false.
aspect_ratiostringOptionalDefault: "adaptive"Aspect ratio of the output video, default adaptive, meaning the model automatically selects the ratio based on the prompt.
16:94:31:13:49:1621:9adaptiveoutput_formatstringOptionalDefault: "mp4"File format of the output video, default mp4 (compatibility first); mov is suitable for professional post-production.
mp4movgenerate_audiobooleanOptionalDefault: trueWhether to generate dialogue, sound effects, and background audio synchronized with the visuals, default true.
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"watermark": false,
"resolution": "720p",
"web_search": false,
"aspect_ratio": "adaptive",
"output_format": "mp4",
"generate_audio": true
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "seedance-2.5/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"watermark": false,
"resolution": "720p",
"web_search": false,
"aspect_ratio": "adaptive",
"output_format": "mp4",
"generate_audio": true
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "seedance-2.5/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"watermark": False,
"resolution": "720p",
"web_search": False,
"aspect_ratio": "adaptive",
"output_format": "mp4",
"generate_audio": True
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Hailuo 2.3 MiniMax $0.270 /video -
Wan 2.6 Flash Alibaba $0.043 /second -
Kling 4.0 Kuaishou $0.330 /second -
Runway Gen 4.5 Runway $0.172 /second -
Grok Imagine 1.5 Lite xAI $0.029 /second -
Ray 3.2 Luma $0.214 /video -
HappyHorse 1.1 Alibaba $0.160 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Seedance 2.5 ByteDance $0.121 /second -
Vidu Q4 Preview Vidu $0.051 /second -
Veo 3.1 Lite Google $0.060 /second -
Gemini Omni 1.1 Flash Google $0.450 /video