curl --request POST \
--url https://api.vidgo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "minimax/hailuo-2.3/standard/image-to-video",
"input": {
"prompt": "A quiet forest under soft morning light, with natural detail.",
"start_image_url": "https://example.com/image.png",
"duration": 6,
"resolution": "768p"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-example",
"status": "running",
"created_time": "2026-09-10T08:00:00"
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Request timeout{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}MiniMax / Hailuo
Hailuo 2.3 Image to Video
Turn a starting image into a 768p video with Hailuo 2.3 Standard, using text and optional prompt refinement to guide the motion.
POST
/
api
/
generate
/
submit
curl --request POST \
--url https://api.vidgo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "minimax/hailuo-2.3/standard/image-to-video",
"input": {
"prompt": "A quiet forest under soft morning light, with natural detail.",
"start_image_url": "https://example.com/image.png",
"duration": 6,
"resolution": "768p"
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-example",
"status": "running",
"created_time": "2026-09-10T08:00:00"
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Request timeout{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}- After submission, a
task_idwill be returned. If you provided acallback_url, when the task status becomesfinishedorfailed, a POST request will be sent to thecallback_url. - Regardless of whether
callback_urlis provided, you can retrieve the result through the unified Query Task Status endpoint.
Models
- minimax/hailuo-2.3/standard/image-to-video - Generate video from image input.
Features
- Generate video from image input.
- Use
start_image_urlto supply the starting frame. - This model ID fixes the output resolution to
768p.
Duration Options
- 6, 10 seconds - Set
durationas an integer. Optional. Default: 6 seconds.
Advanced Parameters
Setmodel and optional callback_url at the request root. Place all workflow parameters, including output options, inside input.
Send only the input fields supported by this workflow. JSON types are validated without converting strings to numbers or booleans; prompt must be a string and fractional durations are rejected. Unsupported input fields are rejected before credits are deducted. Input URLs must use HTTP(S), include a hostname, and contain no embedded credentials.
Prompt
prompt: Required. Describe the scene and desired motion. Length: 1-5,000 characters.- The value must not be blank when supplied.
Resolution
resolution: Optional. Accepted values:768p. Default:768p.
Start Image URL
start_image_url: Required. Provide the starting frame URL. Use a publicly accessible HTTP(S) URL.
Prompt Optimizer
prompt_optimizer: Optional. Control automatic prompt optimization. Usetrueorfalse. No default is specified; omit this field when unused.
Billing Factors
Billing depends on video duration (duration) using the Standard model tier. This endpoint fixes output resolution to 768p. Prompt optimization (prompt_optimizer) does not change the charge.
Credits are deducted on submission and refunded if the task fails.Authorizations
Use VIDGO_API_KEY.
Body
application/json
Keep model and callback_url at the root. Unknown root fields are ignored; unsupported input fields are rejected.