> ## 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 | | | `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. | | | `size` | *string* | :heavy\_minus\_sign: | Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable with resolution + aspect\_ratio. | 1280x720 | | `upscaleFactor` | *number* | :heavy\_minus\_sign: | Upscale factor for video upscaling models only. This parameter is not supported by video generation models. | 2 |