API Endpoints

Complete reference for all VEO3 API endpoints with request/response examples and authentication details.

REST API6 EndpointsJSON Responses
Base URL
https://api.veo3gen.co

All endpoints are prefixed with the base URL. Authentication required for all requests.

Available Endpoints

Overview of all VEO3 API endpoints

POST
Generate Video from Text
Generate videos from descriptive text prompts
POST /api/veo/text-to-video
POST
Generate Video from Image
Generate videos from images with text guidance (multipart/form-data)
POST /api/veo/image-to-video
GET
Check Generation Status
Monitor the progress of video generation
GET /api/veo/status/{taskId}
GET
Download Videos
Get secure download URLs for completed videos
GET /api/veo/download/{taskId}
GET
Generation History
Retrieve your video generation history
GET /api/veo/history
GET
Available Models
Get information about available VEO models
GET /api/veo/models

1. Generate Video from Text

Generate videos from descriptive text prompts using VEO models

Endpoint Details
POST/api/veo/text-to-video

Headers

Content-Type: application/json
X-API-Key: veo3_your_api_key_here

Request Body

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

Response (202 Accepted)

{
  "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 "X-API-Key: veo3_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A majestic dragon soaring through clouds above a fantasy castle",
    "model": "veo-3.1-fast-generate-001",
    "generateAudio": true,
    "enhancePrompt": true
  }'

2. Generate Video from Image

Upload a reference image (JPEG or PNG, up to 20MB) with a text prompt. Uses multipart/form-data with field image for the file. Other options match text-to-video (sent as form fields).

Image-to-video request
POST/api/veo/image-to-video

Supported models

  • All Veo 3.0 and Veo 3.1 models support image-to-video.
  • Veo 3.1 Quality and Fast also support first+last frame via /api/veo/first-last-frame.
  • Credits are calculated from the selected model tier and generateAudio, same idea as text-to-video.

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=@/path/to/reference.jpg" \
  -F "prompt=Camera slowly pushes in while leaves drift in the wind" \
  -F "model=veo-3.1-generate-001" \
  -F "generateAudio=true"

Successful response (202)

Same shape as text-to-video: taskId, statusUrl, downloadUrl, creditsCost, plus imageInfo with original filename, size, and MIME type.

3. Check Generation Status

Monitor the progress of your video generation requests

Status Monitoring
GET/api/veo/status/{taskId}

Response (Completed)

{
  "success": true,
  "taskId": "veo_1703123456789_abc123def",
  "status": "completed",
  "type": "text-to-video",
  "model": "veo-3.0-generate-preview",
  "prompt": "A majestic dragon soaring...",
  "creditsCost": 500,
  "createdAt": "2023-12-20T10:30:45.123Z",
  "completedAt": "2023-12-20T10:32:15.456Z",
  "processingTime": 90,
  "videos": [
    {
      "url": "https://storage.googleapis.com/veo3gen-gen-video/videos/task-id/sample_0.mp4",
      "mimeType": "video/mp4",
      "expiresAt": "2023-12-21T10:32:15.456Z"
    }
  ]
}

Status Values

pending

Request queued for processing

processing

Video is being generated

completed

Generation finished successfully

failed

Generation failed (credits refunded)

4. Download Videos

Get secure download URLs for your completed videos

Video Downloads
GET/api/veo/download/{taskId}

Response

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

Important Notes

  • • Download URLs are time-limited and expire after 24 hours
  • • Videos are in MP4 format with H.264 encoding
  • • Multiple videos available if sampleCount > 1

5. Generation History

Retrieve your video generation history with pagination and filtering

History & Analytics
GET/api/veo/history

Query Parameters

limit

Records to return (max 100)

skip

Records to skip (pagination)

status

Filter by status

Example Request

GET /api/veo/history?limit=20&status=completed

Response

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

6. Available Models

Get information about available VEO models and their capabilities

Model Information
GET/api/veo/models

Response

{
  "success": true,
  "models": [
    {
      "id": "veo-3.0-generate-001",
      "name": "Veo 3.0 Quality",
      "description": "High-quality video with audio",
      "capabilities": ["text-to-video", "image-to-video", "audio-generation"],
      "pricing": { "creditsPerVideo": 500, "creditsPerVideoNoAudio": 250 }
    },
    {
      "id": "veo-3.0-fast-generate-001",
      "name": "Veo 3.0 Fast",
      "description": "Fast video generation with audio",
      "capabilities": ["text-to-video", "image-to-video", "audio-generation"],
      "pricing": { "creditsPerVideo": 190, "creditsPerVideoNoAudio": 120 }
    },
    {
      "id": "veo-3.1-generate-001",
      "name": "Veo 3.1 Quality",
      "description": "Latest Veo 3.1 high-quality video with first+last frame support",
      "capabilities": ["text-to-video", "image-to-video", "first-last-frame", "audio-generation"],
      "pricing": { "creditsPerVideo": 500, "creditsPerVideoNoAudio": 250 }
    },
    {
      "id": "veo-3.1-fast-generate-001",
      "name": "Veo 3.1 Fast",
      "description": "Latest Veo 3.1 fast video with first+last frame support",
      "capabilities": ["text-to-video", "image-to-video", "first-last-frame", "audio-generation"],
      "pricing": { "creditsPerVideo": 190, "creditsPerVideoNoAudio": 120 }
    },
    {
      "id": "veo-3.1-lite-generate-001",
      "name": "Veo 3.1 Lite",
      "description": "Affordable 720p video generation — cheapest option",
      "capabilities": ["text-to-video", "image-to-video", "audio-generation"],
      "pricing": { "creditsPerVideo": 65, "creditsPerVideoNoAudio": 35 }
    }
  ],
  "defaultModel": "veo-3.1-fast-generate-001"
}

Authentication

All endpoints require proper authentication

Required Header

X-API-Key: veo3_your_api_key_here

Get your API key from the dashboard and include it in all requests.Learn more about authentication →

Next Steps

Ready to start using the API? Explore these resources