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
Base URL:
https://api.veo3gen.co - All endpoints use this base URL with HTTPS.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_hereContent-TypeRequired
Request content type (application/json or multipart/form-data)
Content-Type: application/jsonEndpoint Overview
Quick reference for all available endpoints and their purposes
Generate Video from Text
Generate videos from text prompts using VEO models
/api/veo/text-to-videoGenerate Video from Image
Generate videos from images with text guidance
/api/veo/image-to-videoCheck Generation Status
Check the status of a video generation task
/api/veo/status/{taskId}Download Generated Videos
Get download URLs for completed videos
/api/veo/download/{taskId}Get Generation History
Retrieve your video generation history
/api/veo/historyGet Available Models
Retrieve a list of available VEO models
/api/veo/modelsDetailed 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-videoContent Type
application/jsonRequest 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-videoContent Type
multipart/form-dataRequest 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/ARequest Parameters
No request body requiredResponse 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/ARequest Parameters
No request body requiredResponse 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/historyContent Type
N/ARequest 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/modelsContent Type
N/ARequest Parameters
No request body requiredResponse 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