Discount on all models + if you follow us on twitter and hit us on dm you will get free credit to your email hurry up 🔥🔥🔥 click here
Any issues any issue at all join our discord or use the feedback system and report it we will solve it faster than you think ̲𝖢̲𝗅̲𝗂̲𝖼̲𝗄̲ ̲𝗁̲𝖾̲𝗋̲𝖾̲ it will redirect to discord server.
GET · /api/v1/generations/{id}

Read a generation.

Returns the current status of a generation you submitted. Use this to poll until the job finishes and the output_url is ready.

Request

GET /api/v1/generations/5b91a581-ee19-4f86-9fea-bd29471d69d5 HTTP/1.1
Host: vivix-atelier.vercel.app
Authorization: Bearer vvx_live_…

Path params

FieldTypeNotes
idstring (uuid)The generation_id returned by /api/v1/generate.

Response · pending

While the job is in the queue or rendering:

HTTP/1.1 200 OK
{
  "generation_id":    "5b91a581-ee19-4f86-9fea-bd29471d69d5",
  "status":           "processing",
  "model":            "grok-imagine-image-quality",
  "credits_estimate": 211,
  "elapsed_ms":       4200,
  "created_at":       "2026-05-10T12:34:56Z"
}

Response · completed

HTTP/1.1 200 OK
{
  "generation_id": "5b91a581-ee19-4f86-9fea-bd29471d69d5",
  "status":        "completed",
  "model":         "grok-imagine-image-quality",
  "output_url":    "https://pub-364da8d08c644542b169fbc7255349e7.r2.dev/5b91a581-ee19-4f86-9fea-bd29471d69d5.jpg",
  "output_urls":   ["https://pub-…/5b91a581-ee19-4f86-9fea-bd29471d69d5.jpg"],
  "credits_used":  211,
  "duration_ms":   12420,
  "created_at":    "2026-05-10T12:34:56Z",
  "completed_at":  "2026-05-10T12:35:08Z"
}

output_url is the primary asset; output_urls is the full set when you requested number_results > 1 on an image model. Both are public R2 URLs — fetch without auth.

Response · failed

HTTP/1.1 200 OK
{
  "generation_id": "5b91a581-ee19-4f86-9fea-bd29471d69d5",
  "status":        "failed",
  "error":         "PROVIDER_ERROR",
  "message":       "Underlying model returned an error.",
  "credits_used":  0,
  "created_at":    "2026-05-10T12:34:56Z",
  "completed_at":  "2026-05-10T12:35:01Z"
}

Failed jobs refundthe credit charge automatically — you're only billed for completed work. Retry with the same body if it was transient (rate-limit on the provider side, network blip).

Status values

StatusMeaning
pendingQueued. Will pick up within a few seconds usually.
processingActively rendering on the underlying provider.
completedDone. output_url is set.
failedErrored. credits_used = 0; refund already applied.
Recommended polling interval: 2 seconds for image, 4 secondsfor video. Polling counts against your rate limit (240/min Pro, 600/min Ultimate) — at 2s intervals you'll burn 30 calls/min just polling, which is well within budget.

Errors

  • 401 KEY_INVALID — bad key
  • 403 NOT_YOURS — the generation_id belongs to a different account
  • 404 NOT_FOUND — no generation with that id exists (or it's older than the retention window)

Where to next