Veo Model Text-to-Video API Documentation
Veo is a high-quality text-to-video generation model developed by Google. This document describes the complete API interface specification for using Google Veo model for text-to-video generation.
Overview
The Veo model text-to-video feature provides an asynchronous task processing mechanism:
- Submit Task: Send a text prompt to create a video generation task
- Query Status: Query generation progress and status through task ID
- Get Results: Retrieve the generated video file after task completion
Task Status Flow
queued → in_progress → completed
↓
failed
- queued: Task has been submitted and is waiting to be processed
- in_progress: Task is being processed
- completed: Task completed successfully, video has been generated
- failed: Task failed
API List
| Method |
Path |
Description |
| POST |
/v1/video/generations |
Submit video generation task (standard format) |
| GET |
/v1/video/generations/{task_id} |
Query task status (standard format) |
| POST |
/v1/videos |
Submit video generation task |
| GET |
/v1/videos/{task_id} |
Query task status |
| GET |
/v1/videos/{task_id}/content |
Get video content (streaming download) |
Usage Examples
Request Body
{
"model": "veo-3.0-generate-001",
"prompt": "A cat playing piano in a beautiful garden",
"metadata": {
"aspectRatio": "16:9",
"durationSeconds": 6.0,
"negativePrompt": "blurry, low quality",
"personGeneration": "allow_all",
"resolution": "1080p",
"sampleCount": 1,
"storageUri": "gs://your-bucket/path"
}
}
Request Parameters:
| Parameter |
Type |
Required |
Description |
| model |
string |
Yes |
Model name, e.g., veo-3.0-generate-001 |
| prompt |
string |
Yes |
Text prompt describing the video content to be generated |
| metadata |
object |
No |
Extended parameters object |
| Parameter |
Type |
Required |
Description |
| aspectRatio |
string |
No |
Video aspect ratio, options: "16:9", "9:16" |
| durationSeconds |
number |
No |
Video duration (seconds), options: 4, 6, 8 |
| negativePrompt |
string |
No |
Negative prompt describing content not desired in the video |
| personGeneration |
string |
No |
Person generation strategy, options: "allow_all" (text-to-video), "allow_adult" (image-to-video) |
| resolution |
string |
No |
Video resolution, e.g., "1080p", "720p" |
| sampleCount |
number |
No |
Number of videos to generate, default 1 |
| storageUri |
string |
No |
Google Cloud Storage URI for storing generated videos |
1. Submit Video Generation Task
Complete Request:
curl -X POST "https://computevault.unodetech.xyz/v1/video/generations" -H "Content-Type: application/json" -H "Authorization: Bearer API_KEY" -d @veoTest.json
Endpoint:
POST /v1/video/generations
| Parameter |
Type |
Required |
Description |
| Content-Type |
string |
Yes |
application/json |
| Authorization |
string |
Yes |
Bearer API_KEY |
Response Example:
{
"id": "TASK_ID",
"task_id": "TASK_ID",
"object": "video",
"model": "veo-3.0-generate-001",
"status": "",
"progress": 0,
"created_at": 1764616538
}
Response Field Descriptions:
| Field |
Type |
Description |
| task_id |
string |
Task ID for subsequent task status queries |
| model |
string |
Model used to generate the video |
2. Query Task Status
curl -X GET "https://computevault.unodetech.xyz/v1/video/generations/TASK_ID" -H "Authorization: Bearer API_KEY"
Endpoint:
GET /v1/video/generations/{task_id}
| Parameter |
Type |
Required |
Description |
| Authorization |
string |
Yes |
Bearer API_KEY |
Path Parameters:
| Parameter |
Type |
Required |
Description |
| task_id |
string |
Yes |
Task ID |
Response Example (Processing):
{
"code": "success",
"message": "",
"data": {
"error": null,
"format": "mp4",
"metadata": null,
"status": "processing",
"task_id": "TASK_ID",
"url": ""
}
}
Response Example (Success):
{
"code": "success",
"message": "",
"data": {
"error": null,
"format": "mp4",
"metadata": null,
"status": "succeeded",
"task_id": "TASK_ID",
"url": "https://computevault.unodetech.xyz/v1/videos/TASK_ID/content"
}
}
You can download the video from the returned URL.
Response Field Descriptions:
| Field |
Type |
Description |
| code |
string |
Response status code, "success" indicates success |
| data |
object |
Task data object |
| data.task_id |
string |
Task ID |
| data.status |
string |
Task status: queued, in_progress, succeeded, failed |
| data.format |
string |
Video format, e.g., "mp4" |
| data.url |
string |
Video access URL (when task succeeds) |
| data.error |
object |
Error information (when task fails) |
| message |
string |
Error message |