---
title: "Generate a video clip (Veo 3.1 · Gemini Omni) — estimate"
method: POST
path: "/v1/ai/video/estimate"
tags: ["Video"]
---

# Generate a video clip (Veo 3.1 · Gemini Omni) — estimate

`POST /v1/ai/video/estimate`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/ai/video/estimate`
- Auth: HTTP bearer

Price the request without executing it. Same body as `POST /v1/ai/video`.

## Request body

- object
  - `model` 'auto' | 'veo-3.1-generate-preview' | 'veo-3.1-fast-generate-preview' | 'veo-3.1-lite-generate-preview' | 'gemini-omni-1.1-flash': A model id (GET /v1/ai/models) or "auto" — then the clip is made with gemini-omni-1.1-flash at the resolution you send (Veo 3.1 can still be named until Google retires it, from 22 October 2026). "gemini-omni-1.1-flash" = Gemini Omni, Google's newest video model: sound with speech (put the line in quotes in the prompt), readable text in the frame, reference images; it picks the length itself (3–10 s)
  - `ultra` boolean: ULTRA: true = the clip is made with Gemini Omni (gemini-omni-1.1-flash) at 1080p or higher (4k stays 4k), whatever model and resolution are sent; a Veo model named becomes Omni at the duration asked, at 3× the credits of the same request without ULTRA (the estimate's `ultra` block shows both prices — POST …/estimate before you run it). Only for accounts that have bought credits at least once (402 ultra_paid_only, with the account's top-up page in details.top_up) and where ULTRA is switched on (else 403 ultra_unavailable). Nothing is charged when it is refused.
  - `prompt` string, required
  - `quality` 'fast' | 'balanced' | 'best': Which model auto picks: fast (cheapest) · balanced (default) · best (strongest, costs more)
  - `duration` '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10': seconds: Veo renders 4, 6 or 8; gemini-omni-1.1-flash 3–10. gemini-omni-1.1-flash keeps this length when the call names no model or sends duration; a call that names gemini-omni-1.1-flash without duration lets it pick 3–10 s (a spoken line takes as long as it takes)
  - `image_url` string, uri: Start frame (image-to-video)
  - `resolution` '360p' | '720p' | '1080p' | '4k': Veo: 720p, 1080p or 4k (1080p and 4k need duration 8). gemini-omni-1.1-flash: 360p, 720p, 1080p or 4k
  - `aspect_ratio` '16:9' | '9:16'
  - `last_frame_url` string, uri: gemini-omni-1.1-flash only, with image_url: the last frame — the clip moves from the first image to this one
  - `negative_prompt` string
  - `reference_images` string[]: gemini-omni-1.1-flash only: up to 3 images of people, products or places to put in the clip (not a start frame) — refer to them in the prompt as <IMAGE_REF_0>, <IMAGE_REF_1>, <IMAGE_REF_2>

## Response `200`

Estimate

- Estimate
  - `operation` string
  - `estimated_credits` number
  - `credits_to_reserve` number
  - `estimated_usage` object
  - `note` string, nullable
  - `balance` object
    - `available` number
  - `sufficient` boolean

---

[API](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai.md) · [All operations](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/llms.txt) · [OpenAPI document](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/revisions/a8caa42835ce?raw)
