Skip to content
English

Seedance 2.0 API

POST /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

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.
API key and pricing
  • 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

Text-to-video

Generate clips from a prompt for ads, storyboards, and creative previews.

promptduration
First or last frame control

Use first_frame_url and last_frame_url to control start and end frames.

first_frame_urllast_frame_url
Multimodal references

Pass reference images, video, or audio to guide generation.

reference_image_urlsreference_video_urlsreference_audio_urls
Synchronized audio

Enable generate_audio when audio is needed.

generate_audio

Request parameters

model string required

Fixed value seedance-2-0.

example 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.

default 16:9 enum: 1:14:33:416:99:1621:9adaptive
duration integer optional

Video duration, 4-15 seconds.

default 5
resolution enum optional

Video resolution. Current options are 480p, 720p, and 1080p.

default 720p enum: 480p720p1080p
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.

default false
generate_audio boolean optional

Whether to generate synchronized audio.

default true
web_search boolean optional

Whether to enable web search.

nsfw_checker boolean optional

Whether to enable content checking.

default false
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.

example https://your-domain.com/hiapi/callback
when enum optional

Callback trigger timing. Use final for terminal-state notifications.

default final enum: final

Example requests

Basic text-to-video

Low-cost test body for validating the prompt.

Request body
{
  "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
  }
}
First-frame image-to-video

Pass a first frame to control the starting image.

Request body
{
  "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
  }
}
Production request with callback

Video tasks should use callbacks for terminal status.

Request body
{
  "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

  1. The response returns a taskId immediately without waiting for generation to finish.
  2. In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
  3. When status=success, download the generated video from output[].url.
  4. 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

Next steps