Skip to content

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:

  1. Submit Task: Send a text prompt to create a video generation task
  2. Query Status: Query generation progress and status through task ID
  3. 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

metadata Parameters:

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

Request Headers:

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

Complete Standard Format Endpoint

curl -X GET "https://computevault.unodetech.xyz/v1/video/generations/TASK_ID" -H "Authorization: Bearer API_KEY"

Endpoint:

GET /v1/video/generations/{task_id}

Request Headers:

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