Seedance 2.0 API
/v1/tasks All models are called through the Unified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).
Model summary
| Model name | seedance-2-0 |
|---|---|
| Type | Video generation (text-to-video / reference-driven) |
| Endpoint | POST /v1/tasks |
| Pricing | See HiAPI Pricing |
Seedance 2.0 API supports text-to-video, first-frame / first-last-frame image-to-video, and multimodal reference video generation through one HiAPI API key.
Production guidance
- For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
- GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
- Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.
- All HiAPI task models use the same API key. Create the key in the dashboard and keep it on your server.
- Pricing depends on model, resolution, duration, and request volume. Use the HiAPI Pricing page as the live source of truth.
- For image and video generation, validate prompts with lower-cost settings before moving final requests to higher specs or longer durations.
Best suited for
Generate clips from a prompt for ads, storyboards, and creative previews.
promptdurationUse first_frame_url and last_frame_url to control start and end frames.
first_frame_urllast_frame_urlPass reference images, video, or audio to guide generation.
reference_image_urlsreference_video_urlsreference_audio_urlsEnable generate_audio when audio is needed.
generate_audioRequest parameters
model string required Fixed value seedance-2-0.
input object required Business parameters for core settings, reference media, and advanced switches.
prompt string required Video prompt, 3-20000 characters.
aspect_ratio enum required Video aspect ratio.
duration integer optional Video duration, 4-15 seconds.
resolution enum optional Video resolution. Current options are 480p, 720p, and 1080p.
first_frame_url string optional First-frame image URL or asset id.
last_frame_url string optional Last-frame image URL or asset id.
reference_image_urls string[] optional Reference image URL list. Combined count with first/last frames should not exceed 9.
reference_video_urls string[] optional Reference video URL list, up to 3 videos.
reference_audio_urls string[] optional Reference audio URL list, up to 3 clips.
return_last_frame boolean optional Whether to return the last frame of the generated video.
generate_audio boolean optional Whether to generate synchronized audio.
web_search boolean optional Whether to enable web search.
nsfw_checker boolean optional Whether to enable content checking.
seed integer optional Random seed, range 0-2147483647.
callback object optional Optional callback configuration. In production, pass callback.url so HiAPI can notify your service when the task reaches a terminal state.
url string required HTTPS URL that receives terminal task notifications.
when enum optional Callback trigger timing. Use final for terminal-state notifications.
Example requests
Low-cost test body for validating the prompt.
{
"model": "seedance-2-0",
"input": {
"prompt": "A ceramic cup gently rotating on a clean studio table",
"aspect_ratio": "16:9",
"duration": 4,
"resolution": "480p",
"generate_audio": false
}
}Pass a first frame to control the starting image.
{
"model": "seedance-2-0",
"input": {
"prompt": "Animate the product with a slow cinematic push-in",
"aspect_ratio": "16:9",
"duration": 5,
"resolution": "720p",
"first_frame_url": "https://example.com/first.jpg",
"generate_audio": false
}
}Video tasks should use callbacks for terminal status.
{
"model": "seedance-2-0",
"input": {
"prompt": "A cinematic studio shot of a ceramic cup with soft steam",
"aspect_ratio": "16:9",
"duration": 4,
"resolution": "480p",
"generate_audio": false
},
"callback": {
"url": "https://your-domain.com/hiapi/callback",
"when": "final"
}
}Getting the result
- The response returns a taskId immediately without waiting for generation to finish.
- In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
- When status=success, download the generated video from output[].url.
- When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.
FAQ
What is the Seedance 2.0 API?
Seedance 2.0 is HiAPI’s AI video generation API. It supports text-to-video and first-frame image-to-video with cinema-grade motion and native audio, called through POST /v1/tasks with model seedance-2-0.
Does the Seedance API support image-to-video?
Yes. Pass first_frame_url (and optionally last_frame_url) for image-to-video; omit them for text-to-video. Both modes use the same seedance-2-0 model.
How is Seedance API pricing calculated?
Seedance is priced per second of generated video, so duration and resolution drive cost. Validate a prompt with short, low-resolution clips first, then scale up. Check the live pricing page for current rates. View video API pricing
How do I get an API key for Seedance 2.0?
Create a HiAPI API key in the dashboard and send it as a Bearer token. Keep it server-side, not in client code. Create an API key