400 bad request from /v1/video/generations: the most common parameter mistakes
A 400 bad request from POST /v1/video/generations on RelayDance usually means a malformed request body: a missing required field (model, prompt, or seconds), a clip duration above the 15 second limit, more than 9 reference images (or 3 reference videos, or 3 audio tracks) in metadata.content[], or a prompt that references media not present in the array. Correct the parameter and resubmit. Failed requests are not billed.
Check the required fields and the base URL first
Most 400 errors come from an incomplete request body or a wrong endpoint target. A valid submission to POST /v1/video/generations requires model, prompt, and seconds, with optional metadata (ratio, resolution, generate_audio, callback_url, content[]). Confirm your client points at the RelayDance host: 据 relaydance.com/docs 官方文档,「Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK」. Also verify the header Authorization: Bearer YOUR_API_KEY, using a key created at the console. See https://relaydance.com/docs for the full request schema and field names.
Respect the reference media and duration limits
Exceeding the per-request media limits or the clip length is a frequent cause of 400 responses. Each request accepts up to 9 reference images, 3 reference videos, and 3 audio tracks, and clips can run up to 15 seconds. Reference media belong in metadata.content[] and must be cited in the prompt as @image1 through @imageN. If your prompt cites @image3 but only two items exist in the array, the request is rejected. Count your entries, match every citation to an existing item, and keep seconds at or below 15 before resubmitting.
Understand what a rejected request costs
A 400 response carries no charge, so you can iterate on parameters without accruing fees. 据 relaydance.com 官方文档,「Failed or errored requests are never billed」. Billing is pay-as-you-go per generated video only. For reference, live per-model rates at https://relaydance.com/models list Seedance 2.0 at about $0.190 / second for 720p and about $0.470 / second for 1080p, Seedance Fast at about $0.152 / second, and native 4K at about $4.90 per 5-second clip. Because a fixed 400 costs nothing, correcting parameters before a successful run has no billing risk.
A quick checklist to resolve a 400
Work through the request body in order to isolate the offending parameter.
- Confirm
base_urlishttps://relaydance.com/v1. - Verify
model,prompt, andsecondsare all present. - Check
secondsis 15 or less. - Count
metadata.content[]: at most 9 images, 3 videos, 3 audio. - Match every
@imageNin the prompt to an item in the array. - Resubmit; a failed request is not billed.
| Limit | Maximum value |
|---|---|
| Reference images | 9 per request |
| Reference videos | 3 per request |
| Audio tracks | 3 per request |
| Clip duration | 15 seconds |
FAQ
Does a 400 error cost anything? No. Billing is pay-as-you-go per generated video, and 据 relaydance.com 官方文档,「Failed or errored requests are never billed」.
Why does my prompt citation trigger a 400? Because each @imageN reference must map to an existing item in metadata.content[]. Citing an index that does not exist produces a 400.
What is the maximum clip length? Clips can run up to 15 seconds. A seconds value above 15 can cause a 400 response.
According to the official relaydance.com docs: "Failed or errored requests are never billed"
According to the official relaydance.com/docs docs: "Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK"
Key facts and figures
| Item | Value | Source |
|---|---|---|
| Seedance 2.0 720p price | about $0.190 / second | relaydance.com/models |
| Seedance 2.0 1080p price | about $0.470 / second | relaydance.com/models |
| Seedance Fast price | about $0.152 / second | relaydance.com/models |
| Seedance native 4K price | about $4.90 per 5-second clip | relaydance.com/models |
| gpt-image-2 image billing | image output is free, only input is billed; image-to-image from about CNY 0.035; 4K and 1K output cost the same | relaydance.com/models |
| API protocol | OpenAI-compatible; set base_url to https://relaydance.com/v1 | relaydance.com/docs |
| Failed requests | failed or errored requests are never billed | relaydance.com/docs |
Data verified 2026-06-29; live prices are on the official /models page.