Skip to main content
POST
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the result through the unified Query Task Status endpoint.

Parameters

Use model kwaivgi/kling-video-o3-4k/image-to-video. Put generation parameters inside input.
  • image_urls: Required: an array of 1–2 images. The first is the starting frame; the optional second is the ending frame. Accepts public HTTP(S) URLs, image Data URIs or raw Base64 image data.
  • prompt: Required when multi_shots=false. Describe the scene, action and camera movement. Use nonblank text, up to 2,500 characters after trimming. Omit prompt when multi_shots=true.
  • multi_prompt: Required when multi_shots=true; omit in single-shot mode. Supply at least one shot, each with a nonblank prompt of up to 2,500 characters and an integer duration of 1–12 seconds. Shot durations must sum to the top-level duration (3–15 seconds). Extra fields inside a shot are ignored.
  • duration: Required integer from 3 to 15 seconds. In multi-shot mode, this must equal the sum of all shot durations. Credits are calculated using this value.
  • multi_shots: Required: explicitly send false for a single shot or true for multiple shots. Single-shot mode requires prompt. Multi-shot mode requires multi_prompt and sound=true, with no nonblank top-level prompt. Omitting this field is an error.
  • sound: Required: explicitly send true to generate audio or false for video without audio. Single-shot mode accepts either value; multi-shot mode requires true.
  • aspect_ratio: May be omitted. If provided, use 16:9, 9:16 or 1:1. Image-to-video ignores this value; framing is determined by the input image.
Use standard JSON numbers and booleans. For compatibility, integer strings such as “5” are accepted. Boolean strings true/1/yes/y/on mean true; false/0/no/n/off mean false. These strings are case-insensitive and trimmed. Numeric 1 and 0 are also accepted for boolean fields. Numeric and boolean prompt values are converted to text; 0, false and null are treated as empty. Objects and arrays are not accepted as prompts. Unsupported input fields are rejected. HTTP(S) URLs must have a hostname and no embedded credentials.

Billing Factors

Billed per generated second using the 4K model tier. Video duration (duration) determines usage; enabling or disabling audio (sound) does not change the rate. Failed generation tasks are refunded.

Default example: The Greenhouse Trap

This is the same default example shown on the model page.
Starting frame Download this video

Completed result from the status endpoint

GET /api/generate/status/{task_id} The response below records this verified example. For a new generation, query the task ID returned by your own submission.
The API validates prompts up to 2,500 characters. Some multi-shot generation requests have failed when a shot prompt exceeded 512 characters. We recommend keeping each shot prompt within 512 characters; this recommendation does not change the API validation limit.

Authorizations

Authorization
string
header
required

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.

model
string
required
Example:

"kwaivgi/kling-video-o3-4k/image-to-video"

input
object
required

Video generation parameters. Use standard JSON numbers and booleans. For compatibility, integer strings such as "5" are accepted. Boolean strings true/1/yes/y/on mean true; false/0/no/n/off mean false. These strings are case-insensitive and trimmed. Numeric 1 and 0 are also accepted for boolean fields. Numeric and boolean prompt values are converted to text; 0, false and null are treated as empty. Objects and arrays are not accepted as prompts.

callback_url
string | null

Optional public HTTP(S) endpoint for task completion notifications. HTTPS is recommended. Omit, use null, or use an empty string to disable callbacks.

Response

Task submitted

code
enum<integer>
required
Available options:
200
data
object
required