Skip to main content
POST
Generate video with Kling V3 Omni

Authorizations

Authorization
string
header
required

API key as a bearer token: Authorization: Bearer bpx_live_xxx

Body

application/json
prompt
string
required

Text description of the video.

aspect_ratio
enum<string>
default:16:9

Aspect ratio. Ignored when an input image or video already sets the frame.

Available options:
16:9,
9:16,
1:1
end_image
string

Optional end frame, used together with image (the start frame) to interpolate the video between the two frames. Same input forms as image.

generate_audio
boolean

Generate audio with the video. Raises the 720p/1080p per-second rate (no price impact at 4K); unavailable on video-edit.

image
string

Optional start frame for image-to-video. Provide a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-video. Can't be combined with reference_images.

length_seconds
integer
default:5

Video length in seconds (3–15). For video-edit, set this to the input video's rounded duration.

Required range: 3 <= x <= 15
reference_images
string[]

Optional reference images that guide the generated video. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Can't be combined with image/end_image (start/end frames). Up to 7 on their own (reference-images-to-video); up to 4 when accompanying a video edit.

Maximum array length: 7
resolution
enum<string>
default:720p

Output resolution. Pricing varies by resolution — see resolution_pricing in GET /v1/models.

Available options:
720p,
1080p,
4k
video
string

Optional input video for video-to-video editing. Provide a public video URL or an uploaded-file URL from POST /v1/uploads (videos are passed by URL, not inlined). When set, the request runs in video-edit mode: up to 4 reference_images may guide the edit, start/end frames are not supported, audio is always off, and the output length matches the input video — set length_seconds to the input's duration rounded to whole seconds (3–15), which is what billing uses.

Response

Job accepted.

id
string

Opaque job id — use it to poll status.

message
string
model
string
status
enum<string>

Lifecycle state. succeeded/failed/timeout are terminal.

Available options:
pending,
starting,
processing,
completing,
succeeded,
failed,
timeout