Introduction
Veo is a multimodal video generation model from Google Vertex AI, supporting text-to-video (T2V), first-frame constraint, and first-last frame constraint (3.1 series only) for generating coherent videos. Call through Mixroute unified video interface: first submit task to get task_id, then query task to poll status and retrieve results.
Authentication
Bearer Token, e.g., Bearer sk-xxxxxxxxxx
Supported Models
Model ID Description veo-3.0-fast-generate-001Text-to-video, first-frame mode, fast version (audio included by default) veo-3.1-fast-generate-previewText-to-video, first-frame/first-last frame mode, fast version veo-3.0-generate-previewText-to-video, first-frame mode veo-3.1-generate-previewText-to-video, first-frame/first-last frame mode
Call Flow
Submit Task : POST /v1/video/generations, pass model, prompt and Veo-specific parameters.
Poll Status : GET /v1/video/generations/{task_id}, until status is succeeded or failed.
Get Result : When successful, the url in the response contains video data (Veo may return data:video/mp4;base64,... or OSS link).
Veo-Specific Parameters
Video generation prompt describing the scene and actions.
Video duration (seconds), supported values: 4, 6, 8.
Aspect ratio, only supports: 16:9, 9:16.
First frame reference image (URL or Base64), for image-to-video/first-frame constraint.
Last frame reference image (only veo-3.1 series supported), works with first frame for first-last frame constraint.
Whether to generate synchronized audio. Fast version models ignore this parameter and always include audio.
Number of videos to generate per request, range 1-4.
For more parameters (such as personGeneration, addWatermark, seed), see Submit Video Task .
Request Examples
curl -X POST "https://console.mixroute.io/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-preview",
"prompt": "Morning sunlight on cyber city skyscrapers, camera slowly pushing forward",
"durationSeconds": 6,
"aspectRatio": "16:9",
"resolution": "1080p",
"generateAudio": false
}'
curl -X GET "https://console.mixroute.io/v1/video/generations/{task_id}" \
-H "Authorization: Bearer sk-xxxxxxxxxx"
For complete request/response specifications and multi-model comparison, see Submit Video Task and Query Video Task .
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
--url https://console.mixroute.io/v1/video/generations \
--header 'Authorization: Bearer sk-xxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1-fast-generate-preview",
"prompt": "Morning sunlight on cyber city skyscrapers, camera slowly pushing forward",
"durationSeconds": 6,
"aspectRatio": "16:9",
"resolution": "1080p",
"generateAudio": false
}'
{
"task_id" : "task_xxx" ,
"status" : "pending" ,
"created_at" : 1709459123
}