GET /v1/generations/{id}
Read a generation
One generation. Pass `wait` to hold the response until it is `ready` or `failed`.
Permission
A key with chosen permissions needs media.read. A key made with every permission may always call it.
Parameters
id (path)string · requireduuid
waitinteger · optionalHold the response up to this many seconds until the work settles. 0 answers at once.
default 0 · min 0 · max 60
Response: Generation
200 · One image, clip, voice-over or piece of music.
object"generation"idstringuuid
typestringWhat was made. New values may be added; treat an unknown one as opaque.
one of "image", "clip", "voiceover", "music", "tool"
statusstring`ready` and `failed` are final.
one of "queued", "generating", "ready", "failed"
modelstringThe model id it was made with (`GET /v1/models`).
promptstringaspect_ratiostring | nullNull for audio.
output_urlstring | nullThe finished file, once `ready`. A signed link that works for about an hour; read the generation again for a fresh one.
uri
thumbnail_urlstring | nullA small still of the result, for a grid. Null for audio and while it works.
uri
creditsnumber | nullCredits charged. Zero when your own provider key or the free allowance paid.
paid_bystring | nullWho paid: "credits", "house" (the free allowance), "server" (a server that charges nothing), or the vendor of your own key ("replicate", "fal", …).
errorstring | nullWhy it failed. Null otherwise.
ready_in_secondsnumber | nullRoughly how long an unfinished generation has left; 0 means past its usual time.
recipe_idstring | nullThe recipe it was made with, if any.
uuid
created_atstringdate-time
app_urlstringOpens it in the app.
uri
Example
The required fields only, each a placeholder. Replace them before sending.
curl "https://api.meetkuro.com/v1/generations/<id>" \
-H "Authorization: Bearer $KURO_API_KEY"import { Kuro } from "@meetkuro/sdk";
const kuro = new Kuro(); // reads KURO_API_KEY
await kuro.generations.get("<id>");