eroq

API 레퍼런스 · Media

Image · job status

Poll an async render until the image is ready.

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

Free to call, as often as you like — every few seconds is the intended cadence. status walks processing → succeeded (the image is in data) 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 and the frames are being drawn). 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 workspace) and expire 24 hours after creation; persist the image (yours to keep, or store: true at submit) before then.

data[0].url is a signed CDN URL valid for 30 minutes — poll the job again (or read /v1/creations) for a fresh one. A private render (private: true) answers once with b64_json instead and is stored nowhere.

curl https://eroq.ai/v1/images/generations/GENERATION_ID \
  -H "Authorization: Bearer $EROQ_API_KEY"
/v1/images/generations/{id}
→ GET /v1/images/generations/0b52…
실행을 눌러 보세요 — 문서에 담긴 데이터로 실제 요청과 응답을 그대로 재현해요. 키도, 요청도, 요금도 없어요.

응답

200 · application/json
{
  "id": "b7e6c2d4-…",
  "object": "image.generation",
  "status": "succeeded",
  "created": 1756118400,
  "model": "eroq-krea2",
  "data": [{ "url": "https://cdn.eroq.ai/…/image.webp?token=…&expires=…", "content_type": "image/webp", "library_id": "…" }],
  "generation_ms": 4200,
  "usage": { "credits_spent": 10, "credits_remaining": 977 }
}