Getting 429 Too Many Requests from the Seedance API: rate limit causes and retry strategies

A 429 Too Many Requests response from the Seedance API means your account has exceeded its allowed request rate, so the server declines the call until traffic drops. On RelayDance, this is a transient signal, not a charge: "failed or errored requests are never billed"According to the official relaydance.com docs. The fix is to slow down submission, poll less aggressively, and retry with exponential backoff. Because the interface is OpenAI-compatible, standard OpenAI SDK retry patterns apply directly against the RelayDance base URL.

Why the Seedance API returns 429

A 429 is returned when concurrent or per-interval requests exceed the limit for your account, typically from rapid task submission or tight polling loops. Video generation on RelayDance uses a submit-then-poll model: you POST to /v1/video/generations, then repeatedly GET /v1/video/generations/{task_id} until status is succeeded or failed. Polling too frequently multiplies request volume and can trigger 429 even when submission is modest. Webhook mode reduces this: set metadata.callback_url and the final state is POSTed to your server, removing the poll loop entirely. Because "failed or errored requests are never billed"According to the official relaydance.com docs, a 429 costs nothing, but it still blocks throughput until you back off.

Retry strategy: exponential backoff steps

The recommended response to a 429 is to wait and retry with increasing delays rather than resubmitting immediately.

  1. Catch the 429 status and read any Retry-After header if present.
  2. Wait a base interval (for example 1 second), then retry the same request.
  3. On repeated 429s, double the wait (1s, 2s, 4s, 8s) up to a ceiling.
  4. Add random jitter to each delay to avoid synchronized retry bursts.
  5. Cap total retries (for example 5 attempts), then surface the error to your caller.
  6. For polling, increase the GET interval so status checks do not themselves trigger 429.

Since failed or errored requests are never billed, these retries carry no per-call cost, and you are billed only for successfully generated video.

Configuring the OpenAI-compatible client

Because RelayDance is OpenAI-compatible, you keep the OpenAI SDK and point it at the RelayDance base URL, which lets you reuse existing retry logic. "set base_url to https://relaydance.com/v1 and keep your OpenAI SDK"According to the official relaydance.com docs. Authenticate with Authorization: Bearer YOUR_API_KEY, using keys created at the RelayDance console. The base URL is https://relaydance.com/v1. Submit video tasks to /v1/video/generations with model, prompt, and seconds; reference media go in metadata.content[] and are cited in the prompt as @image1 to @imageN. Per request you may include up to 9 reference images, 3 reference videos, and 3 audio tracks, with clips up to 15 seconds. Full docs are at https://relaydance.com/docs.

Cost impact of retries by Seedance model

Retries after a 429 do not add cost, because billing is pay-as-you-go per generated video and failed requests are not charged; the table below lists live per-model rates for successful generations only.

Model / tierPriceCharged on 429?
Seedance 2.0 720pabout $0.190 / secondNo
Seedance 2.0 1080pabout $0.470 / secondNo
Seedance Fastabout $0.152 / secondNo
Seedance native 4Kabout $4.90 per 5-second clipNo

Current rates are published at https://relaydance.com/models. Payment is supported via USDT and Stripe card.

FAQ

Does a 429 error cost money on RelayDance? No. Billing is pay-as-you-go per generated video, and failed or errored requests, including 429 responses, are never billed.

How do I reduce 429 errors from polling? Increase your GET polling interval, or switch to webhook mode by setting metadata.callback_url so the final state is POSTed to your server instead of polled.

Do I need to change my SDK to handle retries? No. RelayDance is OpenAI-compatible: "set base_url to https://relaydance.com/v1 and keep your OpenAI SDK"According to the official relaydance.com docs, so existing OpenAI retry logic works.

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 · Telegram community · RelayRouter (LLM API) · Live playground · Privacy Policy · User Agreement