Loading model…正在加载模型详情…
Loading model…正在加载模型详情…
Create video from a written scene with Kling O3, powered by Kling VIDEO 3.0 Omni and described by Kling AI as a model for visual consistency and storytelling.
Your result appears here
Kling O3 is a video generation family powered by Kling VIDEO 3.0 Omni. Kling AI’s description focuses on consistent characters, visual details and multi-shot storytelling.
The callable model on UniRoute is Kling O3 Text to Video. Give it a written scene description, choose the resolution and duration, and review the quote before running it.
Kling O3 uses the Kling VIDEO 3.0 Omni model line. Kling AI’s description highlights understanding of characters, objects and scenes; UniRoute currently exposes its text-to-video variant.
What you can do with Kling O3 through UniRoute today.
Write a shot description with the subject, action, setting and camera movement, then choose a resolution and duration to generate a video draft.
Other Kling O3 modes (image and video references, native audio and editing) are not available on UniRoute yet; the current text-to-video variant has no reference media inputs.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| Kling O3 Text to Video | kling-3.0-omni/text-to-video | Text to video | Text prompt and a size option | Resolution: 720p, 1080p; Duration: 5s, 10s | $0.44 to $1.13 per request |
Priced per request. The option you choose sets the price.
| Kling O3 Text to Video | |
|---|---|
| 720p · 5s | $0.44 |
| 720p · 10s | $0.88 |
| 1080p · 5s | $0.56 |
| 1080p · 10s | $1.13 |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call Kling O3 from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='kling-3.0-omni/text-to-video'OPTION='720p:5'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: 720p:5, 720p:10, 1080p:5, 1080p:10. |
prompt | Body | Text prompt describing what to generate. |
max_cost_usd | Body | Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
Typical ways to put Kling O3 to work.
Turn a written scene into a moving draft to explore a story’s atmosphere, action and framing.
Try different product settings and visual directions from a campaign brief before settling on a shot.
Add prompt-based video generation to an app through the API, with a quote before each task is submitted.
Common questions about Kling O3.
Kling O3 is Kling AI’s video model family based on Kling VIDEO 3.0 Omni. The text-to-video variant is callable on this page and through UniRoute’s media API.
Use a text prompt describing the clip, then select a resolution and duration option. The API section lists the inputs exposed by the callable model.
The callable Kling O3 model ID is kling-3.0-omni/text-to-video. Use the model ID shown in the API section when integrating it.
From $0.44 / clip. Requests are priced for the whole clip at the selected resolution and duration. The full table is in the Pricing section, with prices updated 2026-11-08.
Generation runs as an asynchronous media task. Request a quote, create the task with an Idempotency-Key and a maximum cost, then poll until the output is ready.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.