Kling video generation API — pricing and usage
Check resolution, duration and fees separately.
Developers and teams can submit Kling jobs through the PleumRouter video API and poll for results. The table reads resolution prices and current promotion terms from the public catalog of active Kling video models. Usage is billed from prepaid KRW credits.
Current models, resolution prices and promotion#
| Model | Resolution / condition | USD / second (regular · current) | KRW / second | 5 seconds (KRW) |
|---|---|---|---|---|
| Kling V3 50% · until 12/31 · D-56 | resolution 720p | 0.084 0.042 | ₩57 | ₩284 |
| Kling V3 Turbo 50% · until 12/31 · D-56 | resolution 720p | 0.112 0.056 | ₩76 | ₩378 |
| Kling V3 Turbo 50% · until 12/31 · D-56 | resolution 1080p | 0.14 0.07 | ₩95 | ₩473 |
| Kling V3 Omni 50% · until 12/31 · D-56 | resolution 720p | 0.084 0.042 | ₩57 | ₩284 |
| Kling V3 Omni 50% · until 12/31 · D-56 | resolution 1080p | 0.112 0.056 | ₩76 | ₩378 |
| Kling V3 Omni 50% · until 12/31 · D-56 | resolution 4k | 0.42 0.21 | ₩284 | ₩1,418 |
| Kling V2.5 Turbo 50% · until 12/31 · D-56 | resolution 720p | 0.042 0.021 | ₩28 | ₩142 |
| Kling V2.6 50% · until 12/31 · D-56 | resolution 720p | 0.042 0.021 | ₩28 | ₩142 |
The five-second comparisons use each listed catalog condition and current promotion and describe model usage only. KRW prices reflect model markup and the applied exchange rate. For top-up fees, see the pricing docs below. Expired promotions are excluded. Check the coupon and bonus policies for combination terms.
Pricing & fees · Coupons & bonuses · naver_hana · applied USD/KRW 1350.72
Generate Kling video with Python#
Use HTTP requests separately from OpenAI SDK chat calls. V3 models accept integer durations of 3–15 seconds; specify 5 or 10 for V2.5/V2.6. The example requests five seconds without specifying resolution (720p by default). The exposed Kling API does not offer audio or voice controls.
import os, time, uuid, requests
base = "https://apirouter.pleum.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['PLEUM_API_KEY']}"}
# Reuse this key to resubmit after a lost response; the original job_id is returned.
submit_headers = {**headers, "Idempotency-Key": str(uuid.uuid4())}
response = requests.post(f"{base}/video/generations", headers=submit_headers, json={
"model": "kling-v3-turbo",
"prompt": "A slow camera pan over a mountain valley at sunrise",
"duration_seconds": 5,
}, timeout=60)
response.raise_for_status()
job_id = response.json()["job_id"]
for _ in range(120):
response = requests.get(f"{base}/jobs/{job_id}", headers=headers, timeout=30)
response.raise_for_status()
job = response.json()
if job["status"] in ("succeeded", "failed", "canceled"):
print(job.get("result_url") or job.get("error") or job["status"])
break
time.sleep(5)
else:
print(f"Still processing: poll /jobs/{job_id} later; do not resubmit.")Setup and troubleshooting#
Create an API key and top up credits after signup. Keep keys in server environment variables. For 400 errors, verify the model, duration and resolution value (a resolution the model does not support returns 400); see error docs for authentication and balance failures. If you do not receive the submit response, submit again with the same Idempotency-Key. Within 24 hours no new job is created and the original job_id is returned.
Video API reference · API errors
Sign up and create an API key