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/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": 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 Image to Video
Kling 2.1 Standard image-to-video with a required start 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/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": 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>"
}- 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
- kwaivgi/kling-video/v2.1/standard/image-to-video - Generate video from image input.
Features
- Generate video from image input.
- Use
start_image_urlto supply the starting frame. - For an optional ending frame, use the Pro endpoint.
Duration Options
- 5, 10 seconds - Set
durationas an integer. Optional. Default: 5 seconds when omitted. Strings, booleans, null and fractional values are rejected.
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.
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.