logoComputeVault
User GuideAPI ReferenceHelp & SupportBusiness Cooperation

Veo Model Text-to-Video API Documentation

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.


Supported Models

Currently supported models include:

Models marked with ⚠️ are temporarily unavailable (no active channel configured). It is recommended to use models without this mark.

ModelDescriptionStatus
veo-3.0-generate-001Veo 3.0 text-to-video generation model✅ Available
veo-3.0-fast-generate-001Veo 3.0 fast text-to-video generation model✅ Available
veo-3.1-generate-001Veo 3.1 text-to-video generation model⚠️ Temporarily Unavailable
veo-3.1-fast-generate-001Veo 3.1 fast text-to-video generation model⚠️ Temporarily Unavailable

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 → succeeded

            failed
  • queued: Task has been submitted and is waiting to be processed
  • in_progress: Task is being processed
  • succeeded: Task completed successfully, video has been generated
  • failed: Task failed

Note on query endpoints: This API provides two query endpoints that return different response structures and status values:

  • GET /v1/video/generations/{task_id} — Wrapped response {"code":"success","data":{...}}, status value is "succeeded" on completion.
  • GET /v1/videos/{task_id} — Flat response {"id":"...","status":"completed",...}, status value is "completed" on completion.

Use either endpoint to poll task status; just be aware of the different status field values when parsing results.


API List

MethodPathDescription
POST/v1/video/generationsSubmit video generation task (standard format)
GET/v1/video/generations/{task_id}Query task status (standard format)
POST/v1/videosSubmit video generation task
GET/v1/videos/{task_id}Query task status
GET/v1/videos/{task_id}/contentGet 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": 8.0,
    "negativePrompt": "blurry, low quality",
    "personGeneration": "allow_all",
    "resolution": "1080p",
    "sampleCount": 1,
    "storageUri": "gs://your-bucket/path"
  }
}

Request Parameters:

ParameterTypeRequiredDescription
modelstringYesModel name, e.g., veo-3.0-generate-001
promptstringYesText prompt describing the video content to be generated
metadataobjectNoExtended parameters object

metadata Parameters:

ParameterTypeRequiredDescription
aspectRatiostringNoVideo aspect ratio, options: "16:9", "9:16"
durationSecondsnumberNoVideo duration (seconds), options: 4, 6, 8
negativePromptstringNoNegative prompt describing content not desired in the video
personGenerationstringNoPerson generation strategy, options: "allow_all" (text-to-video), "allow_adult" (image-to-video)
resolutionstringNoVideo resolution, e.g., "1080p", "720p"
sampleCountnumberNoNumber of videos to generate, default 1
storageUristringNoGoogle 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:

ParameterTypeRequiredDescription
Content-TypestringYesapplication/json
AuthorizationstringYesBearer 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:

FieldTypeDescription
task_idstringTask ID for subsequent task status queries
modelstringModel 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:

ParameterTypeRequiredDescription
AuthorizationstringYesBearer API_KEY

Path Parameters:

ParameterTypeRequiredDescription
task_idstringYesTask 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"
  }
}

Note: Depending on the AI service provider, the video will be returned either as base64-encoded data in the bytes_base64_encoded field (Vertex) or via a content URL in the url field (Gemini).

Response Field Descriptions:

FieldTypeDescription
codestringResponse status code, "success" indicates success
dataobjectTask data object
data.task_idstringTask ID
data.statusstringTask status: queued, in_progress, succeeded, failed
data.formatstringVideo format, e.g., "mp4"
data.urlstringVideo access URL (when task succeeds)
data.errorobjectError information (when task fails)
messagestringError message

Important Notice

NOTE: Due to Google's Responsible AI Guidelines, some tasks going through the Gemini channel may return a successful response but have their video outputs blocked. In this case, the filtering details will be visible in the metadata.rai_media_filtered_count and metadata.rai_media_filtered_reasons fields like in the below example:

{
  "code": "success",
  "message": "",
  "data": {
    "bytes_base64_encoded": "",
    "error": null,
    "format": "mp4",
    "metadata": {
      "rai_media_filtered_count": 1,
      "rai_media_filtered_reasons": ["Sorry, we can't create videos with real people's names or likenesses. Please remove the celebrity reference and try again."]
    },
    "status": "succeeded",
    "task_id": "bW9kZWxzL3Zlby0zLjAtZmFzdC1nZW5lcmF0ZS0wMDEvb3BlcmF0aW9ucy9hd2IxZDhsNDVydGM",
    "url": "Sorry, we can't create videos with real people's names or likenesses. Please remove the celebrity reference and try again."
  }
}

How is this guide?

Last updated on