Gemini Omni 1.2 Flash API (gemini-omni-1.2-flash) is Google's multimodal video model for text-to-video, image-to-video, first/last-frame interpolation, video editing and extension. Set duration from 3 to 15 seconds, get audio in every clip, and pay per second by resolution on APIMart. The Ext channel gemini-omni-1.2-flash-ext covers the same core modes, including first and last frames, with a fixed price per second.
Service Highlights
Video link valid for 72 hours
Transparent pricing with no hidden fees. Pay only for what you use.
| Variant | Tier | GoldCurrent price | Platinum | Diamond | Official | Your savings |
|---|---|---|---|---|---|---|
gemini-omni-1.2-flash | 360P | 0.2Credits(~$0.02)/sec | 0.19Credits(~$0.019)/sec | 0.18Credits(~$0.018)/sec | 0.25Credits(~$0.025)/sec | 20% |
| 720P | 0.6Credits(~$0.06)/sec | 0.57Credits(~$0.057)/sec | 0.54Credits(~$0.054)/sec | 0.75Credits(~$0.075)/sec | 20% | |
| 1080P | 0.904Credits(~$0.0904)/sec | 0.8588Credits(~$0.0859)/sec | 0.8136Credits(~$0.0814)/sec | 1.13Credits(~$0.113)/sec | 20% | |
| 4K | 1.808Credits(~$0.1808)/sec | 1.7176Credits(~$0.1718)/sec | 1.6272Credits(~$0.1627)/sec | 2.26Credits(~$0.226)/sec | 20% | |
gemini-omni-1.2-flash-ext | 360P | 0.16Credits(~$0.016)/sec | 0.152Credits(~$0.0152)/sec | 0.144Credits(~$0.0144)/sec | 0.2Credits(~$0.02)/sec | 20% |
| 720P | 0.24Credits(~$0.024)/sec | 0.228Credits(~$0.0228)/sec | 0.216Credits(~$0.0216)/sec | 0.3Credits(~$0.03)/sec | 20% | |
| 1080P | 0.24Credits(~$0.024)/sec | 0.228Credits(~$0.0228)/sec | 0.216Credits(~$0.0216)/sec | 0.3Credits(~$0.03)/sec | 20% | |
| 4K | 0.56Credits(~$0.056)/sec | 0.532Credits(~$0.0532)/sec | 0.504Credits(~$0.0504)/sec | 0.7Credits(~$0.07)/sec | 20% |
* Actual costs are subject to final output.
gemini-omni-1.2-flash
Transparent pricing with no hidden fees. Pay only for what you use.
Per 1M tokens
| Rate | GoldCurrent price | Platinum | Diamond |
|---|---|---|---|
| Input | 12~$1.2 | 11.4~$1.14 | 10.8~$1.08 |
| Output | 96~$9.6 | 91.2~$9.12 | 86.4~$8.64 |
Send a prompt, images, first and last frames, or one source video to a single model ID. Gemini Omni 1.2 Flash returns 24 fps clips with dialogue, music or sound effects, from 360p up to upscaled 4K, and you choose the length with the duration parameter. The Ext channel (gemini-omni-1.2-flash-ext) accepts the same inputs, including first and last frames, and bills each second at a fixed rate.
Submit an asynchronous video task, then query the task ID until the video is ready.
Save your APIMart API key in the APIMART_API_KEY environment variable and send it as Authorization: Bearer <key> with every request.
POST model, prompt and the parameters you need to /v1/videos/generations and read data[0].task_id from the response. The example.com URLs are placeholders; replace them with your own public HTTP(S) URLs.
Poll GET /v1/tasks/{task_id} until status is completed, then read data.result.videos[0].url[0] and the final charge in cost. If status is failed, check error.message. APIMart keeps results for 72 hours, so download the videos you want to keep.
See the APIMart API documentation for authentication and task status details.
curl -X POST https://api.apimart.ai/v1/videos/generations \
-H "Authorization: Bearer $APIMART_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "Aerial shot over a misty mountain lake at sunrise, birds flying, slow forward camera move, soft wind and distant birdsong.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 15
}'import os
import time
import requests
API_BASE = "https://api.apimart.ai"
headers = {"Authorization": f"Bearer {os.environ['APIMART_API_KEY']}"}
# 1. Submit the generation task
payload = {
"model": "gemini-omni-1.2-flash",
"prompt": "Aerial shot over a misty mountain lake at sunrise, birds flying, slow forward camera move, soft wind and distant birdsong.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 15
}
resp = requests.post(f"{API_BASE}/v1/videos/generations", headers=headers, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["data"][0]["task_id"]
# 2. Poll the task until it finishes
for _ in range(200):
task_resp = requests.get(f"{API_BASE}/v1/tasks/{task_id}", headers=headers, timeout=30)
task_resp.raise_for_status()
task = task_resp.json()["data"]
if task["status"] == "completed":
print(task["result"]["videos"][0]["url"][0])
break
if task["status"] == "failed":
raise RuntimeError(task.get("error", {}).get("message", "generation failed"))
time.sleep(10)
else:
raise TimeoutError(f"task {task_id} did not finish in time; continue GET polling with this task ID")curl -X POST https://api.apimart.ai/v1/videos/generations \
-H "Authorization: Bearer $APIMART_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "Smooth transition from the first frame to the last frame, the camera slowly pushes in, keep the subject and lighting consistent.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 8,
"first_frame_image": "https://example.com/first-frame.jpg",
"last_frame_image": "https://example.com/last-frame.jpg"
}'TASK_ID="task_xxx" # replace with the task_id returned by the POST request
curl "https://api.apimart.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $APIMART_API_KEY"| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Required | Default: gemini-omni-1.2-flash | Fixed to gemini-omni-1.2-flash. For the Ext channel use gemini-omni-1.2-flash-ext: prompt is required, video inputs need edit or extend, and negative_prompt and system_prompt are available except with first and last frames. |
prompt | string | Required | Default: — | Scene description for text to video, or the motion, style or edit instruction for image and video inputs. Required in every mode, including image, frame, video and extend_from_task_id requests; omitting it returns HTTP 400. |
duration | integer | Optional | Default: 10 | Output length in whole seconds, 3–15. First/last-frame interpolation allows up to 10. When extending, it sets the length of the added part (up to 10); when editing, it is ignored and the output follows the source video. |
resolution | string | Optional | Default: 720p | 360p, 720p, 1080p or 4k, case-insensitive; 2160p is treated as 4k. 1080p and 4k are upscaled. Sets the price tier. |
aspect_ratio | string | Optional | Default: 16:9 | 16:9 landscape or 9:16 portrait. Any other value is treated as 16:9. |
image_urls | array | Optional | Default: — | Reference images as publicly accessible HTTP(S) URLs. Up to 10 images including first and last frames; one image is used as the opening shot, several act as subject references. |
first_frame_image | string | Optional | Default: — | First frame. Alone, the video starts from it; with last_frame_image, the model interpolates between the two. |
last_frame_image | string | Optional | Default: — | Last frame. Must be sent together with first_frame_image. |
image_with_roles | array | Optional | Default: — | Equivalent object form: [{"url": "...", "role": "first_frame"}, {"url": "...", "role": "last_frame"}]. Other roles are treated as reference images. |
video_urls | array | Optional | Default: — | One video to edit or extend, up to 15 seconds, as a publicly accessible direct HTTP(S) link. |
omni_reference_task_type | string | Optional | Default: auto | Task type: auto (default, detected from the inputs), edit, extend or reference (multi-image reference). Video inputs default to edit, so send extend to continue a video. text_to_video, image_to_video and reference_to_video are also accepted. |
extend_from_task_id | string | Optional | Default: — | ID of one of your earlier generation tasks to continue without uploading the video again. Edits by default; combine with omni_reference_task_type set to extend to continue it. |
Compare Gemini Omni video models on APIMart. One API key calls every version; see each model page for live pricing.
| Model | Best for | Resolution | Duration |
|---|---|---|---|
| Gemini Omni 1.2 Flash APIThis page | Latest version: clips up to 15 seconds with audio, references, video editing and extension | 360p / 720p / 1080p / 4K | 3–15s |
| Gemini Omni 1.1 Flash API | Up to 10 images, first and last frames, video editing and extension | 360p / 720p / 1080p / 4K | 3–10s |
| Gemini Omni 1.1 Flash Ext API | Duration set in the request, priced by resolution and duration (reference video billed per second); text, one image, reference video or three-image fusion | 360p / 720p / 1080p / 4K | 4 / 6 / 8 / 10s |
| Gemini Omni Flash Preview API | 720p clips from text, up to 16 reference images or one video | 720p | 3–10s |
Guides, comparisons and pricing analysis from the APIMart blog.
One endpoint covers generation, references, editing and extension.
Match each workflow to the input it needs.
Create a key, test a request in the playground, then integrate the asynchronous API.
Sign in to APIMart, create an API key and add balance. The key also works for every other model on the platform.
Choose the prompt, duration, resolution, aspect ratio and any frames, images or source video, then check the estimated price on RUN.
Submit to POST /v1/videos/generations, then poll GET /v1/tasks/{task_id} every 5–10 seconds until the task is completed or failed.
Duration, inputs, editing, pricing and integration.
It is API access to Google's Gemini Omni 1.2 Flash video model, model ID gemini-omni-1.2-flash. One endpoint handles text to video, image to video, multi-subject references, first/last-frame interpolation, video editing and extension, and every clip includes audio. On APIMart you call it with your APIMart API key and pay per second of output. APIMart also offers gemini-omni-1.2-flash-ext, an Ext channel with a fixed price per second; switch to it above the playground.
On APIMart, the Gemini Omni API means Google's Gemini Omni video models, called through POST /v1/videos/generations with one API key. Gemini Omni 1.2 Flash (gemini-omni-1.2-flash) is the latest version and creates 3–15 second clips from text, images, first and last frames, or an existing video. The model family table on this page compares the other versions.
Omni Flash is the short name for Google's Gemini Omni Flash line. This page covers Gemini Omni 1.2 Flash; set gemini-omni-1.2-flash in the model field to call this version.
They are two model IDs on this page. gemini-omni-1.2-flash is the official channel, billed by token usage, with first and last frames, multi-subject references, editing and extension. gemini-omni-1.2-flash-ext is a separate channel with a fixed price per second for each resolution; it supports text to video, a first frame, first and last frames (3–10 seconds), up to 10 reference images, editing and extension, and adds negative_prompt and system_prompt, which cannot be used with first and last frames. Their pricing fields and parameter rules are not interchangeable.
The duration parameter now works: outputs run 3–15 seconds instead of roughly 10 seconds every time with 1.1. Google's list price for output video drops from $17.50 to $12 per 1M tokens, about 31% lower. Inputs, resolutions and endpoints are otherwise the same. Gemini Omni 1.1 Flash remains available on its own page.
Both are Google video models. Gemini Omni 1.2 Flash creates 3–15 second clips and can edit or extend an existing video through the same endpoint. Google lists gemini-omni-1.2-flash as the replacement for its Veo 3.1 preview models in the Gemini API. If you already use Veo 3.1, compare both on your own prompts before switching.
model, prompt, duration, resolution, aspect_ratio, image_urls, first_frame_image, last_frame_image, image_with_roles, video_urls, omni_reference_task_type and extend_from_task_id. prompt is required in every mode, even when you send images, frames or video. System prompts, temperature and a negative-prompt field are not supported; put exclusions in the prompt. These rules apply to gemini-omni-1.2-flash. gemini-omni-1.2-flash-ext always requires a prompt, accepts last_frame_image only with first_frame_image, and supports negative_prompt and system_prompt except in first/last-frame requests.
Requests are rejected at submission, without creating a task or charging, if they include audio input, seed, GIF output, n other than 1, watermark, width or height, or any other undocumented field, or if they send a last frame without a first frame, or negative_prompt or system_prompt with first and last frames. A prompt is always required, and a source video must be a public MP4, MOV or WebM up to 15 seconds and 64 MB.
Set duration to a whole number from 3 to 15 seconds; it defaults to 10. First/last-frame interpolation is limited to 10 seconds. When extending, duration is the length of the added part, up to 10 seconds: a 5-second clip with duration 4 becomes about 9 seconds. When editing, duration is ignored and the output keeps the source length. Output is 24 fps, and a duration outside these limits fails the task with invalid_duration, without charge. On gemini-omni-1.2-flash-ext, sending duration with an edit returns an error, so leave it out.
Yes. A single image in image_urls or first_frame_image becomes the opening shot. Add last_frame_image to interpolate between two frames; sending only the last frame returns invalid_frame_images. Several images in image_urls act as subject references, and you describe how they interact in the prompt. On gemini-omni-1.2-flash-ext, use first_frame_image for the opening shot and add last_frame_image to move between two frames in 3–10 seconds; a last frame cannot be combined with image_urls.
Up to 10 images in total, counting first and last frames; more returns unsupported_image_count. For character references, use no more than 6 images: up to 2 characters with at most 3 images each. Images must be publicly accessible HTTP(S) URLs; Base64 and data URLs are not supported. On gemini-omni-1.2-flash-ext, up to 10 reference images are allowed and they cannot be combined with first or last frames.
Send one clip of up to 15 seconds in video_urls, or reference one of your own tasks with extend_from_task_id. Without omni_reference_task_type, both inputs are edited in place; set omni_reference_task_type to extend to continue from the last frame. Extension adds up to 10 seconds and is billed only for the new seconds. Short instructions ending with "Keep everything else the same" work best. On gemini-omni-1.2-flash-ext, omni_reference_task_type is required whenever you send a video or task ID, and editing is billed for the length of the source video.
Yes. Every output includes generated audio, such as dialogue, music or sound effects, which you can describe in the prompt. Audio files cannot be used as input.
Resolution can be 360p, 720p (default), 1080p or 4k; 1080p and 4k are upscaled, and 2160p is accepted as 4k. Aspect ratio is 16:9 (default) or 9:16, and other values are treated as 16:9. Frames and reference images should match the chosen ratio. On gemini-omni-1.2-flash-ext, only 16:9 and 9:16 are accepted; if you omit the ratio with images or a video, the output follows your material.
It is billed per second of output, and resolution sets the rate; see the live pricing table on this page for APIMart prices. Google's reference rate is about $0.070 per second at 720p, so a 15-second 720p clip is about $1.04. On APIMart, Gold members pay $0.06 per second at 720p, so the same clip costs about $0.90 (November 8, 2026). A deposit is reserved at submission and settled against actual usage after completion. gemini-omni-1.2-flash-ext uses a fixed price per second instead of token-based settlement: the cost is the per-second price of the resolution × billed seconds (the duration, the source length when editing, or only the added seconds when extending), and failed tasks are fully refunded.
On APIMart, Gemini Omni 1.2 Flash is billed per second of output, and the rate depends on resolution. Gold members pay about $0.02 at 360p, $0.06 at 720p, $0.09 at 1080p and $0.18 at 4K per second (November 8, 2026). Check the pricing table on this page for current rates.
No. APIMart is pay-as-you-go with no subscription, and the RUN button shows the estimated price before you submit. Failed tasks, including parameter errors, are not charged. If your balance cannot cover the deposit for the selected tier, the request returns HTTP 402.
Sign up for APIMart, open API Keys in the dashboard and create a key, or use Get API key on this page. Send it as Authorization: Bearer <key>. The same key works for Gemini Omni 1.2 Flash and other models on APIMart.
POST your request to /v1/videos/generations and save data[0].task_id. Poll GET /v1/tasks/{task_id} every 5–10 seconds until status is completed, then read data.result.videos[0].url[0]. Higher resolutions and longer clips take longer, so allow a client timeout of about 10 minutes. Results are kept for 72 hours.
In the EEA, Switzerland and the UK, editing or extending uploaded videos and editing images that contain minors are not supported. All outputs carry Google's invisible SynthID watermark.
Explore more models in the same category.

Muse Video Ext
Muse Video brings ideas to life through the power of visual storytelling. From everyday inspiration to bold creative concepts, it helps turn your vision into videos that connect, engage, and leave a lasting impression. With creativity at its heart, Muse Video makes every story worth sharing.

Pixverse V6 Max
PixVerse V6 Max is an advanced AI video generation model that transforms text and images into cinematic videos up to 15 seconds long at 1080p. With realistic visuals, expressive characters, and optional synchronized audio, it offers precise creative control for multi-shot storytelling, advertising, and music videos.

Kling V4
Kling 4.0 is an advanced AI video generation model that brings creative ideas to life with realistic motion, dynamic camera work, and precise visual control. With support for continuous videos up to 30 seconds and multiple reference inputs, it helps creators craft cinematic stories with greater flexibility.

ViduQ 4 Preview
Vidu Q4 Preview is ShengShu's image-to-video and reference-to-video model. Animate one first frame or combine up to 15 reference images and 3 audio clips into 3–16 second videos at up to 4K, with audio generated by default.