---
title: "Get a generation"
method: GET
path: "/generations/{generation_id}"
tags: ["Generations"]
---

# Get a generation

`GET /generations/{generation_id}`

Poll for generation status and output. On completion, the response includes presigned URLs to download the generated images.

## Path parameters

- `generation_id` string, uuid, required

## Response `200`

Generation status

- GenerationResponse — Generation status and output
  - `id` string, uuid, required — Generation identifier
  - `type` 'image' | 'image_edit' | 'video' | 'video_edit' | 'video_reframe' | 'layering', required — The kind of generation to perform
  - `state` 'queued' | 'processing' | 'completed' | 'failed', required — Current state of the generation
  - `model` 'uni-1' | 'uni-1-max' | 'ray-3.2', required — Model identifier. `uni-1` is the default image tier; `uni-1-max` produces higher-quality output than `uni-1` at a higher per-image price. `ray-3.2` is the public video model for text-to-video, image-to-video, and video-to-video editing.
  - `created_at` string, required — Creation timestamp
  - `output` GenerationOutput[] — Generated outputs (populated on completion)
    - `type` string, required — Media type (e.g. image, video)
    - `url` string, uri, required — Presigned URL (1hr expiry)
    - `layer` GenerationOutputLayer — Per-layer semantics for a type=layering output
      - `index` integer, required — Layer position, front-to-back; the last layer is the background
      - `label` string, required — Short (1-2 word) layer name
      - `description` string, required — Complete-element caption for the layer's content
      - `alpha_hint` string, required — Edge treatment of the layer's transparency — soft (hair/fur/glass), hard (solid edges), or none (the opaque background)
  - `failure_reason` string, nullable — Human-readable failure description
  - `failure_code` 'content_moderated' | 'generation_failed' | 'budget_exhausted' | 'output_not_found' | 'image_too_large' | 'unsupported_format' | 'corrupt_input' | 'invalid_request' | 'rate_limited' — Machine-readable failure code for programmatic handling

## Other responses

- `401` — Missing or invalid API key
- `404` — Generation not found or belongs to another client

---

[API](https://skmtc.net/lumalabs/apis/luma-agents-api.md) · [All operations](https://skmtc.net/lumalabs/apis/luma-agents-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lumalabs/luma-agents-api/versions/2135bbde249c/schema)
