Google's state-of-the-art video model. 8-second 4K videos with optional AI audio generation and first/last frame control. Seven channels sit behind one endpoint — from the $0.07 Fast tiers, through the $0.206 full standard 4K render, to the budget and official-stable lines dedicated to start-end-frame transitions. All of them use the same create-then-poll async flow; you only change the model field.
| Model / model value | Duration | Price | Notas |
|---|---|---|---|
Omni Video V3.1-fast (Start-End, Budget) veo-3.1 | 8s | $0.30 | Start-end-frame budget channel, 720p/1080p/4K |
Omni Video V3.1-Lite (Start-End, Official) omni-video-v3.1-lite | Native | $0.72-$1.152 | Start-end-frame official stable channel, 720p/1080p, both frames required |
VEO 3.1 Fast HD veo-3.1-fast-hd | 8s | $0.07 | 720p, fast generation |
VEO 3.1 Fast Full HD veo-3.1-fast-fhd | 8s | $0.07 | 1080p, fast generation |
VEO 3.1 4K (Standard) veo3.1-4k | 8s | $0.206 | Full standard 4K render — highest quality tier |
VEO 3.1 Components 4K (Alt) veo3.1-components-4k | 8s | $0.177 | 4K first/last frame components — alternate channel (same price & capability as veo_3_1-components-4K) |
V3.1 Fast Start-End v3.1-fast-start-end | 8s | $0.10 | Start-end-frame alternate budget channel |
Each channel carries its own resolution in the notes column — read that column when picking one: Fast HD for 720p, Fast Full HD for 1080p, VEO 3.1 4K (Standard) when quality matters most.
POST /api/v1/video/generations — async: create, then poll the same endpoint for the result.
# Step 1: Create task (with audio and first frame)
curl -X POST https://apimodels.app/api/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1",
"prompt": "Aerial drone shot of a coastal sunset, waves crashing on rocks",
"size": "4K",
"generate_audio": true,
"images": ["https://example.com/first-frame.jpg"]
}'
# Step 2: Poll status
curl "https://apimodels.app/api/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | veo-3.1 / omni-video-v3.1-lite / veo-3.1-fast-hd / veo-3.1-fast-fhd / veo3.1-4k / veo3.1-components-4k / v3.1-fast-start-end |
| prompt | Yes | string | Text description of the video to generate |
| duration | No | number | Video duration in seconds. veo-3.1 accepts 5 or 8; Fast variants are fixed at 8 |
| size | No | string | "4K" (default), "1080P" |
| aspect_ratio | No | string | "16:9" (default), "9:16", "1:1" |
| generate_audio | No | boolean | Generate synchronized AI audio track. Default: false |
| images | No | array | Image URLs for first frame [0] and/or last frame [1] reference |
| callback_url | No | string | URL do webhook chamada quando a tarefa é concluída |
Position in the images array is the meaning: pass 1 image for the first frame, 2 images for first + last frame. For a "go from this shot to that shot" transition, put the opening frame at [0] and the closing frame at [1].
Two lines are dedicated to start-end transitions: the budget veo-3.1 ($0.30, 720p/1080p/4K) and the official stable omni-video-v3.1-lite ($0.72-$1.152, 720p/1080p). On the latter, both frames are required — one image is not enough.
Creating a task returns a taskId, with state starting at pending:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "clxxx...",
"state": "pending"
}
}Poll GET /api/v1/video/generations?task_id= until state is completed, then read resultUrls[0]:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "clxxx...",
"state": "completed",
"resultUrls": ["https://cdn.example.com/video.mp4"],
"createTime": 1705123450000,
"completeTime": 1705123500000
}
}It depends on the channel, all on the same endpoint at apimodels.app: VEO 3.1 Fast HD (720p) and VEO 3.1 Fast Full HD (1080p) are $0.07 for an 8-second clip, VEO 3.1 Components 4K is $0.177, and VEO 3.1 4K (Standard) — the highest quality tier — is $0.206. For start-end-frame transitions, v3.1-fast-start-end is $0.10 and the official stable Omni Video V3.1-Lite is $0.72-$1.152. You switch tiers by changing the model field, and you are charged only on success.
Position in the images array is the meaning: one URL is the first frame, two URLs are first frame [0] plus last frame [1]. POST them to /api/v1/video/generations alongside the prompt. Two channels are dedicated to this: the budget veo-3.1 (720p/1080p/4K) and the official stable omni-video-v3.1-lite (720p/1080p), where both the first and the last frame are required — a single image is not enough on that one.
Yes. Set generate_audio to true in the create request (it defaults to false) and VEO adds an AI audio track synchronized to the picture, including ambient sound and music. It is a boolean on the same POST /api/v1/video/generations call — no second request and no separate audio model.
veo-3.1 accepts duration 5 or 8 seconds; the Fast variants are fixed at 8 seconds. The size parameter is "4K" (default) or "1080P", and aspect_ratio is "16:9" (default), "9:16" or "1:1". Each channel also carries its own resolution: Fast HD is 720p, Fast Full HD is 1080p, VEO 3.1 4K (Standard) is the full 4K render, and Omni Video V3.1-Lite runs at its native length in 720p or 1080p.
It is asynchronous. POST /api/v1/video/generations with an Authorization: Bearer key, a model and a prompt; the response carries data.taskId with state "pending". Then poll GET /api/v1/video/generations?task_id=... every 5-10 seconds until state is "completed" and read data.resultUrls[0]; on "failed" the reason is in data.failMsg. For production, pass callback_url and we POST to you when the task reaches a terminal state. Result videos are kept for 7 days.
For volume and drafts, VEO 3.1 Fast HD (720p) and Fast Full HD (1080p) at $0.07 per 8-second clip are the cheapest way onto VEO. For final output, VEO 3.1 4K (Standard) at $0.206 is the full standard 4K render and the highest quality tier. VEO 3.1 Components 4K at $0.177 is an alternate 4K first/last-frame channel with the same price and capability as veo_3_1-components-4K. For start-end transitions where reliability matters more than price, use the official stable Omni Video V3.1-Lite.