API Endpoints

Complete reference for all VEO3 API endpoints. Generate videos, check status, download results, and manage your video generation workflow.

6 EndpointsREST APIJSON Responses

Authentication

All endpoints require authentication headers for secure access

X-API-KeyRequired
Your VEO3 API key for authentication
X-API-Key: veo3_your_api_key_here
Content-TypeRequired
Request content type (application/json or multipart/form-data)
Content-Type: application/json

Endpoint Overview

Quick reference for all available endpoints and their purposes

Generate Video from Text
POST
Generate videos from text prompts using VEO models
/api/veo/text-to-video
Generate Video from Image
POST
Generate videos from images with text guidance
/api/veo/image-to-video
Check Generation Status
GET
Check the status of a video generation task
/api/veo/status/{taskId}
Download Generated Videos
GET
Get download URLs for completed videos
/api/veo/download/{taskId}
Get Generation History
GET
Retrieve your video generation history
/api/veo/history
Get Available Models
GET
Retrieve a list of available VEO models
/api/veo/models

Detailed Reference

Complete documentation for each endpoint with request/response examples

Generate Video from Text
Generate videos from text prompts using VEO models
POST

Endpoint URL

POST https://api.veo3gen.co/api/veo/text-to-video

Content Type

application/json

Request Body

{
  "prompt": "A majestic dragon soaring through clouds above a fantasy castle",
  "model": "veo-3.0-generate-preview",
  "sampleCount": 1,
  "durationSeconds": 8,
  "aspectRatio": "16:9",
  "generateAudio": true,
  "enhancePrompt": true,
  "negativePrompt": "blurry, low quality",
  "seed": 12345,
  "personGeneration": "allow_adult"
}

Response Example

{
  "success": true,
  "message": "Video generation started",
  "taskId": "veo_1703123456789_abc123def",
  "status": "pending",
  "estimatedWaitTime": "60-120 seconds",
  "creditsUsed": 500,
  "remainingCredits": 600,
  "statusUrl": "/api/veo/status/veo_1703123456789_abc123def",
  "downloadUrl": "/api/veo/download/veo_1703123456789_abc123def"
}

cURL Example

curl -X POST "https://api.veo3gen.co/api/veo/text-to-video" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: veo3_your_api_key_here" \
  -d '{
    "prompt": "A peaceful lake surrounded by mountains at sunset",
    "model": "veo-3.0-fast-generate-preview",
    "durationSeconds": 8,
    "generateAudio": true
  }'
Generate Video from Image
Generate videos from images with text guidance
POST

Endpoint URL

POST https://api.veo3gen.co/api/veo/image-to-video

Content Type

multipart/form-data

Request Body

image: (file) - Image file (JPEG or PNG, max 20MB)
prompt: "Animate this landscape with gentle wind movement"
model: "veo-3.0-generate-preview"
sampleCount: 1
durationSeconds: 8
aspectRatio: "16:9"
generateAudio: true
enhancePrompt: true
negativePrompt: "static, frozen"
seed: 12345
personGeneration: "allow_adult"

Response Example

{
  "success": true,
  "message": "Video generation started",
  "taskId": "veo_1703123456789_xyz789abc",
  "status": "pending",
  "estimatedWaitTime": "60-120 seconds",
  "creditsUsed": 500,
  "remainingCredits": 200,
  "statusUrl": "/api/veo/status/veo_1703123456789_xyz789abc",
  "downloadUrl": "/api/veo/download/veo_1703123456789_xyz789abc",
  "imageInfo": {
    "originalName": "landscape.jpg",
    "size": 1048576,
    "mimeType": "image/jpeg"
  }
}

cURL Example

curl -X POST "https://api.veo3gen.co/api/veo/image-to-video" \
  -H "X-API-Key: veo3_your_api_key_here" \
  -F "image=@landscape.jpg" \
  -F "prompt=Animate this landscape with gentle wind movement" \
  -F "model=veo-3.0-generate-preview" \
  -F "durationSeconds=8" \
  -F "generateAudio=true"
Check Generation Status
Check the status of a video generation task
GET

Endpoint URL

GET https://api.veo3gen.co/api/veo/status/{taskId}

Content Type

N/A

Request Parameters

No request body required

Response Example

{
  "success": true,
  "taskId": "veo_1703123456789_abc123def",
  "status": "completed",
  "type": "text-to-video",
  "model": "veo-3.0-generate-preview",
  "prompt": "A majestic dragon soaring through clouds above a fantasy castle",
  "parameters": {
    "sampleCount": 1,
    "durationSeconds": 8,
    "aspectRatio": "16:9",
    "generateAudio": true,
    "enhancePrompt": true,
    "negativePrompt": "blurry, low quality",
    "seed": 12345,
    "personGeneration": "allow_adult"
  },
  "creditsCost": 500,
  "createdAt": "2023-12-20T10:30:45.123Z",
  "completedAt": "2023-12-20T10:32:15.456Z",
  "processingTime": 90,
  "videos": [
    {
      "url": "https://storage.googleapis.com/veo3videosave/signed-url-here",
      "mimeType": "video/mp4",
      "expiresAt": "2023-12-21T10:32:15.456Z"
    }
  ],
  "downloadUrl": "/api/veo/download/veo_1703123456789_abc123def"
}

cURL Example

curl -X GET "https://api.veo3gen.co/api/veo/status/veo_1703123456789_abc123def" \
  -H "X-API-Key: veo3_your_api_key_here"
Download Generated Videos
Get download URLs for completed videos
GET

Endpoint URL

GET https://api.veo3gen.co/api/veo/download/{taskId}

Content Type

N/A

Request Parameters

No request body required

Response Example

{
  "success": true,
  "taskId": "veo_1703123456789_abc123def",
  "videos": [
    {
      "url": "https://storage.googleapis.com/veo3videosave/signed-url-here",
      "mimeType": "video/mp4",
      "expiresAt": "2023-12-21T10:32:15.456Z"
    }
  ],
  "totalVideos": 1
}

cURL Example

curl -X GET "https://api.veo3gen.co/api/veo/download/veo_1703123456789_abc123def" \
  -H "X-API-Key: veo3_your_api_key_here"
Get Generation History
Retrieve your video generation history
GET

Endpoint URL

GET https://api.veo3gen.co/api/veo/history

Content Type

N/A

Request Parameters

Query Parameters:
- limit (optional): Number of records (default: 20, max: 100)
- skip (optional): Number of records to skip (default: 0)
- status (optional): Filter by status (pending, processing, completed, failed)

Response Example

{
  "success": true,
  "videos": [
    {
      "taskId": "veo_1703123456789_abc123def",
      "type": "text-to-video",
      "model": "veo-3.0-generate-preview",
      "prompt": "A majestic dragon soaring through clouds above a fantasy castle",
      "status": "completed",
      "creditsCost": 500,
      "createdAt": "2023-12-20T10:30:45.123Z",
      "completedAt": "2023-12-20T10:32:15.456Z",
      "processingTime": 90,
      "videoCount": 1,
      "apiKey": "Production API Key",
      "hasImage": false
    }
  ],
  "pagination": {
    "total": 45,
    "limit": 20,
    "skip": 0,
    "hasMore": true
  }
}

cURL Example

curl -X GET "https://api.veo3gen.co/api/veo/history?limit=10&status=completed" \
  -H "X-API-Key: veo3_your_api_key_here"
Get Available Models
Retrieve a list of available VEO models
GET

Endpoint URL

GET https://api.veo3gen.co/api/veo/models

Content Type

N/A

Request Parameters

No request body required

Response Example

{
  "success": true,
  "models": [
    {
      "modelId": "veo-3.0-fast-generate-preview",
      "name": "VEO 3.0 Fast",
      "description": "The \"VEO 3.0 Fast\" model is optimized for speed, delivering quality results with minimal wait time. Ideal for prototyping and high-volume generation.",
      "type": "text-to-video",
      "quality": "standard",
      "speed": "fast",
      "credits": 80
    },
    {
      "modelId": "veo-3.0-generate-preview",
      "name": "VEO 3.0 Generate",
      "description": "The \"VEO 3.0 Generate\" model provides the highest quality video output, perfect for production-ready content. Supports both text-to-video and image-to-video.",
      "type": "text-to-video, image-to-video",
      "quality": "premium",
      "speed": "normal",
      "credits": 400
    }
  ]
}

cURL Example

curl -X GET "https://api.veo3gen.co/api/veo/models" \
  -H "X-API-Key: veo3_your_api_key_here"

HTTP Status Codes

Understanding response status codes and their meanings

200
OK - Request successful
202
Accepted - Video generation started
400
Bad Request - Invalid parameters
401
Unauthorized - Invalid API key
402
Payment Required - Insufficient credits
404
Not Found - Task or resource not found
413
Payload Too Large - File size exceeds limit
429
Too Many Requests - Rate limit exceeded
500
Internal Server Error - Server error

Rate Limits & Constraints

Understanding API limitations and constraints

Request Limits
Per Minute:10 requests
Per Request:2 videos max
Concurrent:5 generations
File Constraints
Max Size:20MB
Formats:JPEG, PNG
Upload Type:Image files only
Response Headers
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1703123456

Typical Workflow

Common patterns for using the API endpoints together

Complete Video Generation Workflow
Step-by-step process from generation to download
1
Start Generation
POST to /api/veo/text-to-video or /api/veo/image-to-video
2
Monitor Progress
GET /api/veo/status/{taskId} to check completion
3
Download Results
GET /api/veo/download/{taskId} when status is "completed"
4
Review History
GET /api/veo/history to track all generations

Next Steps

Continue learning about parameters, error handling, and examples