---
type: AI Model
id: gemini-omni-1-1
title: Gemini Omni 1.1 Flash API
provider: Google
description: "Google's Gemini Omni 1.1 Flash is a multimodal video model that handles text-to-video, image-to-video, reference-to-video, and video-to-video editing through a single API. Clip length is selectable from 3 to 10 seconds via the duration parameter; video-to-video edits inherit the source clip's length. Successor to Gemini Omni Flash, which Google retires on 30 September 2026."
resource: https://www.pixazo.ai/models/gemini-omni-1-1
docs_url: https://www.pixazo.ai/models/gemini-omni-1-1
trending: true
latest_version: v1.1
tags:
  - trends
  - text-to-video
  - image-to-video
  - reference-to-video
  - video-to-video
  - google
variants:
  - id: gemini-omni-1-1-v1
    name: Gemini Omni 1.1 Flash
    version: 1.1 Flash
    capabilities:
      - Text to Video
      - Image to Video
      - Reference to Video (Ref Images to Video)
      - Video to Video(video editing)
timestamp: 2026-08-31T16:52:32.726Z
---

# Gemini Omni 1.1 Flash API

> Provider: **Google**
> Source: https://www.pixazo.ai/models/gemini-omni-1-1

Google's Gemini Omni 1.1 Flash is a multimodal video model that handles text-to-video, image-to-video, reference-to-video, and video-to-video editing through a single API. Clip length is selectable from 3 to 10 seconds via the duration parameter; video-to-video edits inherit the source clip's length. Successor to Gemini Omni Flash, which Google retires on 30 September 2026.

## Gemini Omni 1.1 Flash

### Text to Video

## Gemini Omni 1.1 Flash Text to Video API Documentation

Generate a video from a text prompt only. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`. Typical generation time is ~36s.

Backed by Google's `gemini-omni-1.1-flash`.

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Text to Video - Gemini Omni 1.1 Flash

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.",
  "aspect_ratio": "16:9"
}
```

```
import requests

url = "https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.",
  "aspect_ratio": "16:9"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.",
  "aspect_ratio": "16:9"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.", "aspect_ratio": "16:9"}'
```

## Output

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=gemini-omni-1-1&operation=text-to-video-request)

## Webhook (Optional)

Instead of polling, you can receive a webhook callback when the request reaches a terminal state. Provide a webhook URL via header on the submit request.

Header

Required

Description

`X-Webhook-URL`

Yes (to enable)

HTTPS endpoint on your server that will receive the `POST` callback. Must respond `2xx` within a few seconds.

`X-Webhook-Mode`

No

`terminal` (default) — fires once at the final status (`COMPLETED`/`FAILED`/`ERROR`). `sync` — fires on every poll cycle plus the terminal event, and caps the queue's polling delay at 15s for tighter progress updates.

### Example: enable webhook

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/text-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook/callback' \
  --data-raw '{"prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.", "aspect_ratio": "16:9"}'
```

### Callback Payload

Your endpoint receives a `POST application/json` with the same shape as the `GET /v2/requests/status/{request_id}` response. Example terminal callback (mode `terminal`):

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

### Failure callback shape

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "gemini-omni-1-1",
  "error": "Description of the failure",
  "output": null,
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:22",
  "completed_at": null
}
```

#### Delivery semantics

-   **terminal** mode: one webhook callback when the request is `COMPLETED` or `ERROR`/`FAILED`.
-   **sync** mode: a webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`prompt`

Yes

string

—

—

Text prompt describing the video to generate.

`aspect_ratio`

No

string

`16:9`

`16:9`, `9:16`

Output video aspect ratio.

`duration`

No

integer

—

3–10 (integer seconds)

Length of the generated video, in seconds. Accepted values are integers 3–10. Optional — if you omit it, the model decides the clip length, so send an explicit value when the length matters. Billing follows the actual output length, so a shorter clip costs proportionally less.

## Example Request

```
{
  "prompt": "A golden retriever running through a sunlit meadow, slow motion, cinematic.",
  "aspect_ratio": "16:9"
}
```

## Example Response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — invalid or missing parameters (e.g. missing `prompt`, missing source image/video).

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

403

Forbidden.

429

Too many requests.

500

Internal server error.

## Error Responses

```
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

A failed generation is reported via the status endpoint (or webhook) with `status: "FAILED"` or `"ERROR"` and an `error` message. Malformed requests (e.g. a missing required field) are rejected immediately with `400`.

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`). Typical generation time is ~36s.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

`QUEUED`, `PROCESSING`, `COMPLETED`, `FAILED`, or `ERROR`.

model\_id

string

The model that handled the request (`gemini-omni-1-1`).

output.media\_url

array

URL(s) to the generated MP4 video.

output.media\_type

string

Always `video/mp4`.

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

polling\_url

string

Status URL for this request (submit response only).

error

string

Error message when `status` is `FAILED`/`ERROR`.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### Pricing

Billed per second of output video, measured from the generated file, so a shorter clip costs proportionally less. Failed requests are not billed. The current rate is shown on this model's page.

## Notes & Limitations

Topic

Detail

**Audio**

Generated automatically for every video — there is no on/off parameter. Describe the sound effects, music, or dialogue you want directly in `prompt`.

**Prompt controls**

No separate negative-prompt, temperature, or sampling parameter. Put exclusions directly in `prompt` (e.g. “no dialogue”). See the Prompting Guide below.

**Language**

English is fully supported; other languages may work but results can vary.

**Generation time**

Varies with duration, resolution, and current API load — longer or higher-resolution videos take longer.

**Watermark**

Every generated video carries an invisible SynthID watermark (not visible to viewers, but programmatically detectable).

**Content safety**

Filters apply to both your prompt and the generated video, and enforcement is region-dependent. Policy-violating prompts or content are blocked.

**Not supported**

Uploading audio references is not supported in the current API version.

## Prompting Guide

The prompt is passed through to the model verbatim, so all of Google’s prompt syntax works as-is.

Technique

How to use it

**Single scene**

By default the model may split into several shots. Force one continuous shot by saying so — “in a single continuous shot”, “no scene cuts”.

**Remove elements**

Use simple negatives in the prompt — “no dialogue”, “no embellishments”, “no extra sound effects”.

**Prompt the audio**

Describe the sound you want — “calm background music”, “a high-energy techno beat”, “a low tinny radio in the background”.

**Timing events**

Use natural language (“after 3 seconds a woman enters”) or timecode syntax: `[0-3s] walking [3-6s] stops and turns [6-10s] starts running`.

**On-screen text**

Quote it exactly — e.g. a street sign that says: “This is an AI generation”.

**Meta-prompting**

Ask for general qualities — “be extremely detailed in your descriptions of characters and environments”.

### Image to Video

## Gemini Omni 1.1 Flash Image to Video API Documentation

Animate a single source image into a video, guided by a text prompt. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`. Typical generation time is ~36s.

Backed by Google's `gemini-omni-1.1-flash`.

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Image to Video - Gemini Omni 1.1 Flash

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.",
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/nano-banana_019f1840-7f48-76a2-3393-d5f174826bae8/output.jpg",
  "aspect_ratio": "9:16"
}
```

```
import requests

url = "https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.",
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/nano-banana_019f1840-7f48-76a2-3393-d5f174826bae8/output.jpg",
  "aspect_ratio": "9:16"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.",
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/nano-banana_019f1840-7f48-76a2-3393-d5f174826bae8/output.jpg",
  "aspect_ratio": "9:16"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.", "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/nano-banana_019f1840-7f48-76a2-3393-d5f174826bae8/output.jpg", "aspect_ratio": "9:16"}'
```

## Output

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=gemini-omni-1-1&operation=image-to-video-request)

## Webhook (Optional)

Instead of polling, you can receive a webhook callback when the request reaches a terminal state. Provide a webhook URL via header on the submit request.

Header

Required

Description

`X-Webhook-URL`

Yes (to enable)

HTTPS endpoint on your server that will receive the `POST` callback. Must respond `2xx` within a few seconds.

`X-Webhook-Mode`

No

`terminal` (default) — fires once at the final status (`COMPLETED`/`FAILED`/`ERROR`). `sync` — fires on every poll cycle plus the terminal event, and caps the queue's polling delay at 15s for tighter progress updates.

### Example: enable webhook

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/image-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook/callback' \
  --data-raw '{"prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.", "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg", "aspect_ratio": "9:16"}'
```

### Callback Payload

Your endpoint receives a `POST application/json` with the same shape as the `GET /v2/requests/status/{request_id}` response. Example terminal callback (mode `terminal`):

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

### Failure callback shape

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "gemini-omni-1-1",
  "error": "Description of the failure",
  "output": null,
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:22",
  "completed_at": null
}
```

#### Delivery semantics

-   **terminal** mode: one webhook callback when the request is `COMPLETED` or `ERROR`/`FAILED`.
-   **sync** mode: a webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`prompt`

Yes

string

—

—

Text prompt describing the motion/scene to animate the image into.

`image_url`

Yes

string (URL)

—

JPEG, PNG, WebP, HEIC, or HEIF

URL of the source image to animate.

`image_urls`

No

string\[\] (URLs)

—

JPEG, PNG, WebP, HEIC, or HEIF

Alternative to `image_url`. Only the first entry is used by this operation — to combine several images in one video, use the Reference to Video operation instead.

`aspect_ratio`

No

string

`16:9`

`16:9`, `9:16`

Output video aspect ratio.

`duration`

No

integer

—

3–10 (integer seconds)

Length of the generated video, in seconds. Accepted values are integers 3–10. Optional — if you omit it, the model decides the clip length, so send an explicit value when the length matters. Billing follows the actual output length, so a shorter clip costs proportionally less.

### Content Item Types & Limits

Type

Max

Format / Size

Description

image

1

JPG, PNG, WEBP, HEIC, HEIF · < 20 MB

Input image to animate.

## Example Request

```
{
  "prompt": "Animate the photo with a gentle camera pan and the subject blinking naturally.",
  "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/nano-banana_019f1840-7f48-76a2-3393-d5f174826bae8/output.jpg",
  "aspect_ratio": "9:16"
}
```

## Example Response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — invalid or missing parameters (e.g. missing `prompt`, missing source image/video).

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

403

Forbidden.

429

Too many requests.

500

Internal server error.

## Error Responses

```
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

A failed generation is reported via the status endpoint (or webhook) with `status: "FAILED"` or `"ERROR"` and an `error` message. Malformed requests (e.g. a missing required field) are rejected immediately with `400`.

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`). Typical generation time is ~36s.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

`QUEUED`, `PROCESSING`, `COMPLETED`, `FAILED`, or `ERROR`.

model\_id

string

The model that handled the request (`gemini-omni-1-1`).

output.media\_url

array

URL(s) to the generated MP4 video.

output.media\_type

string

Always `video/mp4`.

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

polling\_url

string

Status URL for this request (submit response only).

error

string

Error message when `status` is `FAILED`/`ERROR`.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### Pricing

Billed per second of output video, measured from the generated file, so a shorter clip costs proportionally less. Failed requests are not billed. The current rate is shown on this model's page.

## Notes & Limitations

Topic

Detail

**Input image**

JPEG, PNG, WebP, HEIC, or HEIF. Keep the combined inline image data under ~20 MB (Google’s inline-data limit).

**Audio**

Generated automatically for every video — there is no on/off parameter. Describe the sound effects, music, or dialogue you want directly in `prompt`.

**Prompt controls**

No separate negative-prompt, temperature, or sampling parameter. Put exclusions directly in `prompt` (e.g. “no dialogue”). See the Prompting Guide below.

**Language**

English is fully supported; other languages may work but results can vary.

**Generation time**

Varies with duration, resolution, and current API load — longer or higher-resolution videos take longer.

**Watermark**

Every generated video carries an invisible SynthID watermark (not visible to viewers, but programmatically detectable).

**Content safety**

Filters apply to both your prompt and the generated video, and enforcement is region-dependent. Policy-violating prompts or content are blocked.

**Not supported**

Uploading audio references is not supported in the current API version.

**Regional limits**

In the EEA, Switzerland, and the UK, images containing minors cannot be used. Images of certain recognizable (real, identifiable) people are not supported anywhere.

## Prompting Guide

The prompt is passed through to the model verbatim, so all of Google’s prompt syntax works as-is.

Technique

How to use it

**First frame `<FIRST_FRAME>`**

Optionally tag the source image’s role in the prompt — e.g. `<FIRST_FRAME> a woman is walking`. With a single image it is already treated as the start frame; the tag mainly adds clarity in complex prompts.

**Single scene**

By default the model may split into several shots. Force one continuous shot by saying so — “in a single continuous shot”, “no scene cuts”.

**Remove elements**

Use simple negatives in the prompt — “no dialogue”, “no embellishments”, “no extra sound effects”.

**Prompt the audio**

Describe the sound you want — “calm background music”, “a high-energy techno beat”, “a low tinny radio in the background”.

**Timing events**

Use natural language (“after 3 seconds a woman enters”) or timecode syntax: `[0-3s] walking [3-6s] stops and turns [6-10s] starts running`.

**On-screen text**

Quote it exactly — e.g. a street sign that says: “This is an AI generation”.

**Meta-prompting**

Ask for general qualities — “be extremely detailed in your descriptions of characters and environments”.

### Reference to Video (Ref Images to Video)

## Gemini Omni 1.1 Flash Reference to Video (Ref Images to Video) API Documentation

Generate a video guided by one or more reference images plus a text prompt. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`. Typical generation time is ~36s.

Backed by Google's `gemini-omni-1.1-flash`.

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Reference to Video (Ref Images to Video) - Gemini Omni 1.1 Flash

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "Combine the two reference images into a short scene of the product rotating on a table.",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/scene-end.jpg"
  ],
  "aspect_ratio": "16:9"
}
```

```
import requests

url = "https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "prompt": "Combine the two reference images into a short scene of the product rotating on a table.",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/scene-end.jpg"
  ],
  "aspect_ratio": "16:9"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "prompt": "Combine the two reference images into a short scene of the product rotating on a table.",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/scene-end.jpg"
  ],
  "aspect_ratio": "16:9"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"prompt": "Combine the two reference images into a short scene of the product rotating on a table.", "image_urls": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg", "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/scene-end.jpg"], "aspect_ratio": "16:9"}'
```

## Output

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=gemini-omni-1-1&operation=reference-to-video-request)

## Webhook (Optional)

Instead of polling, you can receive a webhook callback when the request reaches a terminal state. Provide a webhook URL via header on the submit request.

Header

Required

Description

`X-Webhook-URL`

Yes (to enable)

HTTPS endpoint on your server that will receive the `POST` callback. Must respond `2xx` within a few seconds.

`X-Webhook-Mode`

No

`terminal` (default) — fires once at the final status (`COMPLETED`/`FAILED`/`ERROR`). `sync` — fires on every poll cycle plus the terminal event, and caps the queue's polling delay at 15s for tighter progress updates.

### Example: enable webhook

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/reference-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook/callback' \
  --data-raw '{"prompt": "Combine the two reference images into a short scene of the product rotating on a table.", "image_urls": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg", "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/scene-end.jpg"], "aspect_ratio": "16:9"}'
```

### Callback Payload

Your endpoint receives a `POST application/json` with the same shape as the `GET /v2/requests/status/{request_id}` response. Example terminal callback (mode `terminal`):

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

### Failure callback shape

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "gemini-omni-1-1",
  "error": "Description of the failure",
  "output": null,
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:22",
  "completed_at": null
}
```

#### Delivery semantics

-   **terminal** mode: one webhook callback when the request is `COMPLETED` or `ERROR`/`FAILED`.
-   **sync** mode: a webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`prompt`

Yes

string

—

—

Text prompt describing the scene to generate from the reference images.

`image_urls`

Yes

string\[\] (URLs)

—

JPEG, PNG, WebP, HEIC, or HEIF

Reference images to incorporate into the video. Bind a reference to a role inline in `prompt` with tags like `<IMAGE_REF_0>`.

`image_url`

No

string (URL)

—

JPEG, PNG, WebP, HEIC, or HEIF

Convenience alternative to `image_urls` when you have a single reference image; it is treated as one reference (`<IMAGE_REF_0>`).

`aspect_ratio`

No

string

`16:9`

`16:9`, `9:16`

Output video aspect ratio.

`duration`

No

integer

—

3–10 (integer seconds)

Length of the generated video, in seconds. Accepted values are integers 3–10. Optional — if you omit it, the model decides the clip length, so send an explicit value when the length matters. Billing follows the actual output length, so a shorter clip costs proportionally less.

### Content Item Types & Limits

Type

Max

Format / Size

Description

image

6

JPG, PNG, WEBP, HEIC, HEIF · < 20 MB

Reference image(s), up to ~6.

## Example Request

```
{
  "prompt": "Transform both robots into a sleek futuristic sports car through a seamless mechanical transformation, with shifting metal panels, rotating gears, glowing energy, and cinematic motion.",
  "image_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/nano-banana/nano-banana-a382a80b-f8df-4de1-a0c1-a5dcfd42dae4-1758783383399.jpg",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/flux-schnell-cf/prompt-1782482807515-639182.png"
  ],
  "aspect_ratio": "16:9"
}
```

## Example Response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — invalid or missing parameters (e.g. missing `prompt`, missing source image/video).

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

403

Forbidden.

429

Too many requests.

500

Internal server error.

## Error Responses

```
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

A failed generation is reported via the status endpoint (or webhook) with `status: "FAILED"` or `"ERROR"` and an `error` message. Malformed requests (e.g. a missing required field) are rejected immediately with `400`.

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`). Typical generation time is ~36s.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

`QUEUED`, `PROCESSING`, `COMPLETED`, `FAILED`, or `ERROR`.

model\_id

string

The model that handled the request (`gemini-omni-1-1`).

output.media\_url

array

URL(s) to the generated MP4 video.

output.media\_type

string

Always `video/mp4`.

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

polling\_url

string

Status URL for this request (submit response only).

error

string

Error message when `status` is `FAILED`/`ERROR`.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### Pricing

Billed per second of output video, measured from the generated file, so a shorter clip costs proportionally less. Failed requests are not billed. The current rate is shown on this model's page.

## Notes & Limitations

Topic

Detail

**Input images**

JPEG, PNG, WebP, HEIC, or HEIF. Keep the combined inline image data under ~20 MB (Google’s inline-data limit).

**References**

Static images only — video clips are not accepted as references, and reasoning across multiple videos is not supported. Google’s examples use up to ~6 images; there is no hard maximum, but quality is best within that range.

**Audio**

Generated automatically for every video — there is no on/off parameter. Describe the sound effects, music, or dialogue you want directly in `prompt`.

**Prompt controls**

No separate negative-prompt, temperature, or sampling parameter. Put exclusions directly in `prompt` (e.g. “no dialogue”). See the Prompting Guide below.

**Language**

English is fully supported; other languages may work but results can vary.

**Generation time**

Varies with duration, resolution, and current API load — longer or higher-resolution videos take longer.

**Watermark**

Every generated video carries an invisible SynthID watermark (not visible to viewers, but programmatically detectable).

**Content safety**

Filters apply to both your prompt and the generated video, and enforcement is region-dependent. Policy-violating prompts or content are blocked.

**Not supported**

Uploading audio references is not supported in the current API version.

**Regional limits**

In the EEA, Switzerland, and the UK, images containing minors cannot be used. Images of certain recognizable (real, identifiable) people are not supported anywhere.

## Prompting Guide

The prompt is passed through to the model verbatim, so all of Google’s prompt syntax works as-is.

Technique

How to use it

**Reference tags `<IMAGE_REF_N>`**

Bind each image to a role in the prompt, indexed from 0 in `image_urls` order — e.g. `in the style of <IMAGE_REF_0> a woman <IMAGE_REF_1> is walking`.

**Multi-image compositions**

Combine reference tags with timecodes — e.g. `[0-3s] woman <IMAGE_REF_0> holding <IMAGE_REF_1> [3-6s] man <IMAGE_REF_2> holding <IMAGE_REF_3>`.

**Single scene**

By default the model may split into several shots. Force one continuous shot by saying so — “in a single continuous shot”, “no scene cuts”.

**Remove elements**

Use simple negatives in the prompt — “no dialogue”, “no embellishments”, “no extra sound effects”.

**Prompt the audio**

Describe the sound you want — “calm background music”, “a high-energy techno beat”, “a low tinny radio in the background”.

**Timing events**

Use natural language (“after 3 seconds a woman enters”) or timecode syntax: `[0-3s] walking [3-6s] stops and turns [6-10s] starts running`.

**On-screen text**

Quote it exactly — e.g. a street sign that says: “This is an AI generation”.

**Meta-prompting**

Ask for general qualities — “be extremely detailed in your descriptions of characters and environments”.

### Video to Video(video editing)

## Gemini Omni 1.1 Flash Video to Video API Documentation

Edit/transform an existing video using a text prompt (e.g. background swap, style change, object edits). The output inherits the source video's dimensions. Asynchronous: submit returns a `request_id`; poll the status endpoint until the request is `COMPLETED`. Typical generation time is ~60-110s.

Backed by Google's `gemini-omni-1.1-flash`.

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Video to Video - Gemini Omni 1.1 Flash

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.",
  "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-8s.mp4"
}
```

```
import requests

url = "https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.",
  "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-8s.mp4"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
```

```
const res = await fetch("https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.",
  "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-8s.mp4"
})
});
console.log(await res.json());
```

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.", "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-8s.mp4"}'
```

## Output

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=gemini-omni-1-1&operation=video-to-video-request)

## Webhook (Optional)

Instead of polling, you can receive a webhook callback when the request reaches a terminal state. Provide a webhook URL via header on the submit request.

Header

Required

Description

`X-Webhook-URL`

Yes (to enable)

HTTPS endpoint on your server that will receive the `POST` callback. Must respond `2xx` within a few seconds.

`X-Webhook-Mode`

No

`terminal` (default) — fires once at the final status (`COMPLETED`/`FAILED`/`ERROR`). `sync` — fires on every poll cycle plus the terminal event, and caps the queue's polling delay at 15s for tighter progress updates.

### Example: enable webhook

```
curl -X POST 'https://gateway.pixazo.ai/gemini-omni-1-1/v1/video-to-video' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook/callback' \
  --data-raw '{"prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.", "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-8s.mp4"}'
```

### Callback Payload

Your endpoint receives a `POST application/json` with the same shape as the `GET /v2/requests/status/{request_id}` response. Example terminal callback (mode `terminal`):

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

### Failure callback shape

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "gemini-omni-1-1",
  "error": "Description of the failure",
  "output": null,
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:22",
  "completed_at": null
}
```

#### Delivery semantics

-   **terminal** mode: one webhook callback when the request is `COMPLETED` or `ERROR`/`FAILED`.
-   **sync** mode: a webhook callback on each status change.
-   Callbacks are idempotent on `request_id` — de-duplicate on it.
-   Respond `200` within a few seconds; the webhook endpoint must be HTTPS.

## Request Parameters

Parameter

Required

Type

Default

Allowed values / range

Description

`prompt`

Yes

string

—

—

Text describing the edit to apply.

`video_url`

Yes

string (URL)

—

MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV, or 3GPP

Source video to edit. Must be a direct, fetchable video file URL — YouTube links and other hosted-platform URLs are not supported. The source clip must be 10 seconds or shorter.

`aspect_ratio`

No

string

—

—

**Not used for video-to-video** — the edited clip keeps the aspect ratio of the source video.

`duration`

No

integer

—

—

**Not used for video-to-video** — the edited clip inherits the length of the source video. Billing follows the actual output length.

### Content Item Types & Limits

Type

Max

Format / Size

Description

video

1

MP4, MOV, WEBM, AVI, MPEG, FLV, 3GP

Source video to transform.

## Example Request

```
{
  "prompt": "Replace the background with a neon cyberpunk city while keeping the subject unchanged.",
  "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/sync-lipsync-v2-pro_019f1910-7eca-7dc9-c2ef-da59f4839abec/output.mp4"
}
```

## Example Response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Required

Description

Content-Type

Yes

`application/json`

Ocp-Apim-Subscription-Key

Yes

Your API subscription key.

X-Webhook-URL

No

Enable webhook callbacks (see Webhook section).

## Response Handling

Status Code

Meaning

202

Accepted — request queued; returns `request_id` and `polling_url`.

400

Bad request — invalid or missing parameters (e.g. missing `prompt`, missing source image/video).

401

Unauthorized — missing or invalid subscription key.

402

Insufficient balance.

403

Forbidden.

429

Too many requests.

500

Internal server error.

## Error Responses

```
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

A failed generation is reported via the status endpoint (or webhook) with `status: "FAILED"` or `"ERROR"` and an `error` message. Malformed requests (e.g. a missing required field) are rejected immediately with `400`.

## Retrieving Results

Poll the status endpoint with the `request_id` from the submit response until `status` is `COMPLETED` (or `FAILED`/`ERROR`). Typical generation time is ~60-110s.

```
curl 'https://gateway.pixazo.ai/v2/requests/status/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
```

### Completed response

```
{
  "request_id": "gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "gemini-omni-1-1",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/gemini-omni-1-1_01a0xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-07-01T10:00:00.000Z",
  "updated_at": "2026-07-01 10:00:48",
  "completed_at": "2026-07-01 10:00:48"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier.

status

string

`QUEUED`, `PROCESSING`, `COMPLETED`, `FAILED`, or `ERROR`.

model\_id

string

The model that handled the request (`gemini-omni-1-1`).

output.media\_url

array

URL(s) to the generated MP4 video.

output.media\_type

string

Always `video/mp4`.

created\_at

string

Request creation timestamp.

completed\_at

string

Completion timestamp.

polling\_url

string

Status URL for this request (submit response only).

error

string

Error message when `status` is `FAILED`/`ERROR`.

## Status Values & Flow

`QUEUED` → `PROCESSING` → `COMPLETED` (success) or `FAILED`/`ERROR` (failure).

### Pricing

Billed per second of output video, measured from the generated file, so a shorter clip costs proportionally less. Failed requests are not billed. The current rate is shown on this model's page.

## Notes & Limitations

Topic

Detail

**Input video**

MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV, or 3GPP. Use short, modestly-sized clips for best reliability — very large or long videos may be slow or fail.

**Audio**

Generated automatically for every video — there is no on/off parameter. Describe the sound effects, music, or dialogue you want directly in `prompt`.

**Prompt controls**

No separate negative-prompt, temperature, or sampling parameter. Put exclusions directly in `prompt` (e.g. “no dialogue”). See the Prompting Guide below.

**Language**

English is fully supported; other languages may work but results can vary.

**Generation time**

Varies with duration, resolution, and current API load — longer or higher-resolution videos take longer.

**Watermark**

Every generated video carries an invisible SynthID watermark (not visible to viewers, but programmatically detectable).

**Content safety**

Filters apply to both your prompt and the generated video, and enforcement is region-dependent. Policy-violating prompts or content are blocked.

**Not supported**

Uploading audio references; chained editing (submit a fresh `video_url` for each edit); voice/dialogue editing; and video extension or frame interpolation (this operation transforms existing footage, it does not lengthen it or generate new frames).

**Regional limits**

Editing an uploaded video is not available for users in the EEA, Switzerland, or the UK.

## Prompting Guide

The prompt is passed through to the model verbatim, so all of Google’s prompt syntax works as-is.

Technique

How to use it

**Keep it simple**

Short prompts edit best; long paragraphs cause unintended changes. Prefer “Make this video anime” or “Change the lighting to be more dramatic”.

**“Keep everything else the same”**

When editing one aspect, add this phrase to preserve the rest — e.g. “Add a cat that jumps onto his lap. Keep everything else the same.”

**Single scene**

By default the model may split into several shots. Force one continuous shot by saying so — “in a single continuous shot”, “no scene cuts”.

**Remove elements**

Use simple negatives in the prompt — “no dialogue”, “no embellishments”, “no extra sound effects”.

**Prompt the audio**

Describe the sound you want — “calm background music”, “a high-energy techno beat”, “a low tinny radio in the background”.

**Timing events**

Use natural language (“after 3 seconds a woman enters”) or timecode syntax: `[0-3s] walking [3-6s] stops and turns [6-10s] starts running`.

**On-screen text**

Quote it exactly — e.g. a street sign that says: “This is an AI generation”.

**Meta-prompting**

Ask for general qualities — “be extremely detailed in your descriptions of characters and environments”.
