Polling a video task returns 404 not found: task id errors explained

A 404 not found when polling a video task means the task id sent to GET /v1/video/generations/{task_id} does not match a task on the server. The RelayDance API is OpenAI compatible with base URL https://relaydance.com/v1, so the id you poll must be the exact task_id returned by the earlier POST /v1/video/generations call. Common causes: a mistyped or truncated id, calling the wrong base URL, or a submission that never succeeded because failed or errored requests are never billed and produce no pollable task.

What a 404 on task polling actually means

A 404 indicates the server has no record of the task_id in the GET path, not that generation failed. When you submit a video with POST /v1/video/generations, the response contains a task_id; you then poll GET /v1/video/generations/{task_id} until status is succeeded or failed. If the submission itself returned an error, no task exists to poll, because "failed or errored requests are never billed"(According to the official relaydance.com docs). Verify you captured the task_id from a 2xx submission response, and confirm the id is passed in the URL path exactly, with no extra whitespace, quotes, or truncation.

Confirm your base URL and authentication

A 404 can also come from calling the wrong host or path, so check that requests go to https://relaydance.com/v1. The service is OpenAI compatible: "set base_url to https://relaydance.com/v1 and keep your OpenAI SDK"(According to the official relaydance.com/docs). Authentication uses the header Authorization: Bearer YOUR_API_KEY, with keys created at https://relaydance.com/console. If the base URL still points at the default OpenAI host, or you poll a different path than the submission endpoint, the task_id will not resolve. See https://relaydance.com/docs for the request contract and https://relaydance.com/models for live per-model rates.

Steps to diagnose and fix a 404

Work through the polling flow in order to isolate the mismatch.

  1. Re-read the POST /v1/video/generations response and copy the exact task_id.
  2. Confirm the submission returned a 2xx status; a failed submission creates no task.
  3. Set base_url to https://relaydance.com/v1 and keep the OpenAI SDK.
  4. Poll GET /v1/video/generations/{task_id} with the id in the URL path, not the body.
  5. Send header Authorization: Bearer YOUR_API_KEY on every poll.
  6. Wait for status to reach succeeded or failed, then read the video url.

As an alternative to polling, set metadata.callback_url so the final state is POSTed to your server via webhook, avoiding repeated GET calls.

Reference limits that can cause submission errors

If your submission returns an error (and therefore no pollable task_id), a request that exceeds reference media limits is one cause. Per request you may include up to 9 reference images, 3 reference videos, and 3 audio tracks, with clips up to 15 seconds; reference media go in metadata.content[] and are cited in the prompt as @image1 to @imageN. Because "failed or errored requests are never billed"(According to the official relaydance.com docs), an over-limit request is not billed but also yields nothing to poll. Confirm the submission succeeded before assuming the 404 is a polling bug.

Model rates you may be polling for

Pricing is pay-as-you-go per generated video, listed live at https://relaydance.com/models.

Model / modeRate
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

FAQ

Does a 404 mean I was charged for the task? No. Failed or errored requests are never billed, and a 404 means no matching task was found to bill or return.

Can I avoid polling entirely? Yes. Set metadata.callback_url and the final state is POSTed to your server as a webhook instead of polling GET.

Where do I confirm the endpoints and base URL? See https://relaydance.com/docs for the OpenAI compatible contract and base URL https://relaydance.com/v1, and https://relaydance.com/models for per-model rates.

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