Gemini Omni Video API Integration
Use Gemini Omni Video through Rivya Public API v1 with model id gemini-omni-video, supported inputs, parameters, Files API rules, credits, and response examples.
gemini-omni-video
text, file
Required for reference modes
per_video · 4=45 · 6=60 · 8=75 · 10=90 · 4k_4=105 · 4k_6=120 · 4k_8=135 · 4k_10=150 · withVideo=120 · withVideo4k=180 · ⌈total⌉
Video
FIXED
20000 characters
Request contract
Send the model id at the top level. Model-specific controls belong in params.
| Key | Type | Required | Default | Description |
|---|---|---|---|---|
| model | string | Yes | gemini-omni-video | Use the gemini-omni-video API model id. |
| prompt | string | Yes | - | Maximum 20000 characters for this model. |
| params | object | No | - | Model-specific parameter object. Use the rows below for allowed keys. |
| client_request_id | string | No | - | Optional client-side id for tracing requests in your system. |
Model parameters
| Key | Type | Required | Default | Range | Options | Description |
|---|---|---|---|---|---|---|
| resolution | select | No | 720p | - | 720p, 1080p, 4k | Resolution |
| duration | select | No | 4 | - | 4, 6, 8, 10 | Duration |
| aspect_ratio | select | No | 16:9 | - | 16:9, 9:16 | Aspect ratio |
| seed | number | No | - | min 0 / max 2147483647 | - | Leave it empty for a new random result each time. Reusing the same integer makes it easier to reproduce or fine-tune a previous result. It stays closer only when the prompt and other key settings also remain similar, and it is not a guaranteed 1:1 match. |
| video_start | number | No | - | min 0 / max 30 | - | Video start (seconds) |
| video_ends | number | No | - | min 0 / max 30 | - | Video end (seconds) |
Upload policy
Upload reference files first, then place the returned URL and duration token inside params.referenceMediaItems.
Reference assets: Use up to seven images at 20 MB each, or one video up to 95 MB and 30 seconds with up to five images. Select a video segment no longer than 10 seconds. Audio and character asset IDs are not supported.
7
image, video
Video and audio references should carry durationToken from /api/v1/files when duration verification is required.
| kind | Max size | MIME types |
|---|---|---|
| image | 20 MB | image/jpeg, image/png, image/webp |
| video | 95 MB | video/mp4, video/quicktime |
Minimal request
{
"model": "gemini-omni-video",
"prompt": "A cinematic product reveal with smooth camera movement",
"params": {
"resolution": "720p",
"duration": "4",
"aspect_ratio": "16:9",
"seed": 0,
"video_start": 0,
"video_ends": 0
}
}Reference-file request
{
"model": "gemini-omni-video",
"prompt": "A cinematic product reveal with smooth camera movement",
"params": {
"resolution": "720p",
"duration": "4",
"aspect_ratio": "16:9",
"seed": 0,
"video_start": 0,
"video_ends": 8,
"referenceMediaItems": [
{
"url": "https://cdn.example.com/reference-video.mp4",
"kind": "video",
"name": "reference-video.mp4",
"mimeType": "video/mp4",
"durationSeconds": 8,
"durationToken": "video_duration_token_from_files_api",
"width": 1280,
"height": 720,
"sizeBytes": 8388608,
"framesPerSecond": 30,
"videoBitrateMbps": 8,
"videoMetadataToken": "video_metadata_token_from_original_files_api_upload_response"
}
]
}
}Create response
The create endpoint returns a public task id. Poll the status endpoint until the task succeeds or fails.
{
"id": "task_gemini_omni_video_example",
"status": "queued",
"model": "gemini-omni-video",
"reserved_credits": 45,
"final_credits": 0,
"settlement_status": "RESERVED",
"created_at": "2026-05-11T00:00:00.000Z",
"updated_at": "2026-05-11T00:00:00.000Z",
"result": null,
"error": null
}Common errors
validation_failed, insufficient_credits, idempotency_conflict, rate_limited, not_found
Some modes require Files API reference uploads.
