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

# Gemini Omni Video

> Create multimodal videos using text, images, video clips, and character references.

Create a multimodal video generation task using the `gemini-omni-video` model.

## Create a Video Generation Task

```http theme={null}
POST /api/v1/jobs/createTask
```

## Authentication

```http theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Quota

The system provides **7 quota units** for content inputs.

| Input                |         Cost |    Limit |
| -------------------- | -----------: | -------: |
| Image (`image_urls`) |  1 unit each | 7 images |
| Video (`video_list`) | 2 units each |  1 video |

**Constraint:** `(images) + (videos × 2) ≤ 7`

### Examples

* 1 video + leaving 2 image slots.
* With no videos, up to 7 images can be supplied.

## Request

```json theme={null}
{
  "model": "gemini-omni-video",
  "input": {
    "prompt": "Create a futuristic night city short film with a slow push-in shot as the character walks out from a neon-lit street.",
    "image_urls": ["https://example.com/assets/scene-1.png"],
    "video_list": [{"url": "https://example.com/assets/source-video.mp4", "start": 0, "ends": 10}],
    "duration": "4",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "seed": 0
  }
}
```

## Parameters

<ParamField body="model" type="string" required>
  Must be `gemini-omni-video`.
</ParamField>

### `input` Parameters

<ParamField body="input" type="object" required>
  The `input` object contains the parameters used to generate the video.

  <ParamField body="prompt" type="string" required>
    Use `prompt` to describe the video content, style, camera and character action you want to generate in video.

    **Maximum length:** `20,000 ` characters.
  </ParamField>

  <ParamField body="image_urls" type="string[]">
    Use the provided image URLs for characters, scenes, styles, or storyboard guidance. <br /> The `image_urls` must contain the URL of an uploaded image. The value must be an uploaded file URL, not the file content itself.

    Supported image constraints:

    * **Maximum file size:** 20 MB
    * **Maximum file:** 7
  </ParamField>

  <ParamField body="video_list" type="object[]">
    Use the provided each video url defines a source video and the trim range to use during generation. . <br /> The `video_list` must contain the URL of an uploaded video. The value must be an uploaded file URL, not the file content itself.

    * **Each file maximum size:** 100 MB.
    * Total duration of all videos not exceeding `30` seconds.
    * `ends` should be greater than `start`
    * Trim range must not exceed 10 seconds.
    * Maximum 1 video.

    <ParamField body="url" type="string" required>
      Video URL for the generation.
    </ParamField>

    <ParamField body="start" type="number" required>
      Start time in seconds.

      * Must be `>=0`.
    </ParamField>

    <ParamField body="ends" type="number" required>
      End time in seconds.

      **Note:**  It should be greater than start.The difference between the end time and the start time must not exceed 10s

      * Must be `>=0`.
    </ParamField>
  </ParamField>

  <ParamField body="duration" type="number">
    When video input is provided, the model determines the output duration automatically and `duration` does not take effect.

    Allowed values: `4`, `6`, `8`, `10`.
  </ParamField>

  <ParamField body="aspect_ratio" default="16:9" type="string">
    The aspect ratio of the generated video.

    Supported values: `16:9` and `9:16`. **Default:** `16:9`
  </ParamField>

  <ParamField body="resolution" type="string">
    Specify the resolution of the generated video.

    Supported values:

    * `720p`
    * `1080p`
    * `4k`

    **Default:** `720p`
  </ParamField>

  <ParamField body="seed" type="number">
    The seed can be used to reproduce results.

    * Minimum: `0`
    * Maximum: `2147483647`
  </ParamField>
</ParamField>

## Successful Response

<ResponseField name="code" type="number">
  Response status code.
</ResponseField>

<ResponseField name="msg" type="string">
  Response message. Contains the error description when the request fails.

  **Example:** `success`
</ResponseField>

<ResponseField name="data" type="object" required>
  The task data object containing task id.

  <ResponseField name="taskId" type="string" required>
    The unique identifier for this task.

    **Example:** `task_123456`
  </ResponseField>
</ResponseField>

Use the returned `taskId` with the unified **Get Task Details** endpoint to check progress and retrieve results.

<Card title="Get Task Details" icon="search" href="/get-task-detail">
  Check task status, monitor generation progress, and retrieve results.
</Card>
