Models and inputs
The six Seedance model IDs the Yovid API accepts, what each one takes as input, which lengths and resolutions it renders, and how your media decides the generation mode.
The API serves ByteDance's Seedance models. Put one of the IDs below in model. Yovid routes the request to a matching upstream endpoint behind the scenes, so the ID you send stays the same even when that routing changes.
| Model ID | Good for | Images | Video refs | Audio refs | Length | Resolution (default) |
|---|---|---|---|---|---|---|
seedance-1.0-pro-fast | Cheap drafts and quick tests | 1 | none | none | 2 to 12 s | 480p to 1080p (480p) |
seedance-1.5-pro | First and last frame control, with sound | 2 | none | none | 4 to 12 s | 480p to 1080p (480p) |
seedance-2.0 | Best Seedance 2.0 quality, rich inputs | 9 | 1 | none | 4 to 15 s | 480p to 1080p (720p) |
seedance-2.0-fast | Seedance 2.0 at a lower rate | 9 | 1 | none | 4 to 15 s | 480p to 1080p (720p) |
seedance-2.0-mini | Lowest-cost Seedance 2.0 | 9 | 1 | none | 4 to 15 s | 480p or 720p (480p) |
seedance-2.5 | Clips up to 30 s, large reference sets | 30 | 10 | 10 | 4 to 30 s | 480p to 1080p (720p) |
The numbers under Images, Video refs and Audio refs are maximums per request. A value outside a model's length or resolution range is refused with 422, and the message spells out the limit.
What your plan unlocks
- Without a subscription or credit pack, a key can call
seedance-1.0-pro-fast,seedance-1.5-proandseedance-2.0-mini. The other three return403 plan_upgrade_required. - Any subscription (Lite, Pro, Premium) or credit pack unlocks all six models.
- 1080p needs Pro or Premium. Free and Lite accounts are held to 720p, while an account with a credit pack and no subscription is not capped.
These checks run before a task exists, so a refused request never reserves credits.
How the inputs pick a mode
There is no mode field. The media arrays you fill decide the workflow:
| You send | The task runs as |
|---|---|
| Only a prompt | Text to video |
| One image | Image to video, with the image as the first frame |
| Two images | First and last frame |
| Three or more images | Reference to video (Seedance 2.0 family and 2.5) |
Any video_urls | Reference to video (Seedance 2.0 family and 2.5) |
Any audio_urls | Reference to video (Seedance 2.5) |
To use one or two images as references (say, a character and a product) instead of frames, add reference_mode: true. Only the Seedance 2.0 family and 2.5 accept it, and the request needs at least one media URL.
Some mixes are not accepted on every render route: one or two images combined with a video or audio reference, or reference_mode with one or two images, can come back as 422 with param: "media". Like the other checks, this happens before any credits are held. Three or more images always run as references.
Media links
Pass media as links, not file uploads. Every URL has to:
- use
https://(Base64 strings anddata:URLs are rejected), - contain no username or password,
- resolve to a public address;
localhost, private network ranges and hostnames that do not resolve are refused.
A rejected link returns 422 invalid_request with param: "media_url".
Other request fields
aspect_ratioaccepts16:9,9:16,1:1,4:3,3:4and21:9on every model.adaptive, which lets the model choose (usually from the input image), works on all models except Seedance 1.0 Pro Fast.generate_audioapplies to Seedance 1.5 Pro, the 2.0 family and 2.5. It is on unless you sendfalse.promptcan be up to 2,000 characters on Seedance 1.0 Pro Fast and 1.5 Pro, and up to 10,000 on the 2.0 family and 2.5. Longer prompts fail with422 prompt_too_long.- The request body is strict: a field the API does not know about is rejected with
422, andparamtells you which one.
Seedance 2.5 extras
Seedance 2.5 takes three options the other models refuse:
output_format:mp4(default) ormov.content_filter: on by default.falseswitches the optional filter off and adds 10% to the price. If the request cannot be served with the filter off, it fails with422before credits are held.web_search: lets the model search the web to ground a prompt-only request. It is on by default for text to video; sendfalseto turn it off. Sendingtruetogether with any media URL returns422.
Media limits for Seedance 2.5:
- Images: JPEG, PNG or WebP, 300 to 6000 px per side, width to height ratio between 0.4 and 2.5, 30 MB or less each.
- Videos: MP4 or MOV, 2 to 30 seconds each and 30 seconds across all clips, 24 to 60 FPS, 300 to 6000 px per side, 200 MB or less each.
- Audio: MP3 or WAV, 2 to 30 seconds each and 30 seconds across all files, 15 MB or less each.
In the prompt, refer to your references by position: @image1 is the first entry of image_urls, @video2 the second entry of video_urls, @audio1 the first audio file. For example: "The mascot from @image1 carries the bottle from @image2 through the shop from @image3."
Authentication
How Yovid API keys work, where to keep them, how to rotate them without downtime, and the request limits that apply to each key.
Create a video task POST
Queues a Seedance render on your account and answers right away with a `task_id`; the video itself is not ready yet. Credits for the clip are held from this moment. Follow progress with `GET /v1/tasks/{task_id}`. There is no idempotency key, so resending a request that already succeeded starts a second video.