> ## 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.

# VideoGenerationRequest

## Example Usage

```typescript theme={null}
import { VideoGenerationRequest } from "@openrouter/sdk/models";

let value: VideoGenerationRequest = {
  model: "google/veo-3.1",
};
```

## Fields

| Field             | Type                                                                                        | Required             | Description                                                                                                                                                                                                                                                                                                             | Example                                                                        |
| ----------------- | ------------------------------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `aspectRatio`     | [models.VideoGenerationRequestAspectRatio](../models/videogenerationrequestaspectratio.mdx) | :heavy\_minus\_sign: | Aspect ratio of the generated video                                                                                                                                                                                                                                                                                     | 16:9                                                                           |
| `callbackUrl`     | *string*                                                                                    | :heavy\_minus\_sign: | URL to receive a webhook notification when the video generation job completes. Overrides the workspace-level default callback URL if set. Must be HTTPS.                                                                                                                                                                | [https://example.com/webhook](https://example.com/webhook)                     |
| `creativity`      | *number*                                                                                    | :heavy\_minus\_sign: | Creativity level for video upscaling models only. This parameter is not supported by video generation models.                                                                                                                                                                                                           | 1                                                                              |
| `duration`        | *number*                                                                                    | :heavy\_minus\_sign: | Duration of the generated video in seconds                                                                                                                                                                                                                                                                              | 8                                                                              |
| `frameImages`     | [models.FrameImage](../models/frameimage.mdx)\[]                                            | :heavy\_minus\_sign: | Images to use as the first and/or last frame of the generated video. Each image must specify a frame\_type of first\_frame or last\_frame.                                                                                                                                                                              |                                                                                |
| `generateAudio`   | *boolean*                                                                                   | :heavy\_minus\_sign: | Whether to generate audio alongside the video. Defaults to the endpoint's generate\_audio capability flag, false if not set.                                                                                                                                                                                            | true                                                                           |
| `inputReferences` | *models.InputReference*\[]                                                                  | :heavy\_minus\_sign: | Reference assets to guide video generation. Accepts image, audio, and video references. Audio and video references are only honored by providers that support them (including BytePlus Seedance generation 2 and newer); other providers use image references and ignore the rest.                                      |                                                                                |
| `model`           | *string*                                                                                    | :heavy\_check\_mark: | N/A                                                                                                                                                                                                                                                                                                                     |                                                                                |
| `previousJobId`   | *string*                                                                                    | :heavy\_minus\_sign: | ID of a completed video job to edit or extend, as returned by the submit response. The new job runs on the same model and endpoint that produced the previous one. Only models that support continuation accept this field.                                                                                             | gen-vid-1789493115-a1B2c3D4e5F6g7H8i9J0                                        |
| `prompt`          | *string*                                                                                    | :heavy\_minus\_sign: | Text prompt describing the video to generate. Optional for models that support generating a video from image input alone; required by all other models.                                                                                                                                                                 | A serene mountain landscape at sunset                                          |
| `provider`        | [models.VideoGenerationRequestProvider](../models/videogenerationrequestprovider.mdx)       | :heavy\_minus\_sign: | Provider-specific passthrough configuration                                                                                                                                                                                                                                                                             |                                                                                |
| `resolution`      | [models.VideoGenerationRequestResolution](../models/videogenerationrequestresolution.mdx)   | :heavy\_minus\_sign: | Resolution of the generated video                                                                                                                                                                                                                                                                                       | 720p                                                                           |
| `seed`            | *number*                                                                                    | :heavy\_minus\_sign: | If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.                                                                                                               |                                                                                |
| `sessionId`       | *string*                                                                                    | :heavy\_minus\_sign: | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234                                                                   |
| `size`            | *string*                                                                                    | :heavy\_minus\_sign: | Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable with resolution + aspect\_ratio.                                                                                                                                                                              | 1280x720                                                                       |
| `trace`           | [models.TraceConfig](../models/traceconfig.mdx)                                             | :heavy\_minus\_sign: | Metadata for observability and tracing. Known keys (trace\_id, trace\_name, span\_name, generation\_name, parent\_span\_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.                                                                          | \{<br />"trace\_id": "trace-abc123",<br />"trace\_name": "my-app-trace"<br />} |
| `upscaleFactor`   | *number*                                                                                    | :heavy\_minus\_sign: | Upscale factor for video upscaling models only. This parameter is not supported by video generation models.                                                                                                                                                                                                             | 2                                                                              |
| `user`            | *string*                                                                                    | :heavy\_minus\_sign: | A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.                                                                                                                                                                              | user-1234                                                                      |
