Kling 3.0 Omni Text-to-Video API
https://api.hiapi.ai /v1/tasks Image, video, and audio models are called through theUnified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).
Model summary
| Model name | kling-3.0-omni/text-to-video |
|---|---|
| Type | Video generation (text-to-video) |
| Endpoint | POST /v1/tasks |
| Pricing | See HiAPI Pricing |
Kling 3.0 Omni text-to-video turns a prompt into a 3–15 second clip at 720p to 4k, with 16:9 / 9:16 / 1:1 output, native synchronized audio, smart multi-shot planning, and @name subject references for consistent characters.
Production guidance
- For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
- GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
- Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.
Best suited for
Describe the scene, motion, and camera work in text and get a cinematic shot.
promptdurationresolutionTurn on audio to generate ambience and sound effects together with the picture.
audioTurn on prefer_multi_shots to let the model plan several shots from one prompt.
prefer_multi_shotsPass several images of the same subject in elements and reference it as @name in the prompt.
elementsRequest parameters
model string required Fixed value kling-3.0-omni/text-to-video.
input object required Model-specific parameters. Put the Kling 3.0 Omni Text-to-Video configuration here.
prompt string required Describe the scene, subject motion, and camera work. To use a subject from elements, mention it in the prompt as @name. 1–3072 characters.
duration integer optional Video length in seconds; any integer from 3 to 15.
resolution enum optional Resolution of the generated video.
audio boolean optional Whether to generate native audio synchronized with the picture (ambience and sound effects).
aspect_ratio enum optional Aspect ratio of the generated video.
prefer_multi_shots boolean optional Smart multi-shot: when enabled, the model plans multiple shots from the prompt automatically.
elements object[] optional Reusable subjects, up to 7. Each has a name, a short description, and 2–4 images of the same subject; reference it in the prompt as @name to keep the character or object consistent across the video.
name string required Unique subject name without spaces; referenced in the prompt as @name.
description string required Short description of the subject.
element_input_urls string[] required 2–4 image URLs of the same subject, JPG/PNG.
callback object optional Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.
url string required Required when callback is set; HTTPS URL that receives terminal task notifications.
when enum optional Callback trigger timing. Use final.
Example requests
Minimal text-to-video example: 3 seconds, 720p, 16:9, no audio.
{
"model": "kling-3.0-omni/text-to-video",
"input": {
"prompt": "A paper boat drifts down a rain-soaked city gutter at dusk, neon signs reflecting and rippling on the water; the camera glides low beside it as raindrops splash around. Cinematic, shallow depth of field, smooth tracking motion.",
"duration": 3,
"resolution": "720p",
"audio": false,
"aspect_ratio": "16:9"
}
}Portrait 9:16 at 4k, 8 seconds, with native audio enabled.
{
"model": "kling-3.0-omni/text-to-video",
"input": {
"prompt": "Morning fog slowly lifts over a fishing harbor; boats rock gently on the water, the low sun breaks through the haze onto the wet pier, and the camera pushes in slowly along the dock. Photorealistic, calm, with ambient waves and gulls.",
"duration": 8,
"resolution": "4k",
"audio": true,
"aspect_ratio": "9:16"
}
}Pass three images of the same character in elements, reference it as @mika in the prompt, and enable smart multi-shot for a 10-second clip. Replace the example URLs with publicly accessible subject images.
{
"model": "kling-3.0-omni/text-to-video",
"input": {
"prompt": "@mika walks into an old-fashioned cafe; the door chime rings as she enters, she sits by the window and opens a notebook. Several shots: wide shot at the door, medium shot sitting down, close-up turning a page. Warm afternoon light, cinematic.",
"elements": [
{
"name": "mika",
"description": "Short-haired girl in a beige trench coat with round glasses",
"element_input_urls": [
"https://example.com/mika-front.jpg",
"https://example.com/mika-side.jpg",
"https://example.com/mika-back.jpg"
]
}
],
"duration": 10,
"resolution": "1080p",
"audio": true,
"aspect_ratio": "9:16",
"prefer_multi_shots": true
}
}Getting the result
- The response returns a taskId immediately without waiting for generation to finish.
- In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
- When status=success, download the generated video from output[].url.
- When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.
FAQ
What are the prompt limits?
prompt accepts 1–3072 characters. Describe the scene, subject motion, and camera work; reference elements subjects as @name.
How do I keep the same character consistent across videos?
Pass 2–4 images of the character in elements with a name, then reference it as @name in the prompt. Up to 7 subjects per request.
What does audio generate?
Native audio synchronized with the picture, including ambience and sound effects. It is off by default.
What is prefer_multi_shots?
Smart multi-shot. When enabled, the model plans several shots from the prompt and cuts between them, which suits narrative content. It is off by default.
How is it billed?
See the live prices on the HiAPI pricing page. View pricing