Video Generation Endpoint
POST
/api/v1/generate Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Must be "gemini-omni-video" |
| prompt | string | Yes | Text description of the video (max 2000 chars) |
| resolution | string | No | "720P" | "1080P" | "4K" default "1080P" |
| duration | number | No | Duration in seconds: 4–10 default 8 |
| imageUrl | string | No | R2 URL for image-to-video mode (use /api/upload to get a pre-signed PUT URL first) |
| videoUrl | string | No | R2 URL for video-to-video mode |
| callbackUrl | string | No | HTTPS URL to POST results to when the job completes |
Response (202)
{
"id": "job_abc123",
"status": "queued",
"creditsQueued": 150
} Poll for result
GET
/api/v1/jobs/:id // Job completed:
{
"id": "job_abc123",
"status": "done",
"resultUrls": ["https://cdn.googlegeminiomni.com/omni/user_id/job_abc123/output.mp4"],
"creditsUsed": 150,
"createdAt": "2026-06-05T10:00:00Z",
"completedAt": "2026-06-05T10:01:23Z"
}
// Job failed:
{
"id": "job_abc123",
"status": "failed",
"error": "Generation failed: content policy violation"
}