Seedance 2.0 icon
Video by ByteDance

Seedance 2.0 API

Seedance 2.0 is ByteDance's advanced video generation model, and the Seedance 2.0 API brings text to video, image to video, and reference to video together at one endpoint. Generate AI video with synchronized sound, multimodal inputs, and creative control, then receive every generated video through async jobs and webhooks behind one api key — with no separate ByteDance account to manage.

Integrate Seedance 2.0 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.

model: "seedance-2"

What's special about Seedance 2.0

Multimodal reference inputs

The Seedance 2.0 API takes mixed inputs in a single request (text, image, audio, and video inputs): a text prompt, reference images, a short reference clip, and an audio track. Tag each input with a role so the model knows which one drives style, motion, or sound.

Reference to video, your way

Drive a reference to video generation from input image urls, a short reference clip, or audio references, and combine them when a shot needs more than one cue. The same Seedance 2.0 API endpoint also handles plain text to video and image to video generation from static images.

Text to video and image to video

Start from a text prompt for text to video, or animate a still image as the first frame for an image start. Supply both the first and last frames when you want precise frame control over how Seedance 2.0 begins and ends the generated video.

Synchronized native audio generation

Seedance 2.0 performs audio video joint generation, so every clip ships with synchronized audio instead of a silent video output. That native audio covers music, sound effects, beat-aware cuts, and lip-sync, and you can steer it with an audio reference for tighter audio generation.

Direct camera movement with director level control

A single Seedance 2.0 API call can return multiple shots with natural cuts, delivering cinematic video generation that feels edited rather than a single take. Direct camera movement and camera motion with plain language for cinematic output with director level control.

An AI video generator built for realism

Seedance 2.0, ByteDance's flagship video model, improves motion stability and realistic physics over earlier models, holding motion stable through fast action and multi-subject scenes. Reference-driven shots also preserve the original motion of your source clip at maximum quality.

Character consistency across shots

It keeps a character identity stable across movement, angle changes, and scene transitions, so you get consistent characters with believable facial features. That makes the Seedance 2.0 API a fit for realistic human faces in films and ads.

Video editing and extension

Beyond first-pass generation, the Seedance 2.0 API supports video editing and video extension: modify clips, characters, or actions, replace elements, and continue a shot from its first and last frames without regenerating the whole finished video.

Full creative control

Set aspect ratio, video length, and visual style per request for full creative control over each output video. The Seedance 2.0 API exposes the same controls whether you want a quick draft or maximum quality.

Use cases from ad creative to game pre visualization

Teams use the Seedance 2.0 API for cinematic ai video, ad creative, music clips, and virtual try on videos. One advanced video generation model spans every mode you need.

Simple API workflow

Authenticate the Seedance AI API with your api key from an environment variable, then send a POST request with your request body. Each call returns a job you can poll for task status, and the video url arrives by webhook with its asset id.

Free credits and an api key to start

Create an Apiframe account to get an api key and free credits, then call the Seedance 2.0 API right away. New users can try it before adding billing, and the same api key works across every model, including Kling 3.0.

Made with Seedance 2.0

A few outputs generated through the Seedance 2.0 API on Apiframe.

Text to video: a cinematic clip of a chef plating a dessert in a warm restaurant kitchen, slow push-in, soft key light.

Animate this product photo on a turntable, gentle rotation, studio lighting, subtle reflections — ideal for virtual try on videos.

A cinematic clip of a city at dawn, a wide skyline cutting to a close-up of a coffee cup, smooth transition.

A music clip of a dancer moving in sync with an upbeat track, neon-lit interior, beat-matched cuts, audio generated with the clip.

Reference to video: a tracking shot following a cyclist along a coastal road at golden hour, motion matched to a reference video.

Image to video from a first frame: the camera continues past a doorway into a sunlit garden, using its first and last frames.

Overview

Endpoint
POST /v2/videos/generate
Model ID
seedance-2
Params key
seedanceParams
Modality
Video
Provider
ByteDance
Avg. completion
~120s

Capabilities

Aspect ratios21:9, 16:9, 4:3, 1:1, 3:4, 9:16
Resolutions480p, 720p, 1080p
Durations4s, 6s, 8s, 10s, 12s, 15s
Image inputSupported
AudioSupported
Avg. time~120s

Quick start

Send a single POST /v2/videos/generate request with your API key to generate with Seedance 2.0. The call returns a jobId you can poll or receive via webhook.

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "seedance-2",
        "seedanceParams": {
            "resolution": "720p",
            "start_image": "https://example.com/input.jpg",
            "generate_audio": false,
            "end_image": "https://example.com/input.jpg"
        }
    }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "seedance-2",
        "seedanceParams": {
            "resolution": "720p",
            "start_image": "https://example.com/input.jpg",
            "generate_audio": False,
            "end_image": "https://example.com/input.jpg"
        }
    },
)
print(response.json())  # { "jobId": "...", "status": "QUEUED" }
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
    "model": "seedance-2",
    "seedanceParams": {
      "resolution": "720p",
      "start_image": "https://example.com/input.jpg",
      "generate_audio": false,
      "end_image": "https://example.com/input.jpg"
    }
  }),
});
const { jobId } = await response.json();
console.log(jobId);

Response & job lifecycle

Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).

1. Submission response (202)

{
  "jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "status": "QUEUED"
}

2. Poll for the result

curl https://api.apiframe.ai/v2/jobs/JOB_ID \
  -H "X-API-Key: afk_your_api_key_here"
import requests, time

while True:
    job = requests.get(
        "https://api.apiframe.ai/v2/jobs/JOB_ID",
        headers={"X-API-Key": "afk_your_api_key_here"},
    ).json()
    if job["status"] in ("COMPLETED", "FAILED"):
        break
    time.sleep(2)
print(job["result"])
let job;
do {
  await new Promise((r) => setTimeout(r, 2000));
  job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
    headers: { "X-API-Key": "afk_your_api_key_here" },
  }).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);

Input schema

Request parameters accepted by the Seedance 2.0 endpoint. Model-specific options are nested under the params object shown below.

Parameter Type Required Default Allowed / range Description
prompt string required Text description of what to generate.
model string required "seedance-2" "seedance-2" The model identifier for this endpoint.
seedanceParams.resolution string optional "720p" "480p", "720p", "1080p" Resolution
seedanceParams.start_image string (URL) optional Use a still as the first frame of the clip.
seedanceParams.generate_audio boolean optional false Generate audio
seedanceParams.end_image string (URL) optional Optional last frame to control the ending.
seedanceParams.reference_image_urls string[] (URLs) optional Reference images
seedanceParams.reference_video_urls string[] (URLs) optional Reference videos
seedanceParams.reference_audio_urls string[] (URLs) optional Reference audio
seedanceParams.return_last_frame boolean optional false Also return the final frame as a still image.
seedanceParams.web_search boolean optional false Web search
seedanceParams.camera_fixed boolean optional false Disable camera movement.
seedanceParams.seed number optional step 1 Reuse a number to reproduce the same result.

Frequently Asked Questions

Common questions about the Seedance 2.0 API.

What is Seedance 2.0?

Seedance 2.0 is ByteDance's second-generation, multimodal AI video generator, released in February 2026. It handles text to video, image to video, and reference to video, and produces lifelike, edited-feeling results.

How do I call the Seedance 2.0 API?

Get an api key, store it in an environment variable, and send a POST request to the Seedance 2.0 API. The Seedance AI API uses the same api key for every model, and the Seedance API documentation lists every field you can send. The generation request returns a video task; poll the task endpoint for task status, and the video url is delivered to your webhook.

How do reference images and multimodal inputs work?

Pass reference images, a reference video, or audio as input image urls in the request body, and tag each with a role. The Seedance 2.0 API blends these inputs so a reference to video shot follows your intended framing and pacing.

What is the difference between text to video and image to video?

Text to video starts only from a text prompt, while image to video animates a still image as the first frame. For image to video generation you can also supply the first and last frames for frame control.

Does Seedance 2.0 generate audio?

Yes. Seedance 2.0 does audio video joint generation, so every generated video ships with synchronized audio, produced as native audio: music, sound effects, beat sync, and lip-sync. Provide reference audio to guide audio generation.

Can it produce multiple shots and cinematic output?

A single call can return several shots with natural cuts, giving cinematic output from one generation. This cinematic video generation is why teams reach for the Seedance 2.0 API for cinematic ai video.

How do I control the camera and visual style?

Describe camera movement, camera motion, and camera language directly in your text prompt, and Seedance 2.0 follows it with cinematic precision. You keep creative control over the look, pacing, and framing.

Can Seedance 2.0 edit or extend a video?

Yes. The Seedance 2.0 API supports video editing and video extension: modify clips, replace elements, or continue a shot from its last frame without rebuilding the finished video.

How consistent are characters and faces?

Seedance 2.0 maintains strong character consistency, holding character identity and facial features across shots so you get consistent characters and realistic faces, which is useful for ads and product videos.

What video duration, aspect ratio, and resolution are supported?

The Seedance 2.0 API supports a video duration from 4 to 15 seconds at up to 1080p, across aspect ratios from 21:9 to 9:16. Set the aspect ratio and video length per request.

How do I get an api key and free credits?

Create an Apiframe account to get an api key and free credits, then call the Seedance 2.0 API right away. New users start with free credits, so you can test it before adding billing.

How do I track a video task and its status?

Each call returns a job. Poll the task endpoint with the task id and your user id to read task status, and the output video url is returned when the task completes.

How is the Seedance 2.0 API priced?

The Seedance 2.0 API is billed per second of video output, so a longer clip costs proportionally more. Resolution affects the per-second rate, and you can estimate any job before sending the request.

How does Seedance 2.0 compare to other models?

Compared with other ai video generator tools, Seedance 2.0 leads on physical realism, consistent characters, and motion stability while generating audio in the same pass. One model replaces several separate tools in a typical pipeline.

Where can you access it?

You can access Seedance 2.0 through the Apiframe API, as well as ByteDance's CapCut and Dreamina apps. Apiframe gives you one Seedance AI API and key alongside other models.

Still have questions?

Start building with the Seedance 2.0 API

Get your API key and integrate Seedance 2.0 in minutes — Pay-as-you-go.

Free credits to start
One API for every model
Webhooks, SDKs & idempotency
No provider account required

Questions? Join our Discord or contact sales.