Skip to main content
POST
Kling 3.0 Omni

Headers

Authorization
string

Body

application/json
model
enum<string>
required

Model name. Must be kling-v3-omni.

Available options:
kling-v3-omni
prompt
string
required

Text prompt. Use @image_1 / @video_1 to refer to specific materials.

image_url
string<uri>

Optional. First-frame image URL.

image_end_url
string<uri>

Optional. Last-frame image URL. Requires image_url — last-frame-only is not supported.

ref_imgs
string<uri>[]

Optional reference images. Order is the @image_N numbering. image_urls is accepted as a compatible alias.

Maximum array length: 7
ref_videos
string<uri>[]

Optional reference video (.mp4 / .mov, 3–15.5s). At most one. Named as an array to match the other reference-driven endpoints (ref_imgs / ref_videos / ref_audios), even though only one is allowed. video_url is accepted as a compatible alias, and a bare string is accepted too.

Maximum array length: 1
video_type
enum<string>
default:feature

Role of video_url. See the description above. Requires ref_videos.

Available options:
feature,
base
duration
integer
default:5

Video duration in seconds. Any integer from 3 to 15.

Required range: 3 <= x <= 15
resolution
enum<string>
default:720p

Output resolution. quality is accepted as a compatible alias.

Available options:
720p,
1080p,
4k
ratio
enum<string>
default:16:9

Output aspect ratio. Only used when there is no first frame and no reference video — otherwise the material decides. aspect_ratio is accepted as a compatible alias.

Available options:
16:9,
9:16,
1:1
generate_audio
boolean
default:false

Generate a native audio track. ⚠️ Rejected together with video_type: feature. Costs more per second when there is no reference video.

multi_shots
boolean
default:false

Generate a multi-shot video. ⚠️ Rejected together with video_type: base. Note the upstream default is true; GoEnhance always sends this explicitly so an omitted value means single-shot.

custom_callback_url
string<uri>

Optional. A publicly accessible HTTPS URL. When the task status changes (processing / success / failed), GoEnhance sends a POST request to this URL. The request body is identical to the response of GET /api/v1/jobs/detail. If your server does not respond with HTTP 200, the notification is retried up to 3 times, with a 3-second timeout per attempt.

Example:

"https://your-server.com/goenhance/callback"

Response

code
integer
required
msg
string
required
data
object
required