> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hypergate.store/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Video Status

> GET /v1/videos/{id} — poll a job until it completes.

## Endpoint

```
GET /v1/videos/{id}
```

## Request

<ParamField header="Authorization" type="string" required>
  `Bearer <your-token>`
</ParamField>

<ParamField path="id" type="string" required>
  Job ID returned from `POST /v1/videos`.
</ParamField>

## Example

```bash theme={null}
curl https://hypergate.store/v1/videos/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
  -H "Authorization: Bearer <your-token>"
```

## Responses

### In progress

```json theme={null}
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "model": "kwaivgi/kling-v2.5-pro/text-to-video",
  "status": "processing",
  "created_at": "2026-08-14T08:00:00.000Z"
}
```

### Completed `200`

```json theme={null}
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "model": "kwaivgi/kling-v2.5-pro/text-to-video",
  "status": "completed",
  "created_at": "2026-08-14T08:00:00.000Z",
  "video_url": "https://hypergate.store/media/3fa85f64.mp4",
  "expires_at": "2026-09-13T08:00:00.000Z"
}
```

### Failed `200`

```json theme={null}
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status": "failed",
  "created_at": "2026-08-14T08:00:00.000Z",
  "error": { "code": "generation_failed" }
}
```

## Polling tips

* Poll every **3–5 seconds**
* Generation typically takes **1–5 minutes**
* `video_url` is available for **30 days** after completion (`expires_at`)
* A `404` means the job doesn't exist or belongs to a different team
