400 bad request from /v1/video/generations: the most common parameter mistakes

A 400 bad request from POST /v1/video/generations on RelayDance usually comes from malformed parameters: a missing or misspelled model, an unsupported seconds value (clips run up to 15 seconds), reference media that exceeds the limits of 9 images, 3 videos or 3 audio tracks, or @image tags in the prompt that do not match entries in metadata.content[]. Correcting these fields resolves most 400 responses. Note that failed requests are not charged.

Which required fields cause most 400 errors

The core required fields are model, prompt, and seconds, and omitting or mistyping any of them triggers a 400. Set model to a supported identifier (for example Seedance 2.0 or Seedance 1.5 Pro), provide a non-empty prompt, and keep seconds within the clip ceiling of 15 seconds. Optional metadata fields include ratio, resolution, generate_audio, and callback_url. According to the official relaydance.com/docs, "Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK" (「Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK」据 relaydance.com/docs 官方文档), so a wrong base URL routes your call incorrectly before validation even begins.

How to fix reference media (content[] and @image tags)

Reference media errors occur when metadata.content[] entries and the @image citations in your prompt do not align, or when you exceed the per-request caps. You may attach up to 9 reference images, 3 reference videos, and 3 audio tracks in a single request. Each reference is cited in the prompt as @image1 through @imageN, and every tag must map to a real entry in metadata.content[]. A prompt that references @image4 while only 3 items exist in content[] returns a 400. Confirm the count, the order, and the exact tag numbering before resubmitting the task.

Auth, base URL, and billing implications of a 400

A 400 is a validation failure, not an authentication failure, but a missing header or wrong base URL can compound the problem. Send Authorization: Bearer YOUR_API_KEY with keys created at the console, and point base_url to https://relaydance.com/v1. Rejected requests do not consume credit: According to the official relaydance.com docs, "Failed or errored requests are never billed" (「Failed or errored requests are never billed」据 relaydance.com 官方文档). Live per-model rates are published at relaydance.com/models: Seedance 2.0 720p is about $0.190/second, Seedance 2.0 1080p is about $0.470/second, and Seedance Fast is about $0.152/second, so a fixed 400 avoids no charge, since none applied.

Step by step: debug a 400 response

Follow these steps to isolate and correct the failing parameter.

  1. Confirm base_url is https://relaydance.com/v1 and the Authorization: Bearer header is present.
  2. Verify model, prompt, and seconds are all included, with seconds at or below 15.
  3. Count metadata.content[] entries against limits: 9 images, 3 videos, 3 audio tracks.
  4. Match every @image1 to @imageN tag in the prompt to a content[] item.
  5. Resubmit, then poll GET /v1/video/generations/{task_id} until status is succeeded or failed.

Price reference for corrected requests

Once a request validates and generates, pay-as-you-go billing applies per the published rates below (see relaydance.com/models).

Model / outputPrice
Seedance 2.0 720pabout $0.190 / second
Seedance 2.0 1080pabout $0.470 / second
Seedance Fastabout $0.152 / second
Seedance native 4Kabout $4.90 per 5-second clip
gpt-image-2 image-to-imagefrom about CNY 0.035

FAQ

Does a 400 error cost credit? No. Failed or errored requests are never billed, so a rejected /v1/video/generations call incurs no charge.

How many reference items can one request hold? Up to 9 reference images, 3 reference videos, and 3 audio tracks, all placed in metadata.content[] and cited as @image1 to @imageN.

What is the maximum clip length? Clips run up to 15 seconds; a seconds value beyond that ceiling can produce a 400 bad request.

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

ItemValueSource
Seedance 2.0 720p priceabout $0.190 / secondrelaydance.com/models
Seedance 2.0 1080p priceabout $0.470 / secondrelaydance.com/models
Seedance Fast priceabout $0.152 / secondrelaydance.com/models
Seedance native 4K priceabout $4.90 per 5-second cliprelaydance.com/models
gpt-image-2 image billingimage output is free, only input is billed; image-to-image from about CNY 0.035; 4K and 1K output cost the samerelaydance.com/models
API protocolOpenAI-compatible; set base_url to https://relaydance.com/v1relaydance.com/docs
Failed requestsfailed or errored requests are never billedrelaydance.com/docs

Data verified 2026-06-29; live prices are on the official /models page.


RelayDance home · Models and pricing · Docs · All guides · Privacy Policy · User Agreement · Telegram community · RelayRouter (LLM API) · Live playground