eroq

API reference · Media

Video · job status

Poll an async render until the clip is ready.

GET/v1/videos/generations/{id}free

Free to call, as often as you like — every few seconds is the intended cadence. status walks processing → succeeded (the clip is in data, exactly the shape image generation uses) or failed (an error object explains, and the credits were already refunded).

While processing, phase tells you where the render is: queued (waiting for a free render slot — a busy period can hold it there for a while) or generating (a slot picked it up). Both are healthy — keep polling.

A finished job carries generation_ms — the wall-clock the render took end-to-end (queue + generation), in milliseconds. Handy to show your own users how long a render ran.

Job ids are scoped to your account and expire 24 hours after creation; persist the clip (yours to keep, or store: true at submit) before then.

curl https://eroq.ai/v1/videos/generations/GENERATION_ID \
  -H "Authorization: Bearer $EROQ_API_KEY"
/v1/videos/generations/{id}
→ GET /v1/videos/generations/0b52…
Press run — this replays a real exchange from the docs' own data. No key, no request, no charge.

Response

200 · application/json
{
  "id": "b7e6c2d4-…",
  "object": "video.generation",
  "status": "succeeded",
  "created": 1756118400,
  "model": "seedance-2-0-mini",
  "duration": "5s",
  "data": [{ "url": "https://cdn.eroq.ai/…/video.mp4?token=…&expires=…", "content_type": "video/mp4", "library_id": "5c1d…" }],
  "generation_ms": 138000,
  "usage": { "credits_spent": 45, "credits_remaining": 887 }
}