curl --request POST \
--url https://api.vidgo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kwaivgi/kling-video/v2.1/pro/image-to-video",
"input": {
"prompt": "A quiet forest under soft morning light, with natural detail.",
"start_image_url": "https://example.com/image.png",
"duration": 5
}
}
'{
"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>"
}Kling
Kling 2.1 Pro Image to Video
Kling 2.1 Pro image-to-video with a required start frame and an optional end frame.
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": "kwaivgi/kling-video/v2.1/pro/image-to-video",
"input": {
"prompt": "A quiet forest under soft morning light, with natural detail.",
"start_image_url": "https://example.com/image.png",
"duration": 5
}
}
'{
"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>"
}- Submit the request with
VIDGO_API_KEY. Atask_idis returned immediately. Keep it until the task reachesfinishedorfailed. - Use Query Task Status to retrieve the result. If you provide a
callback_url, Vidgo sends the result to your webhook when the task finishes or fails.
Kling 2.1 Pro Image to Video
Kling 2.1 Pro image-to-video with a required start frame and an optional end frame.Available Models
- kwaivgi/kling-video/v2.1/pro/image-to-video - Generate video from image input.
Duration Options
- 5, 10 seconds - Set
durationas an integer. Optional. Default: 5 seconds when omitted. Strings, booleans, null and fractional values are rejected.
Key Features
- Generate video from image input.
- Use
start_image_urlto supply the starting frame. - Optionally supply an ending frame with
end_image_url.
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. 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 be a string and must not be blank after trimming. Non-string values are rejected.
Start Image URL
start_image_url: Required. Provide the starting frame URL. Use a publicly accessible HTTP(S) URL without credentials or whitespace. Empty URLs and null are rejected.
End Image URL
end_image_url: Optional. Provide the ending frame URL. Use a publicly accessible HTTP(S) URL without credentials or whitespace. Empty URLs and null are rejected.
Negative Prompt
negative_prompt: Optional. Describe content to avoid.
Billing Factors
Billed per video according to the selected model tier (Standard or Pro) and video duration (duration).
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.