---
title: "Get a video job"
method: GET
path: "/v1/videos/{id}"
tags: ["Videos"]
---

# Get a video job

`GET /v1/videos/{id}`

## Request

- Base URL: `https://api.naga.ac`
- URL: `https://api.naga.ac/v1/videos/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/naga/apis/nagaai-api/docs/v1/videos/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a video job as it stands now. Requires the API key of the account that created it. `urls` and `usage` appear when `status` is `completed`, `error` when it is `failed`.

## Path parameters

- `id` string, required

## Response `200`

The job as it stands now.

- VideoJob: A video job as the gateway reports it.
  - `id` string, required: The job id; the polling and content URLs carry it.
  - `object` string, required: Always `video.generation`.
  - `model` string, required: The model the job was submitted for, as the caller named it.
  - `status` string, required: `pending`, `in_progress`, `completed` or `failed`.
  - `polling_url` string, required: Where to poll this job.
  - `created_at` integer, required: Unix seconds when the job was accepted.
  - `completed_at` integer, nullable: Unix seconds when the job reached `completed` or `failed`.
  - `duration` integer, required: The requested clip length in seconds.
  - `resolution` string, required: The requested resolution.
  - `aspect_ratio` string, required: The requested aspect ratio.
  - `urls` string[], nullable: Links to the finished file; present once the job is `completed`.
  - `usage` object, nullable: What the job was charged; present once the job is `completed`.
    - `cost` string, required: Credits charged, as a decimal string.
    - `seconds` integer, required: Seconds of video the charge counts.
  - `error` object, nullable: Why the job failed; present only when it is `failed`. A failed job is not charged.
    - `message` string, required: A short, provider-neutral reason.
    - `type` string, required: `upstream_error`, `moderation` or `timeout`.

## Other responses

- `401`: The API key is missing, malformed, disabled, or does not belong to an account that may call this route.
- `404`: No job with this id belongs to the account. Another account's job answers the same way.
- `500`: The gateway failed for a reason of its own. Report it — this status marks NagaAI's own bugs.
- `503`: A store the gateway needs did not respond. `Retry-After`, when present, carries the suggested wait.

## Changes

- **2026-11-03** `b697d49fa1f9`: 1 info
  - endpoint added

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

---

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