---
title: "Get one generation"
method: GET
path: "/v1/gallery/{uuid}"
tags: ["Gallery"]
---

# Get one generation

`GET /v1/gallery/{uuid}`

## Request

- Base URL: `https://contentmaschine.ai/api`
- URL: `https://contentmaschine.ai/api/v1/gallery/{uuid}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://contentmaschine.ai/api/oauth/authorize`, token URL `https://contentmaschine.ai/api/oauth/token`)

Returns a single item you own, including its full `input_data`/`output_data` and a download-ready `file` when available. NOTE the path parameter is the FILE uuid, which is what the list response returns as `uuid` - the generation uuid is a different value and is returned as `generation_uuid`. See `x-breaking-changes`.

## Path parameters

- `uuid` string, uuid, required

## Response `200`

The generation

- object
  - `success` boolean
  - `data` object
    - `uuid` string, uuid: The FILE uuid. Use it with GET /v1/gallery/{uuid}, GET /v1/files/{uuid}/download and the other /v1/files routes. It was the GENERATION uuid before Phase 14 - see x-breaking-changes.
    - `generation_uuid` string, uuid, nullable: The generation that produced this item. This is what `uuid` used to carry.
    - `type` string: Specific generation type, e.g. image_generation, video_generation, caption_generation.
    - `category` 'images' | 'videos' | 'audio' | 'text' | 'files': The scope container this item belongs to. Same vocabulary as the read scopes (`images:read` reads `images`). Was singular (`image`/`video`) before Phase 14 - see x-breaking-changes.
    - `container` 'images' | 'videos' | 'audio' | 'text' | 'files': Identical value to `category`, named in the scope vocabulary. `category` is the field existing consumers read; `container` is the explicit synonym.
    - `status` 'completed' | 'generating' | 'failed'
    - `title` string, nullable
    - `created_at` string, date-time
    - `completed_at` string, date-time, nullable
    - `credits_used` number, nullable
    - `file` object, nullable: Present for completed file-backed items (images/videos). null otherwise.
      - `uuid` string
      - `download_url` string: Authenticated download path; accepts the same Bearer token.
      - `mime_type` string, nullable
      - `size_bytes` integer, nullable
      - `kind` string, nullable: image|video|document|…
    - `text` string, nullable: Text output for text generations (captions, transcripts, etc.).
    - `input_data` object: The original request payload.
    - `output_data` object: The result payload, with internal error/diagnostic fields redacted.
    - `error` boolean: Present and true when the generation failed (status=failed). Internal error detail is not exposed.

## Other responses

- `401`: Missing or invalid API key
- `404`: Not found or not owned by you
- `default`: Any other error. Every failure this API emits uses the same envelope; branch on `error.type`, never on `error.message`, and quote `error.correlation_id` to support.

---

[API](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api.md) · [All operations](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/revisions/28c74f46051c?raw)
