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

# VideoGenerationResponse

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `Error` | `*string` | ➖ | N/A | |
| `ExpiresAt` | `*int64` | ➖ | Unix timestamp in seconds when OpenRouter's stored copy of the outputs stops being available. Present only when that copy exists. | |
| `GenerationID` | `*string` | ➖ | The generation ID associated with this video generation job. Available once the job has been processed. | |
| `ID` | `string` | ✅ | The video job ID, in the `gen-vid-<timestamp>-<20 alphanumerics>` generation ID format. Pass it as `previous_job_id` to continue the generation. | |
| `PollingURL` | `string` | ✅ | N/A | |
| `Status` | [components.VideoGenerationResponseStatus](../../models/components/videogenerationresponsestatus.mdx) | ✅ | N/A | |
| `UnsignedUrls` | \[]`string` | ➖ | OpenRouter content URLs for each output. They need your API key in the `Authorization` header and keep working for as long as the output is available. | |
| `Urls` | \[]`string` | ➖ | Signed download URLs for OpenRouter's stored copy of each output, usable without an API key until `expires_at`. Anyone holding a URL can download that output until it expires, so treat it like a secret. Present only when the stored copy exists. | |
| `Usage` | [\*components.VideoGenerationUsage](../../models/components/videogenerationusage.mdx) | ➖ | Usage and cost information for the video generation. Available once the job has completed. | \{<br />"cost": 0.5,<br />"is\_byok": false<br />} |
