Seedance API: Seedance 2.5 & 2.0 Video Generation API

Call ByteDance's Dreamina Seedance 2.5, Seedance 2.0, 2.0 Fast and 2.0 Mini from your own code through the Nereo API: one API key, one REST request per video, text-to-video, image-to-video and reference-to-video, pay per second. Want to test prompts first? Generate with Seedance 2.5 right here, no code needed.

Text to Video

Prompt
Seedance logoSeedance
0 / 20000

Seedance 2.5 API Features: Text, Image and Reference to Video

Text-to-Video API: Up to 30 Seconds in One Request

Send a prompt to the Seedance 2.5 text-to-video endpoint and get back a video with motion, camera direction and native audio. Clips run up to 30 seconds, so a full ad, product reveal or story beat fits in one API call.

Image-to-Video API with First and Last Frames

Animate a product shot, character or storyboard frame. The image-to-video endpoint takes a start frame and an optional end frame, so you control exactly where the shot begins and lands.

Reference-to-Video API with Up to 30 References

Use the reference-to-video endpoint (omni reference) to pass up to 30 images or videos, plus a prompt, and keep faces, outfits, packaging and brand colors consistent across shots. Set generate_audio to true for dialogue, music and effects in sync with the picture.

480p Drafts, 1080p Finals, 4K with Seedance 2.0

Choose 480p, 720p or 1080p per request (Seedance 2.0 also offers 4K). Draft cheaply at 480p with Seedance 2.0 Mini or Fast, then render the version you keep with Seedance 2.5.

Seedance API Python Tutorial and Code Examples

Every Seedance model has its own endpoint under https://api.nereo.io/api/v1. Requests are asynchronous: you get a status_url back right away and poll it (or use a webhook) until the video is ready, usually within one to a few minutes. Copy these examples into Python, curl or Node.js.

Seedance 2.5 text-to-video (Python)

python
import os, time, requests

API = "https://api.nereo.io/api/v1"
headers = {"Authorization": f"Bearer {os.environ['NEREO_API_KEY']}"}

# 1. Submit a Seedance 2.5 text-to-video request
job = requests.post(
    f"{API}/byteplus/seedance-2.5/text-to-video",
    headers=headers,
    json={
        "prompt": "A barista pours latte art in a sunlit cafe, slow push-in",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "16:9",
        "generate_audio": True,
    },
).json()

# 2. Poll status_url until the video is ready
while True:
    result = requests.get(job["status_url"], headers=headers).json()
    if result["status"] not in ("queued", "in_progress"):
        break
    time.sleep(5)

if result.get("error"):
    raise RuntimeError(result["error"]["message"])
print(result["outputs"][0]["url"])

Seedance 2.5 image-to-video (curl)

bash
curl -X POST https://api.nereo.io/api/v1/byteplus/seedance-2.5/image-to-video \
  -H "Authorization: Bearer $NEREO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "The product slowly rotates on a marble pedestal",
    "image_url": "https://example.com/product.png",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "generate_audio": true
  }'

# The response includes a status_url. Check it until status is "completed":
curl "$STATUS_URL" -H "Authorization: Bearer $NEREO_API_KEY"

Seedance 2.0 Fast text-to-video (Node.js / TypeScript)

typescript
const headers = {
  Authorization: `Bearer ${process.env.NEREO_API_KEY}`,
  "Content-Type": "application/json",
};

const job = await fetch("https://api.nereo.io/api/v1/byteplus/seedance-2.0-fast/text-to-video", {
  method: "POST",
  headers,
  body: JSON.stringify({ prompt: "A paper boat drifting down a rainy street", duration: 5, resolution: "480p" }),
}).then((r) => r.json());

let result;
do {
  await new Promise((r) => setTimeout(r, 5000));
  result = await fetch(job.status_url, { headers }).then((r) => r.json());
} while (result.status === "queued" || result.status === "in_progress");

console.log(result.outputs[0].url);

How to Get a Seedance API Key and Make Your First Request

From sign-up to your first generated video in about five minutes.

1

Create an API Key

Sign in to the Nereo API console, open API keys and create a key. It is shown once, so store it in an environment variable such as NEREO_API_KEY and use it only in server-side code.

2

Add Balance and Send a Request

Top up your balance, then POST a JSON body to a Seedance endpoint such as /byteplus/seedance-2.5/text-to-video with your prompt, duration, resolution and aspect ratio.

3

Poll and Download the Video

Check the returned status_url every few seconds until the status is completed, then download outputs[0].url. Generated files are copied to Nereo storage, so the links keep working.

Seedance 2.5 vs 2.0 vs 2.0 Fast vs 2.0 Mini API: Endpoints and Price per Second

FeatureSeedance 2.5Seedance 2.0Seedance 2.0 FastSeedance 2.0 Mini
Endpointbyteplus/seedance-2.5byteplus/seedance-2.0byteplus/seedance-2.0-fastbyteplus/seedance-2.0-mini
Video lengthUp to 30 sUp to 15 s4–15 s4–15 s
480p$0.147 / s$0.101 / s$0.0402 / s$0.0201 / s
720p$0.331 / s$0.216 / s$0.0864 / s$0.0432 / s
1080p$0.813 / s$0.535 / sNot availableNot available
4KNot available$1.12 / sNot availableNot available
Best forLong, multi-shot scenes with audioHigh-quality clips up to 4KFast, low-cost iterationsLowest-cost drafts

Seedance API Pricing per Second

Seedance API requests are billed per second of generated video, at the rate for the model and resolution you choose. With reference videos on Seedance 2.5, the reference seconds plus the output seconds are billed at a lower rate. Prices are the current rates on each model's page in the Nereo API console.

Pay per Second, Prepaid

Add balance once and every Seedance request draws from it. A 5-second 720p clip costs about $0.22 with Seedance 2.0 Mini, $0.43 with 2.0 Fast and $1.66 with 2.5. A request your balance can't cover fails and isn't charged.

One Key for Every Model

The same API key and request flow work for Seedance, Kling, Veo, Hailuo, Nano Banana, GPT Image, Seedream and more, so you can compare models without new integrations.

Seedance Credits for No-Code and Agents

Prefer not to code? Use the generator on this page with Seedance credits, or connect ChatGPT, Claude or Cursor through the Seedance MCP server.

Seedance API FAQ

Is there a Seedance API?

Yes. You can call Seedance 2.5, 2.0, 2.0 Fast and 2.0 Mini through the Nereo API with one REST request per video. ByteDance also offers Seedance directly through BytePlus ModelArk.


Is the Dreamina Seedance 2.5 API the same as the Seedance 2.5 API?

Yes. Dreamina Seedance 2.5 is the name BytePlus uses for ByteDance's Seedance 2.5 model. Here it is the byteplus/seedance-2.5 endpoint, with text-to-video, image-to-video and reference-to-video modes.


How do I get a Seedance API key?

Sign in to the Nereo API console, open API keys and create one. Send it as a Bearer token in the Authorization header. Keep it server-side and never commit it to source control.


How much does the Seedance API cost?

Seedance 2.5 costs $0.147 per second at 480p, $0.331 at 720p and $0.813 at 1080p. Seedance 2.0 costs $0.101 to $1.12 per second up to 4K, 2.0 Fast starts at $0.0402 per second and 2.0 Mini at $0.0201 per second.


Seedance 2.5 API vs Seedance 2.0 API: which should I use?

Use Seedance 2.5 for clips up to 30 seconds, multi-shot scenes and reference-heavy work. Use Seedance 2.0 for up to 15 seconds and 4K output, and 2.0 Fast or Mini for cheap drafts and high-volume jobs.


Is there a free Seedance API or free trial?

API requests are paid from a prepaid balance, and a request your balance can't cover isn't charged. To try Seedance for free first, use the generator on this page with your Seedance welcome credits, where offered.


What are the Seedance API endpoints?

Each model and mode has its own endpoint, for example /api/v1/byteplus/seedance-2.5/text-to-video, /byteplus/seedance-2.5/image-to-video and /byteplus/seedance-2.5/reference-to-video. The API documentation lists every parameter and limit.


How do I use the Seedance API in Python?

It is a plain HTTPS API, so the requests library is enough: POST your JSON body, then poll the returned status_url, as in the Python tutorial above. Node.js, curl and any other HTTP client work the same way.


How long does a Seedance API request take?

Videos usually take one to a few minutes depending on length, resolution and load. Poll the status_url every few seconds or register a webhook instead of holding one connection open.


What inputs does the Seedance API accept?

A text prompt, a start frame and optional end frame for image-to-video, or up to 30 image or video references for reference-to-video. Outputs are MP4 files with optional native audio, from 480p to 1080p (4K on Seedance 2.0).


Is there a Seedance API SDK on GitHub?

You don't need one: any HTTP client can call the API with an API key. GitHub wrappers usually call a third-party provider, while the API documentation gives ready-to-copy curl and TypeScript examples for every endpoint.


Can I use the Seedance API with Claude Code, Codex or Cursor?

Yes. Every model page has a Copy for agent prompt that gives your coding agent the endpoint and parameters. To create videos without writing code, connect the Seedance MCP server to ChatGPT, Claude or Cursor instead.

Test Your Seedance Prompts Before You Integrate