curl --request POST \
--url https://api.aihubmax.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "vidu-q3-pro",
"prompt": "A cinematic street food scene at night, sizzling skewers, neon reflections on wet pavement, handheld motion",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"generate_audio": true
}
'{
"created": 1757165031,
"id": "task-unified-1757165031-uyujaw3d",
"model": "<string>",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "video"
}{
"error": {
"message": "Bad request format",
"type": "invalid_request_error"
}
}{
"error": {
"message": "Invalid API key",
"type": "authentication_error"
}
}{
"error": {
"message": "Insufficient account balance",
"type": "insufficient_quota"
}
}{
"error": {
"message": "Parameter validation failed",
"type": "validation_error"
}
}{
"error": {
"message": "Rate limit exceeded",
"type": "rate_limit_error"
}
}{
"error": {
"message": "Internal server error",
"type": "server_error"
}
}{
"error": {
"message": "Service temporarily unavailable, please try again later",
"type": "service_unavailable"
}
}Vidu Q3 Video Generation
- Vidu Q3 video generation model, supports text-to-video, image-to-video, and first-last-frame transition
- Supports
360p/540p/720p/1080poutput, with optional audio generation - Async processing mode, use the returned task ID to query task status
- Generated video links are valid for 24 hours, please save them promptly
curl --request POST \
--url https://api.aihubmax.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "vidu-q3-pro",
"prompt": "A cinematic street food scene at night, sizzling skewers, neon reflections on wet pavement, handheld motion",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"generate_audio": true
}
'{
"created": 1757165031,
"id": "task-unified-1757165031-uyujaw3d",
"model": "<string>",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "video"
}{
"error": {
"message": "Bad request format",
"type": "invalid_request_error"
}
}{
"error": {
"message": "Invalid API key",
"type": "authentication_error"
}
}{
"error": {
"message": "Insufficient account balance",
"type": "insufficient_quota"
}
}{
"error": {
"message": "Parameter validation failed",
"type": "validation_error"
}
}{
"error": {
"message": "Rate limit exceeded",
"type": "rate_limit_error"
}
}{
"error": {
"message": "Internal server error",
"type": "server_error"
}
}{
"error": {
"message": "Service temporarily unavailable, please try again later",
"type": "service_unavailable"
}
}Authorizations
All endpoints require Bearer Token authentication
Add the following to your request headers:
Authorization: Bearer YOUR_API_KEY
Body
vidu-q3-pro: Standard version, supports text-to-video, image-to-video, first-last-frame transition, and reference-to-video
vidu-q3-turbo: Accelerated version, supports text-to-video, image-to-video, and first-last-frame transition, does not support reference-to-video
"vidu-q3-pro"
"vidu-q3-turbo"
Generation mode
Options:
text-to-video— Generate video from text only, do not passimage_urlsimage-to-video— Single image to video,image_urlsmust contain exactly 1 imagefirst-last-frame— First-last frame transition video,image_urlsmust contain exactly 2 imagesreference-to-video— Reference image to video,image_urlscan contain 1-4 images
Notes:
- If not specified, it will be automatically inferred based on input: 0 images →
text-to-video, 1 image →image-to-video, 2 images →first-last-frame, 3-4 images →reference-to-video vidu-q3-turbodoes not supportreference-to-video
text-to-video, image-to-video, first-last-frame, reference-to-video "text-to-video"
Text prompt describing the desired video content
Notes:
- Required for
text-to-videoandreference-to-video - Optional for
image-to-videoandfirst-last-frame, if not provided, generation is primarily driven by the input images - Supports both Chinese and English
2000"A cinematic tracking shot through a rainy cyberpunk alley"
List of image URLs, the number of images depends on generation_type
Notes:
text-to-video: Do not passimage-to-video: Exactly 1 imagefirst-last-frame: Exactly 2 images, in the order of first frame, last framereference-to-video: 1-4 images- Image URLs must be publicly accessible
["https://picsum.photos/id/237/1280/720.jpg"]
Output video duration (seconds)
Notes:
- Defaults to
5seconds - Must be a positive integer
x >= 15
Output video aspect ratio
Options:
16:9— Landscape (default)9:16— Portrait4:3— Traditional landscape3:4— Traditional portrait1:1— Square
16:9, 9:16, 4:3, 3:4, 1:1 "16:9"
Output video resolution
Options:
360p— Low resolution540p— Medium-low resolution720p— HD (default)1080p— Full HD
Notes:
first-last-framedoes not support360p
360p, 540p, 720p, 1080p "540p"
Whether to generate accompanying audio
Notes:
- Enabled by default
- Set to
falseto generate video only without sound
true
Random seed for improving result reproducibility
Not recommended unless specifically needed.
0 <= x <= 214748364742
Response
Task created successfully
Task creation timestamp
1757165031
Task ID
"task-unified-1757165031-uyujaw3d"
Actual model name used
Specific type of the task
video.generation.task Task progress percentage (0-100)
0 <= x <= 1000
Task status
pending, processing, completed, failed "pending"
Async task information
Show child attributes
Show child attributes
Output type of the task
video "video"