Skip to content
English

Seedance 2.0

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 supports text-to-video, first-frame / first-last-frame image-to-video, and multimodal reference video generation, with optional synchronized audio.

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.

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.

Next steps