Documentation Index
Fetch the complete documentation index at: https://docs.vidgo.ai/llms.txt
Use this file to discover all available pages before exploring further.
Welcome to Vidgo API
Vidgo API provides powerful image and video generation APIs. This guide will help you make your first API call in just a few minutes.
Step 1: Get Your API Key
- Visit the Vidgo API Console
- Sign in or create an account
- Generate a new API key
- Important: Copy and securely store your API key - it will only be displayed once
Step 2: Generate Your First Image
All API requests require your API key in the Authorization header. Here’s a complete example:
import requests
url = "https://api.vidgo.ai/api/generate/submit"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"model": "gpt-4o-image",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene mountain landscape at sunset with vibrant colors",
"size": "1:1",
"n": 1
}
}
response = requests.post(url, json=payload, headers=headers)
result = response.json()
task_id = result["data"]["task_id"]
print(f"Task ID: {task_id}")
const response = await fetch('https://api.vidgo.ai/api/generate/submit', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o-image',
callback_url: 'https://your-domain.com/callback',
input: {
prompt: 'A serene mountain landscape at sunset with vibrant colors',
size: '1:1',
n: 1
}
})
});
const result = await response.json();
const taskId = result.data.task_id;
console.log(`Task ID: ${taskId}`);
curl -X POST https://api.vidgo.ai/api/generate/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-image",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene mountain landscape at sunset with vibrant colors",
"size": "1:1",
"n": 1
}
}'
Step 3: Check Task Status
Vidgo API uses asynchronous processing. Poll the status endpoint to get your results:
import requests
import time
task_id = "task-unified-1757165031-uyujaw3d"
url = f"https://api.vidgo.ai/api/generate/status/{task_id}"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
# Poll until complete
while True:
response = requests.get(url, headers=headers)
result = response.json()
task = result["data"]
status = task['status']
progress = task.get('progress', 0)
print(f"Status: {status}, Progress: {progress}%")
if status == 'finished':
print(f"Image URL: {task['files'][0]['file_url']}")
break
elif status == 'failed':
print(f"Error: {task['error_message']}")
break
time.sleep(2) # Wait 2 seconds before next check
const taskId = 'task-unified-1757165031-uyujaw3d';
async function checkStatus() {
while (true) {
const response = await fetch(
`https://api.vidgo.ai/api/generate/status/${taskId}`,
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const result = await response.json();
const task = result.data;
const { status, progress, files, error_message } = task;
console.log(`Status: ${status}, Progress: ${progress}%`);
if (status === 'finished') {
console.log('Image URL:', files[0].file_url);
break;
} else if (status === 'failed') {
console.log('Error:', error_message);
break;
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
checkStatus();
curl -X GET https://api.vidgo.ai/api/generate/status/task-unified-1757165031-uyujaw3d \
-H "Authorization: Bearer YOUR_API_KEY"
Example Response:
{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "finished",
"progress": 100,
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/image-abc123.jpg",
"file_type": "image"
}
],
"created_time": "2025-11-12T10:30:00",
"error_message": null
}
}
Content Validity: Generated files are valid for 24 hours. Please download and save them promptly.
Step 4: Try Video Generation
Generate videos using the same pattern. Just change the model and input parameters:
payload = {
"model": "sora-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A time-lapse of a bustling city street transitioning from day to night",
"duration": 10,
"aspect_ratio": "16:9"
}
}
Step 5: Try Music Generation
Generate music with customizable styles and vocals:
payload = {
"model": "generate-music",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A calm and relaxing piano track with soft melodies",
"style": "Classical",
"title": "Peaceful Piano Meditation",
"custom_mode": True,
"instrumental": True,
"mv": "V5"
}
}
Support
Need help? We’re here to assist: