Kling 3.0 Omni
Kling 3.0 Omni delivers high-quality text-to-video generation with smooth motion, cinematic visuals, accurate prompt adherence, and native audio for ready-to-share clips. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Kling 3.0 Omni
Kling 3.0 Omni delivers high-quality text-to-video generation with smooth motion, cinematic visuals, accurate prompt adherence, and native audio for ready-to-share clips. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Base URL
https://api.icreat.aiAuthentication
All API requests must be authenticated with an API Key. You can obtain an API Key from the console.
export ICREAT_API_KEY="your-api-key-here"HTTP Request Headers
import os
API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
}Protect your API Key
Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.
Code Examples
Image and video generation uses a two-step async flow: submit a task to get task_id, then poll via query task result; the response includes status and result ([] while processing; on SUCCEEDED, result holds resources and costUSD is present). The examples below use the same task_id across both steps.
1. Submit Task
Send a generation request to the submit endpoint.
2. Query Task Result (Poll)
Use the task_id from submit to poll progress (repeat until terminal). The response includes status and result: result is [] while processing; on SUCCEEDED, result holds resources and costUSD is included; FAILED means the task failed.
Input Schema
Submit Task — Input
Total: 17 Required: 3 Optional: 14
Negative prompt describing content that should not appear in the video
Whether to enable multi-shot generation
List of image assets
List of subject assets
List of video assets
Whether to generate audio. Supported values: on, off. Must be off when video_list is provided
Generation mode. Supported values: std, pro, 4k. std corresponds to 720p and pro corresponds to 1080p
Output aspect ratio. Supported values: 16:9, 9:16, 1:1
Video duration in seconds
Watermark configuration. Currently, only the enabled field is supported
Image URL
Image type. Supported values: first_frame, end_frame
ID of a subject in the subject library
Video URL
Video reference type. Supported values: feature, base
Whether to preserve the original video audio. Supported values: yes, no
Whether to enable the watermark
Query Task Result — Input
Total: 1 Required: 1 Optional: 0
The task ID returned from the submit endpoint.
Output Schema
Submit Task — Output
Total: 1
Async task identifier.
Query Task Result — Output
Total: variable
Current task status. result is usually [] until success; on SUCCEEDED, result holds resources and costUSD is present.
Generated resources. Empty array while processing or on failure; array of objects on success.
Task cost in USD. Present only when status is SUCCEEDED.
LLM Prompt
The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.
# kwaivgi/kling-v3-omni
> Kling 3.0 Omni delivers high-quality text-to-video generation with smooth motion, cinematic visuals, accurate prompt adherence, and native audio for ready-to-share clips.
## Overview
Use the iCreat two-step async task API: submit a generation request, then poll the query task result endpoint; on success read resources from `result` (includes `costUSD`).
## API Info
- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/kwaivgi/kling-v3-omni`
- **Query result endpoint (POST)**:`/v1/task/result`
- **Model ID**:`kwaivgi/kling-v3-omni`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`
## Call Flow
1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Query result**: POST `/v1/task/result` with `{ "task_id": "..." }`; response includes `status` and `result` (`[]` while processing); on `SUCCEEDED`, `result` holds resources and `costUSD` is present; read `url` or `download_url` when `type` is `Video`
### Input Notes
- Request body uses top-level flat fields
- Required: `element_id`, `video_url`
- Optional: `negative_prompt`, `multi_shot`, `image_list`, `element_list`, `video_list`, `sound`, `mode`, `aspect_ratio`, `duration`, `watermark_info`, `refer_type`, `keep_original_sound`, `enabled`
- `negative_prompt` (optional): Negative prompt describing content that should not appear in the video
- `multi_shot` (optional): Whether to enable multi-shot generation
- `image_list` (optional): List of image assets
- `element_list` (optional): List of subject assets
- `video_list` (optional): List of video assets
- `sound` (optional): Whether to generate audio. Supported values: `on`, `off`. Must be `off` when `video_list` is provided
- `mode` (optional): Generation mode. Supported values: `std`, `pro`, `4k`. `std` corresponds to 720p and `pro` corresponds to 1080p
- `aspect_ratio` (optional): Output aspect ratio. Supported values: `16:9`, `9:16`, `1:1`
- `duration` (optional): Video duration in seconds
- `watermark_info` (optional): Watermark configuration. Currently, only the `enabled` field is supported
- `element_id` (required): ID of a subject in the subject library
- `refer_type` (optional): Video reference type. Supported values: `feature`, `base`
- `keep_original_sound` (optional): Whether to preserve the original video audio. Supported values: `yes`, `no`
- `enabled` (optional): Whether to enable the watermark
### Output Notes
- Poll: read `status`; `result` is `[]` while processing
- Success: `result` is `[{ "type": "Video", "url": "...", "download_url": "..." }]` plus `costUSD`
## Notes
- Use the same `task_id` across both steps; `result` is `[]` while processing — keep polling
- `FAILED` is terminal — check request parameters or reference media