Kling 3.0 API: pricing, sound and working code
Kling 3.0 is Kuaishou's video model with sound, clips up to 15 seconds and output up to 4K. This guide covers the Kling models you can call on Revana, what each one costs, and requests you can run as they are.
What Kling 3.0 is good at
Kuaishou released Kling 3.0 in early 2026. Like the other current flagship video models, it generates sound with the picture, including speech, and it works from text, a single image or a pair of start and end frames.
- Speech with lip sync. Write a line of dialogue and the character says it, with mouth movement matched to the words, alongside effects and ambience.
- Several shots in one clip. Clips run up to 15 seconds, enough for a short scene with a cut or two.
- Control from images. Animate a still, or set both the first and the last frame and let the model fill in the motion.
- Up to 4K. Draft at 720p, then render the final take at 1080p or 4K.
As with every current video model, exact on-screen text is unreliable, so add titles and captions in editing.
Inputs and limits
| Option | Kling 3.0 |
|---|---|
| Model id | kling-3.0 |
| Tasks | text to video, image to video and first and last frame |
| Resolution | 720p, 1080p and 4K |
| Duration | 3 to 15 s |
| Aspect ratio | not listed in the catalogue, so leave aspect_ratio out |
| Sound | audio: true or false, priced separately below 4K |
| Routes | two routes |
A field or value a model does not support is rejected with a 422 before anything is charged. If you need a fixed frame shape such as 9:16, check the model page first, or use a model that lists it, such as Seedance 2.0 or Wan 3.0.
The Kling models on Revana
| Model | Tasks | Resolution | Length | From / s | Routes |
|---|---|---|---|---|---|
| Kling 3.0 | text to video, image to video and first and last frame | 720p, 1080p and 4K | 3 to 15 s | $0.09 | two routes |
| Kling 3.0 Omni | text to video, image to video, first and last frame, reference images and video to video | 720p, 1080p and 4K | 3 to 15 s | $0.09 | two routes |
| Kling 3.0 Turbo | text to video and image to video | 720p and 1080p | set by the model | $0.12 | two routes |
| Kling 3.0 Motion Control | video to video | 720p and 1080p | set by the model | $0.13 | two routes |
| Kling 2.6 Pro | text to video, image to video and first and last frame | 1080p | 5 or 10 s | $0.07 | two routes |
- Kling 3.0 Omni adds reference images and video to video. The catalogue lists a separate rate for Omni jobs that take a video as input: $0.13 per second at 720p and $0.17 at 1080p.
- Kling 3.0 Turbo covers text to video and image to video at 720p and 1080p, with one rate per resolution.
- Kling 3.0 Motion Control works from a source video (video to video) at 720p or 1080p.
- Kling 2.6 Pro is the previous generation: 1080p only, 5 or 10 seconds, with three rates: silent $0.07, with sound $0.14, and with sound and voice $0.19 per second.
Kling 3.0 pricing (October 2026)
Kling 3.0 is billed per second of output video. At 720p and 1080p there is one rate for silent video and a higher one with sound; at 4K the catalogue lists one rate either way.
| Resolution | Silent / s | With sound / s | 5 s with sound | 10 s with sound | 15 s with sound |
|---|---|---|---|---|---|
| 720p | $0.09 | $0.13 | $0.65 | $1.30 | $1.95 |
| 1080p | $0.12 | $0.17 | $0.85 | $1.70 | $2.55 |
| 4K | $0.42 | $0.42 | $2.10 | $4.20 | $6.30 |
If you have used Kling's own Standard and Pro modes, they correspond to the 720p and 1080p rows here. Each job's price is held from your balance at submit and charged only if the job succeeds; the exact charge comes back as cost_usd. Credit packs and every other model's prices are on the pricing page.
Generate a Kling 3.0 video with dialogue
Send POST /v1/generations with "model": "kling-3.0". This request asks for a 10 second 1080p clip with sound and two lines of dialogue, which costs $1.70. There is no aspect_ratio field, because the catalogue does not list one for Kling 3.0.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0",
"input": {
"prompt": "Two old friends sit on a park bench in autumn. The man says: \"I never thought we would make it this far.\" The woman laughs and replies: \"Neither did I.\" Leaves falling, gentle wind, distant children playing.",
"resolution": "1080p",
"duration": 10,
"audio": true
},
"max_cost_usd": 3
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "kling-3.0",
"input": {
"prompt": "Two old friends sit on a park bench in autumn. The man says: \"I never thought we would make it this far.\" The woman laughs and replies: \"Neither did I.\" Leaves falling, gentle wind, distant children playing.",
"resolution": "1080p",
"duration": 10,
"audio": True,
},
"max_cost_usd": 3,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "kling-3.0",
input: {
prompt: "Two old friends sit on a park bench in autumn. The man says: \"I never thought we would make it this far.\" The woman laughs and replies: \"Neither did I.\" Leaves falling, gentle wind, distant children playing.",
resolution: "1080p",
duration: 10,
audio: true,
},
max_cost_usd: 3,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);The submit call returns 202 and a generation id. Poll it every few seconds; when the status is succeeded, the video links are in output.urls:
{
"id": "gen_01JBX7Q2M4",
"model": "kling-3.0",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 1.7,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}Download the file promptly, because output links expire.
Animate a photo
Pass the photo as image_url and describe what happens next. This 5 second 720p clip with sound costs $0.65.
{
"model": "kling-3.0",
"input": {
"prompt": "The dog in the photo shakes the water off its coat and runs toward the camera. Splashing, happy barking.",
"image_url": "https://example.com/dog.jpg",
"resolution": "720p",
"duration": 5,
"audio": true
},
"max_cost_usd": 1
}First and last frames
Add end_image_url to fix where the shot ends. This is useful for product reveals and transitions. A silent 5 second 1080p clip costs $0.60.
{
"model": "kling-3.0",
"input": {
"prompt": "The gift box opens and the watch rises out of it, turning slowly under a soft spotlight",
"image_url": "https://example.com/box-closed.jpg",
"end_image_url": "https://example.com/watch-reveal.jpg",
"resolution": "1080p",
"duration": 5,
"audio": false
},
"max_cost_usd": 1
}Prompt tips for Kling 3.0
- Name every speaker. Put each line in quotes and say who says it, in order. Keep lines short: a 10 second clip fits two or three brief exchanges.
- Describe the voice when it matters. "A low, tired voice" or "an excited whisper" guides delivery.
- Separate picture and sound. Describe the scene first, then the ambience and effects.
- One camera move per shot. Slow push-in, handheld follow or a locked-off frame each read clearly; a list of moves does not.
- Draft at 720p. Iterate on the lower-priced resolution, then render the take you like at 1080p or 4K. Results differ between resolutions, so expect small changes.
Routing and fallback
Kling 3.0 currently has two routes on Revana, and Kling 3.0 Omni has two routes. The router sends each job to the cheapest route first; if it fails or times out, the job moves to the next route automatically. You pay the listed price whichever route serves it, and only the successful route is charged. The attempts field shows how many were tried.
Fallback is not a promise of uptime. If every route fails, the job ends as failed with an error and costs nothing; handle that in your app.
Compare Kling with the rest of the catalogue on the models page, check the field reference in the docs, or get an API key.
Frequently asked questions
How much does the Kling 3.0 API cost?
In October 2026, Kling 3.0 costs $0.09 per second at 720p without sound and $0.13 with sound; at 1080p it is $0.12 and $0.17. A 10 second 1080p clip with sound is $1.70.
Does Kling 3.0 generate sound and speech?
Yes. Set audio to true and write the dialogue in the prompt; the model generates speech, effects and ambience with the picture. Below 4K, clips with sound are billed at the with-sound rate.
What is the difference between Kling 3.0 and Kling 3.0 Omni?
Kling 3.0 Omni adds reference images and video to video on top of the Kling 3.0 tasks, and the catalogue lists a separate rate for Omni jobs with a video input.
How long can a Kling 3.0 video be?
From 3 to 15 seconds per request. Set the length with the duration field.
Can I set the aspect ratio for Kling 3.0?
The catalogue does not list an aspect ratio option for Kling 3.0, so leave aspect_ratio out. For a fixed shape such as 9:16, use a model that lists it, such as Seedance 2.0 or Wan 3.0.
What are Kling Standard and Pro modes?
They are Kling's names for its 720p and 1080p output. On Revana you choose them with the resolution field: 720p or 1080p.
Call Kling 3.0 with one key
The same key and request format for Kling, Veo, Seedance, Wan and the rest of the catalogue. Prepaid credit from $10.