Integrate AI video generation into your workflows with our simple REST API. Perfect for n8n, Make, Zapier, and custom integrations.
All API requests require authentication using your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYYour API key can be found in your dashboard settings or contact support.
https://backend.veostudio.netGenerate videos from text prompts in 2 simple steps.
/api/t2v/generateStep 1curl -X POST https://backend.veostudio.net/api/t2v/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "A cat playing piano", "aspect_ratio": "landscape"}'{
"success": true,
"scene_id": "abc123...",
"name": "operations/xyz789...",
"provider": "provider-10"
}Save the name value - you'll need it to check status!
/api/t2v/statusStep 2curl -X GET "https://backend.veostudio.net/api/t2v/status?name=YOUR_OPERATION_NAME" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"status": "generating",
"download_url": null,
"prompt": "A cat playing piano",
"daily_remaining": 9883
}{
"status": "completed",
"download_url": "https://...",
"prompt": "A cat playing piano",
"daily_remaining": 9882
}Poll every 30-60 seconds until status is "completed"
Animate your images with AI in 2 simple steps.
/api/i2v/generateStep 1curl -X POST https://backend.veostudio.net/api/i2v/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image": "BASE64_STRING", "prompt": "The cat walks forward", "aspect_ratio": "portrait"}'{
"success": true,
"scene_id": "abc123...",
"name": "operations/xyz789...",
"provider": "provider-6"
}/api/i2v/statusStep 2curl -X GET "https://backend.veostudio.net/api/i2v/status?name=YOUR_OPERATION_NAME" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"status": "completed",
"download_url": "https://...",
"prompt": "The cat walks forward",
"daily_remaining": 9881
}Use a Loop node to poll the status endpoint every 30-60 seconds until status === "completed"
Use n8n's built-in HTTP Request node to fetch an image, then use the Move Binary Data node to convert it to base64
When status is "completed", use the download_url in an HTTP Request node to download the video file
The daily_remaining field shows your remaining video quota for the day
Video is ready! Use download_url to get it
Generation failed - try again with different prompt