---
title: "Retrieve video"
method: GET
path: "/v1/videos/{video_id}"
---

# Retrieve video

`GET /v1/videos/{video_id}`

## Request

- Base URL: `https://api.llmgateway.io`
- URL: `https://api.llmgateway.io/v1/videos/{video_id}`
- Auth: HTTP bearer

Retrieves the current state of a video generation job.

## Path parameters

- `video_id` string, required

## Response `200`

Video job state.

- object
  - `id` string, required
  - `object` 'video', required
  - `model` string, required
  - `status` 'queued' | 'in_progress' | 'completed' | 'failed' | 'canceled' | 'expired', required
  - `progress` integer, nullable, required
  - `created_at` number, required
  - `completed_at` number, nullable, required
  - `expires_at` number, nullable, required
  - `error` object, nullable, required
    - `code` string
    - `message` string, required
    - `details` unknown
  - `content` object[]
    - `type` 'video', required
    - `url` string, uri, required
    - `mime_type` string, nullable
  - `usage` object: Billed cost in USD. Present once the job reaches a terminal status and has been billed.
    - `cost` number, required
    - `cost_details` object, required
      - `video_output_cost` number, required
      - `image_input_cost` number, required

## Other responses

- `400`: Invalid request body or parameters.
- `401`: Missing or invalid API key.
- `402`: Insufficient credits or plan limits reached.
- `403`: Forbidden request or upstream response.
- `404`: Unknown model or upstream not-found response.
- `408`: Request timeout.
- `410`: Archived or unavailable project.
- `413`: Request too large.
- `415`: Unsupported media type.
- `429`: Rate limited. Response headers describe only LLMGateway-enforced limits; upstream provider headers are not forwarded. Honor Retry-After when present.
- `500`: Internal server error.
- `502`: Failed to connect to the upstream provider.
- `503`: Service unavailable upstream response.
- `504`: Upstream provider timeout.
- `529`: Gateway overloaded.

## Changes

- **2026-09-23** `987f32e6de74`: 1 info
  - added the optional property `usage` to the response with the `200` status
- **2026-09-06** `3ab255a22d1b`: 11 breaking, 4 info
  - the response property `error/code` became nullable for the status `400`
  - the response property `error/code` became nullable for the status `401`
  - the response property `error/code` became nullable for the status `402`
  - the response property `error/code` became nullable for the status `403`
  - …11 more

[Operation history](https://skmtc.dev/llmgateway/apis/llmgateway-api/changes/v1/videos/:video_id/get.md)

---

[API](https://skmtc.dev/llmgateway/apis/llmgateway-api.md) - [All operations](https://skmtc.dev/llmgateway/apis/llmgateway-api/llms.txt) - [OpenAPI document](https://skmtc.dev/llmgateway/apis/llmgateway-api/revisions/ded707bdf4a1?raw)
