Quick Start Guide
Generate your first video with VEO3 in under 5 minutes. From API key to downloaded video.
5 Minutes3 Simple StepsCopy-Paste Ready
Before You Start
A VEO3 account (sign up is free)
Basic knowledge of APIs and HTTP requests
A tool to make API requests (curl, Postman, or code)
1
Get Your API Key
2 minutesSign up and obtain your VEO3 API key
2
Make Your First Request
1 minuteGenerate your first video from text
What you'll do:
- Use the provided code examples
- Replace YOUR_API_KEY with actual key
- Send a POST request to /text-to-video
- Wait for the task ID response
- Generation starts automatically
Copy-Paste cURL Command
curl -X POST "https://api.veo3gen.co/api/veo/text-to-video" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cute cat playing with a ball of yarn",
"model": "veo-3.0-fast-generate-preview"
}'Expected Response
{
"success": true,
"message": "Video generation started",
"taskId": "veo_1703123456789_abc123def",
"status": "pending",
"estimatedWaitTime": "60-120 seconds",
"creditsUsed": 190,
"remainingCredits": 20
}3
Check Status & Download
2 minutesMonitor progress and get your video
What you'll do:
- Poll the status endpoint every 10 seconds
- Wait for status to change to 'completed'
- Use the download endpoint to get video URL
- Download your generated video
- Video link expires in 24 hours
Check Status (Replace TASK_ID)
curl -X GET "https://api.veo3gen.co/api/veo/status/TASK_ID" \
-H "X-API-Key: YOUR_API_KEY"When Complete, Download Video
curl -X GET "https://api.veo3gen.co/api/veo/download/TASK_ID" \
-H "X-API-Key: YOUR_API_KEY"Complete Example
End-to-end code example in different programming languages
JavaScript/Node.js
const apiKey = 'veo3_your_api_key_here';
const baseURL = 'https://api.veo3gen.co';
async function generateVideo() {
try {
// 1. Start generation
const response = await fetch(`${baseURL}/api/veo/text-to-video`, {
method: 'POST',
headers: {
'X-API-Key': apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: 'A beautiful sunset over mountains',
model: 'veo-3.0-fast-generate-preview'
})
});
const result = await response.json();
console.log('Generation started:', result.taskId);
// 2. Poll for completion
while (true) {
const statusResponse = await fetch(
`${baseURL}/api/veo/status/${result.taskId}`,
{ headers: { 'X-API-Key': apiKey } }
);
const status = await statusResponse.json();
console.log('Status:', status.status);
if (status.status === 'completed') {
// 3. Get download URL
const downloadResponse = await fetch(
`${baseURL}/api/veo/download/${result.taskId}`,
{ headers: { 'X-API-Key': apiKey } }
);
const download = await downloadResponse.json();
console.log('Video ready:', download.videos[0].url);
break;
}
if (status.status === 'failed') {
console.error('Generation failed:', status.error);
break;
}
// Wait 10 seconds before checking again
await new Promise(resolve => setTimeout(resolve, 10000));
}
} catch (error) {
console.error('Error:', error);
}
}
generateVideo();Python
import requests
import time
api_key = 'veo3_your_api_key_here'
base_url = 'https://api.veo3gen.co'
headers = {'X-API-Key': api_key}
def generate_video():
try:
# 1. Start generation
response = requests.post(
f'{base_url}/api/veo/text-to-video',
headers={**headers, 'Content-Type': 'application/json'},
json={
'prompt': 'A beautiful sunset over mountains',
'model': 'veo-3.0-fast-generate-preview'
}
)
result = response.json()
task_id = result['taskId']
print(f'Generation started: {task_id}')
# 2. Poll for completion
while True:
status_response = requests.get(
f'{base_url}/api/veo/status/{task_id}',
headers=headers
)
status = status_response.json()
print(f'Status: {status["status"]}')
if status['status'] == 'completed':
# 3. Get download URL
download_response = requests.get(
f'{base_url}/api/veo/download/{task_id}',
headers=headers
)
download = download_response.json()
print(f'Video ready: {download["videos"][0]["url"]}')
break
if status['status'] == 'failed':
print(f'Generation failed: {status["error"]}')
break
# Wait 10 seconds before checking again
time.sleep(10)
except Exception as e:
print(f'Error: {e}')
generate_video()What's Next?
Now that you've generated your first video, explore more features