Seedance 2.5 API

Seedance 2.5 by ByteDance for text to video, image to video, reference to video, 4–30s clips up to 1080p with audio. Call it through Moyi API's OpenAI-compatible /v1/videos endpoint with one API key.

ByteDance Seed says Seedance 2.5 is rolling out in Jimeng AI and Doubao Pro; here you call the same model by API. source

Loading price…

Seedance 2.5 model IDs and parameters

ModeModel IDDurationResolutionAspect ratioAudio
Text to videoseedance-2-5-text-to-video-basic4–30s480p, 720p, 1080p16:9, 9:16, 1:1, 4:3, 3:4, 21:9Yes
Image to videoseedance-2-5-image-to-video-basic4–30s480p, 720p, 1080p16:9, 9:16, 1:1, 4:3, 3:4, 21:9Yes
Reference to videoseedance-2-5-reference-to-video-basic4–30s480p, 720p, 1080p16:9, 9:16, 1:1, 4:3, 3:4, 21:9Yes

Call the Seedance 2.5 API

1. Get an API key and set it as an environment variable

export TEAMO_API_KEY=sk-teamo-...
Get an API key

2. Make your first request

Video generation is asynchronous: create a job, poll it, then download the MP4.

import os, time, requests

API = "https://api.moyi-api.com/v1/videos"
headers = {"Authorization": f"Bearer {os.environ['TEAMO_API_KEY']}"}

# 1. Create a video job
job = requests.post(API, headers=headers, json={
    "model": "seedance-2-5-text-to-video-basic",
    "prompt": "A small dog running on grass",
    "seconds": "5",
}).json()

# 2. Poll until status is completed
while job["status"] not in ("completed", "failed"):
    time.sleep(5)
    job = requests.get(f"{API}/{job['id']}", headers=headers).json()

# 3. Download the MP4
if job["status"] == "completed":
    video = requests.get(f"{API}/{job['id']}/content", headers=headers)
    open("video.mp4", "wb").write(video.content)
else:
    print(job.get("error"))

For image to video, use seedance-2-5-image-to-video-basic and pass the first frame in input_reference.image_url (a URL or data URL).

Pricing

Loading price…

Seedance 2.5 API FAQ

What are the Seedance 2.5 API model IDs?
Seedance 2.5 model IDs on Moyi API — Text to video: seedance-2-5-text-to-video-basic; Image to video: seedance-2-5-image-to-video-basic; Reference to video: seedance-2-5-reference-to-video-basic.
Is this the same Seedance 2.5 as in Jimeng and Doubao?
Yes. ByteDance Seed's launch post says Seedance 2.5 is rolling out in Jimeng AI and Doubao Pro. Here you call the model through an API by model ID and pay per job, with no app membership. source
What is the difference between Seedance 2.5 text-to-video and image-to-video?
Text to video creates a clip from a prompt only. Image to video animates the image you pass in input_reference as the first frame, and reference to video uses your images as references for characters, objects or style.
How long and what resolution can Seedance 2.5 videos be?
Seedance 2.5 generates 4–30s clips up to 1080p in 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, with optional audio. Pass seconds as an integer string; if size is omitted, the model's first supported resolution and aspect ratio are used.
How do I call the Seedance 2.5 API?
Send POST /v1/videos with the model ID and prompt, poll GET /v1/videos/{video_id} until status is completed, then download from /v1/videos/{video_id}/content. The endpoint follows OpenAI Videos, so the OpenAI SDK's client.videos.create works with base_url https://api.moyi-api.com/v1. Video generation API docs.
How much does the Seedance 2.5 API cost and how do I pay?
Seedance 2.5 is billed per million video tokens. New accounts start with a $0 balance — top up from $5 by card, then usage is deducted per job with no subscription. Per-second and per-clip prices are in the Pricing section of this page. Top up.

More video models