Retried a request and got two videos: avoiding duplicate tasks and double spending
If a retry produced two videos, both succeeded and both are billable, because RelayDance charges pay-as-you-go per generated video. Only failed or errored requests are never billed, so a duplicate that reached the succeeded state still counts. To avoid double spending, poll GET /v1/video/generations/{task_id} before retrying, and reuse the existing task_id rather than resubmitting. Confirm the first task's status before you POST a second time.
Why a retry can create two paid tasks
A retry creates a second task whenever the first POST /v1/video/generations already reached the RelayDance server, even if your client timed out before receiving the task_id. According to the official relaydance.com docs, 「Failed or errored requests are never billed」, but a request that succeeded server-side is not a failure, so both generated videos are billable. Because billing is pay-as-you-go per generated video, two succeeded outputs mean two charges. Seedance 2.0 720p is billed at about $0.190 per second, so a duplicated 5-second clip adds roughly $0.950 in avoidable cost. Check status before assuming a request failed.
Steps to retry safely without duplicating
Retry safely by verifying task status first and only resubmitting when the original request truly failed.
- Capture the task_id from the initial
POST /v1/video/generationsresponse. - Poll
GET /v1/video/generations/{task_id}until status is succeeded or failed. - If status is succeeded, read the video url from the result and stop; do not resubmit.
- If status is failed, resubmit, since failed requests are never billed.
- If you never received a task_id, prefer webhook mode: set
metadata.callback_urlso the final state is POSTed to your server.
See relaydance.com/docs for the full task lifecycle.
Cost of an accidental duplicate by resolution
An accidental duplicate doubles the per-second or per-clip rate of the model you selected, so the exposure depends on resolution. According to the official relaydance.com/docs, 「Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK」, which means the same idempotency discipline you use for OpenAI applies here. Live per-model rates are published at relaydance.com/models.
| Model / tier | Rate | Cost of one duplicate 5-second clip |
|---|---|---|
| Seedance Fast | about $0.152 / second | about $0.760 |
| Seedance 2.0 720p | about $0.190 / second | about $0.950 |
| Seedance 2.0 1080p | about $0.470 / second | about $2.350 |
| Seedance native 4K | about $4.90 per 5-second clip | about $4.90 |
Configuration that reduces double spending
Reduce double spending by combining webhook callbacks, status polling, and awareness of per-request media limits. Set metadata.callback_url so the final state is delivered to your server, removing the need to blindly retry after a client timeout. Each request supports up to 9 reference images, 3 reference videos, and 3 audio tracks, with clips up to 15 seconds, so a resubmitted heavy request repeats real generation cost. For images via POST /v1/images/generations, note that with gpt-image-2 the image output is free and only input is billed, with image-to-image from about CNY 0.035. Verify status before every retry.
FAQ
Are both videos charged if a retry produces two? Yes. Billing is pay-as-you-go per generated video, and both succeeded outputs are billable; only failed or errored requests are never billed.
How do I confirm whether the first request failed? Poll GET /v1/video/generations/{task_id} until the status is succeeded or failed. Only resubmit when it reports failed.
Which base URL should I use for retries? Set base_url to https://relaydance.com/v1 and keep your OpenAI SDK, per the official relaydance.com/docs.
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.