Veo 3.1 video generation API
Use Google model IDs with the APIMaster asynchronous API to submit video generation tasks, poll progress and download videos.
Veo 3.1 video generation API
Use Google model IDs with the APIMaster asynchronous API to submit video generation tasks, poll progress and download videos.
veo-3.1-generate-preview— Veo 3.1veo-3.1-fast-generate-preview— Veo 3.1 Fastveo-3.1-lite-generate-preview— Veo 3.1 Lite
Model capabilities
| Model | Duration | Resolution | Audio | Image input |
|---|---|---|---|---|
| Veo 3.1 | 4 / 6 / 8 seconds | 720p / 1080p / 4k | On or off | First frame, first/last frames |
| Veo 3.1 Fast | 4 / 6 / 8 seconds | 720p / 1080p / 4k | On or off | First frame, first/last frames, reference images |
| Veo 3.1 Lite | Fixed 8 seconds | 720p / 1080p | Required | Text-to-video only |
1080p and 4k require 8 seconds. The system selects an available service based on your parameters; advanced capabilities depend on service availability. Each task generates one video.
Route limits (verified 2026-10-27): channel 306 (Ext) currently accepts only 8-second output. Standard/Fast 4- or 6-second requests at 720p require a compatible Official route, such as channel 305. Excluding that route in provider settings leaves no compatible route even though the public model supports the duration. There is no confirmed date for 4/6-second support on 306.
Request parameters
Use POST https://apimaster.ai/v1/videos with Content-Type: application/json and Authorization: Bearer YOUR_API_KEY. Compatible endpoint: POST https://apimaster.ai/v1/videos/generations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model |
string | Yes | — | One of the three complete model IDs above |
prompt |
string | Yes | — | Nonempty description of the scene, action, camera and sound |
duration |
integer | No | 8 |
Standard / Fast: 4, 6, 8; Lite: only 8. 1080p / 4k require 8 |
resolution |
string | No | 720p |
720p, 1080p, 4k; Lite excludes 4k |
aspect_ratio |
string | No | 16:9 |
Landscape 16:9 or portrait 9:16; reference-image mode requires 16:9 |
generate_audio |
boolean | No | true |
false requests silent output; Lite requires true |
image_urls |
string[] | No | — | Standard / Fast: 1 first frame or 2 first/last frames; Fast reference mode: 1–3 images. Public HTTP(S) image URLs only; unavailable for Lite |
generation_type |
string | No | Automatic | frame: first/last frames; reference: Fast only, requires images and 16:9. Three images automatically select reference mode; unavailable for Lite |
sample_count |
integer | No | 1 |
Only 1; one video per task |
Reference-image mode (generation_type: "reference") also requires duration: 8 and generate_audio: true. Do not combine it with the advanced parameters below.
Advanced parameters
Standard / Fast only. The system selects a compatible service. Remove these fields for Lite, including empty values.
| Parameter | Type | Values and description |
|---|---|---|
negative_prompt |
string | Content to avoid; optional |
seed |
integer | 0–4294967295; zero is valid; exact reproducibility is not guaranteed |
person_generation |
string | allow_adult or disallow: person-generation policy |
resize_mode |
string | pad or crop: image fitting |
enhance_prompt |
boolean | If supplied, only true is supported; false is rejected |
Compatibility parameters
Prefer the standard fields above. Aliases must not conflict.
| Parameter | Type | Description |
|---|---|---|
seconds |
integer | Alias for duration; values must match if both are supplied |
ratio |
string | Alias for aspect_ratio; values must match |
size |
string | 720p, 1080p, 4k, or 1280x720, 720x1280, 1920x1080, 1080x1920; must agree with resolution and aspect ratio |
input_reference / first_frame_image |
string | Alternative first-frame URL fields; choose one and do not combine with image_urls; unavailable for Lite |
last_frame_image |
string | Last-frame URL; requires exactly one first frame; unavailable for Lite |
metadata |
object | Wrapper for supported parameters; excludes model, nested metadata and values conflicting with top-level fields |
nsfw_check |
boolean | Omit or use false; true is unsupported |
Submit a task
{"model":"veo-3.1-generate-preview","prompt":"A paper boat drifting across a quiet lake at sunrise, natural ambient sound","duration":8,"resolution":"720p","aspect_ratio":"16:9","generate_audio":true}
{"model":"veo-3.1-lite-generate-preview","prompt":"A paper boat on a sunlit lake","duration":8,"resolution":"720p","generate_audio":true}
curl "https://apimaster.ai/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"veo-3.1-generate-preview","prompt":"A paper boat drifting across a quiet lake at sunrise","duration":8,"resolution":"720p","generate_audio":true}'
POST https://apimaster.ai/v1/videos → {"id":"task_...","task_id":"task_...","status":"queued"}
An id acknowledges submission, not completion. Poll every 5–10 seconds until completed or failed. Download promptly with the same API key after completion.
curl "https://apimaster.ai/v1/videos/task_..." -H "Authorization: Bearer YOUR_API_KEY"
curl -L "https://apimaster.ai/v1/videos/task_.../content" -H "Authorization: Bearer YOUR_API_KEY" -o video.mp4
queued → in_progress → completed / failed
Billing and refunds
The table lists Google base prices in USD/second, not a fixed sale price. Check the marketplace, account pricing and usage logs for actual charges. An extension is billed as an additional 8-second unit, without charging again for the original video. Failed tasks refund the generation reservation.
| Google model | 720p + audio | 1080p + audio | 4K + audio | 720p silent | 1080p silent | 4K silent |
|---|---|---|---|---|---|---|
veo-3.1-generate-preview |
$0.40/s | $0.40/s | $0.60/s | $0.20/s | $0.20/s | $0.40/s |
veo-3.1-fast-generate-preview |
$0.10/s | $0.12/s | $0.30/s | $0.08/s | $0.10/s | $0.25/s |
veo-3.1-lite-generate-preview |
$0.05/s | $0.08/s | — | — | — | — |
Google Gemini API · Google Cloud
Extend a video
Currently, only compatible completed Standard (veo-3.1-generate-preview) tasks support extension; not every Standard task is eligible. Fast and Lite extensions are unavailable. Use an API key belonging to the original task owner. The system retains the original model and service; an incompatible origin cannot be extended by switching services.
Use POST https://apimaster.ai/v1/videos/{id}/remix, where {id} is the original task ID. Poll and download the new task using the same workflow.
| Parameter | Type | Required | Description |
|---|---|---|---|
model |
string | Yes | veo-3.1-generate-preview; must match the original task |
prompt |
string | Yes | Nonempty description of the continuation |
raw |
boolean | No | true: extension clip only; false: combined video; the example explicitly uses false |
resolution |
string | No | 720p (default), 1080p or 4k |
aspect_ratio |
string | No | 16:9 (default) or 9:16 |
Extensions do not accept images. Invalid parameters normally return 400; unavailable capabilities on a selected service can return 503. Check task failure details; submission acceptance does not mean generation completed.
curl "https://apimaster.ai/v1/videos/task_.../remix" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"veo-3.1-generate-preview","prompt":"The paper boat continues past green reeds","raw":false,"resolution":"720p","aspect_ratio":"16:9"}'
