---
title: "Get a clip by ID"
method: GET
path: "/clips/{id}"
tags: ["Clips"]
---

# Get a clip by ID

`GET /clips/{id}`

Returns a clip with its generation status. Poll every 10-15 seconds after `POST /clips` until `status` is `completed` (then download from `outputUrl`) or `failed` (see `errorMessage`; credits are refunded automatically).

## Path parameters

- `id` string, uuid, required — Clip ID from `POST /clips`.

## Response `200`

OK

- object
  - `id` string, uuid, required — Clip ID.
  - `title` string, required — Clip title.
  - `status` string, required — Generation status: `pending`, `processing`, `completed`, or `failed`.
  - `modelKey` string, required — The model used.
  - `aspectRatio` string, required — Clip aspect ratio.
  - `resolution` string, nullable, required — Output resolution.
  - `duration` number, nullable, required — Clip length in seconds.
  - `prompt` string, required — The text prompt used, if any.
  - `referenceFrames` object[], required — Input images used for generation.
    - `url` string, required — Image URL.
    - `role` string, required — How the image was used: `first_frame`, `last_frame`, or `reference_image`.
  - `outputUrl` string, nullable, required — Download URL for the finished MP4 clip. `null` until `status` is `completed`.
  - `errorMessage` string, nullable, required — Why generation failed, when `status` is `failed`.
  - `createdAt` string, date-time, required — When the clip was created (ISO 8601).

## Other responses

- `401` — 401
- `402` — 402
- `403` — 403

---

[API](https://skmtc.net/aituber/apis/aituber-api.md) · [All operations](https://skmtc.net/aituber/apis/aituber-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aituber/aituber-api/revisions/35448566f143/schema)
