Kuaishou · Video · API

Kling API — ruble pricing and a 5-minute setup

Kling API with ruble billing: every Kling version (V3, O3, 2.6, 2.5) through one Zerocoder key. Per-second video pricing, code samples, limits and refunds.

What Kling models do

Kling is a family of video generation models from Kuaishou. You send a text prompt, or a prompt plus a reference frame, and get back a short generated video clip. The family is strong at turning a single still image into motion (image-to-video) and at following a scene description closely enough for product shots, social clips and quick storyboards.

The lineup spans several generations and tiers, from the base kling-v3 line up through motion-focused and pro/edit variants, so you can pick a model by how much detail and control the task needs.

What Zerocoder adds

Zerocoder gives every model in the family one API key and one ruble wallet, so you don't juggle separate accounts per model. Top up with a Russian card or a company invoice, no VPN or foreign card involved. The same key works across the whole catalog, docs describe the request format once, and the SDK follows plain HTTP, so any client that can send JSON over HTTPS can call it.

How a request works

You start a job by posting the model id, your prompt, the clip length in seconds and, for image-to-video, a reference frame URL. The API answers right away with a job id and a queued status. From there you poll that id until the status flips to completed, when a video URL appears, or to failed. Each model's price is listed in the models endpoint before you commit to a run.

Models and prices

The live GET /v1/models price list in rubles and dollars. Where we are cheaper, the vendor's official price for the same unit is struck through. Endpoint: /v1/videos

Model prices in rubles and dollars; where we are cheaper, the vendor's official price for the same unit is struck through
ModelPriceUnitDiscount
Kling V3recommendedkling-v3 · Kuaishoualso: kling-30
Official price: 11.3 ₽, Zerocoder price: 7.32 ₽$0.081per second of videoofficial: $0.126/s · 720P · with audio-35%
Kling V3 Prokling-v3-pro · Kuaishou
Official price: 15.1 ₽, Zerocoder price: 9.72 ₽$0.108per second of videoofficial: $0.168/s · 1080P · with audio-35%
Kling V2.6kling-v2.6 · Kuaishou
14.4 ₽$0.160per second of video—
Kling O3kling-o3 · Kuaishou
13.2 ₽$0.147per second of video—
Kling O3 Prokling-o3-pro · Kuaishou
16.8 ₽$0.187per second of video—
Kling V2.5 Standardkling-v2.5-standard · Kuaishou
8.4 ₽$0.093per second of video—
Kling V2.5 Prokling-v2.5-pro · Kuaishou
8.4 ₽$0.093per second of video—
Kling V2.6 Motion 720pkling-v2.6-motion-720p · Kuaishou
8.4 ₽$0.093per second of video—
Kling O1 Editkling-o1-edit · Kuaishou
9 ₽$0.100per second of video—
Kling O1kling-o1 · Kuaishou
9.6 ₽$0.107per second of video—
Kling V2.6 Motion 1080pkling-v2.6-motion-1080p · Kuaishou
16.8 ₽$0.187per second of video—
Kling V2.1 Masterkling-v2.1-master · Kuaishou
27.6 ₽$0.307per second of video—
Struck-through prices are the vendors’ official rates from their own pages: Kuaishou — checked 4 October 2026. Dollars at the internal rate 1 $ = 90 ₽; the Zerocoder price includes ruble billing and no-VPN access. Comparison assumptions:
  • video — the official tier of the resolution shown in the row (720P, 1080P): by default our API call renders at that resolution or higher, and where the vendor has no matching tier the cheaper one is used, so the saving is understated, not overstated
  • Kling — the native-audio tier (the API call passes no audio flag; the gateway renders with sound by default)

Cost calculator

Pick a model and a volume — the calculator uses the same formulas as API billing.

per call36.6 ₽ $0.407
per month · 501830 ₽ $20.33

Prices from GET /v1/models, internal exchange rate. Failed generations are not charged.

  1. Get a keyin the API dashboard
  2. Top up the walletin rubles: card, SBP or invoice
  3. Make the callPOST /v1/videos, model kling‑30
First request

Connect the Kling API: a key, one POST and a status poll

POST /v1/videos starts the render and returns the job id and price_rub right away; GET /v1/videos?id=… returns the status and the clip URL. If the render fails, the money goes back to the balance automatically.

Base URL
https://zerocoder.com/api/v1

Key — in the x-api-key or Authorization: Bearer header

Model in the samples — kling-30; any text‑to‑video or image‑to‑video model from the table works

import time, requests API = "https://zerocoder.com/api/v1"H = {"x-api-key": "zc-sk-…"} r = requests.post(f"{API}/videos", headers=H, json={    "model": "kling-30",    "prompt": "Drone shot over a foggy forest at dawn",    "seconds": 5,      # 4–10    "aspect": "16:9",  # image-to-video: "image": "https://…"})r.raise_for_status()job = r.json()  # status "queued", price_rub charged st = {}while st.get("status") not in ("completed", "failed"):    time.sleep(4)    r = requests.get(f"{API}/videos", headers=H,                     params={"id": job["id"]})    st = r.json() if r.ok else {}  # 502 → poll againprint(st)  # "url", or "refunded": true on failure
const API = "https://zerocoder.com/api/v1";const H = {  "x-api-key": "zc-sk-…",  "content-type": "application/json",}; const res = await fetch(`${API}/videos`, {  method: "POST", headers: H,  body: JSON.stringify({    model: "kling-30", seconds: 5, aspect: "16:9",    prompt: "Drone shot over a foggy forest at dawn",  }), // image-to-video: add image: "https://…"});const job = await res.json(); // "queued", price_rubif (!res.ok) throw new Error(job.error.message); const poll = `${API}/videos?id=${job.id}`;let st = {};while (st.status !== "completed" && st.status !== "failed") {  await new Promise((go) => setTimeout(go, 4000));  const r = await fetch(poll, { headers: H });  st = r.ok ? await r.json() : {}; // 502 → poll again}console.log(st); // url, or refunded: true
# 1) start the render: price_rub is charged up front,#    refunded if the render failscurl https://zerocoder.com/api/v1/videos \  -H "x-api-key: zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "kling-30", "seconds": 5,       "aspect": "16:9",       "prompt": "Drone shot over a foggy forest at dawn"}'# → {"id":"…","object":"video","status":"queued",#    "seconds":5,"price_rub":…,"balance_rub":…,#    "poll":"/api/v1/videos?id=…"}# image-to-video: add "image": "https://…/frame.jpg"
# 2) poll every few seconds: "completed" or "failed"curl "https://zerocoder.com/api/v1/videos?id=…" \  -H "x-api-key: zc-sk-…"# rendering → "status": "queued" | "running" | …# done      → "status": "completed", "url": "https://…"# failed    → "status": "failed", "refunded": true# HTTP 502 "Status check failed" → just poll again;#   a render that never finishes is refunded
// Live price comparisonkling-30 · per second of video
  • Zerocoder-35%$0.081
  • Official API$0.126

Kuaishou list price (Kling 3.0 · 720P, with audio); checked 4 October 2026

How to connect the Kling API: first request in 5 minutes

From a key to production — six steps based on the real /api/v1 contracts. Each step links to the relevant docs section.

  1. 1

    Get a key in your account

    Sign up, open the API section of your account, top up the balance in rubles and create a zc-sk-… key. One key unlocks Kling and every other model in the catalogue.

    Read more →
  2. 2

    Send the first request

    POST /v1/videos with model, prompt, seconds and aspect: the response carries the job id, status queued and price_rub — the amount is charged before the Kling render starts.

    Read more →
  3. 3

    Poll the job status

    GET /v1/videos?id=… every few seconds until status is completed (url field) or failed (refunded: true — the money is already back on the balance). The file URL is temporary — download right away.

    Read more →
  4. 4

    Handle limits and errors

    30 requests per minute per key: on 429 wait and retry with a growing pause; 402 — top up the balance; 400 — check model against GET /v1/models. Failed generations are not charged, so retrying is safe.

    Read more →
  5. 5

    Watch the budget

    GET /v1/balance returns the balance and 30-day spend; every call's price comes back in the response — write it to your logs and set an alert threshold in your own monitoring.

    Read more →
  6. 6

    Ship to production

    Keep the key in server secrets, never in the frontend. For high Kling volumes contact us — the limit is raised individually and companies can pay by invoice. Check the observed stability on the status page.

    Read more →

No code

Any tool that can make an HTTP request can call our API: one POST with the x-api-key header.
HTTP Requestn8n

HTTP Request node: POST to the /api/v1 endpoint, x-api-key header and a JSON body built from workflow fields. For video add a Wait node and a second HTTP Request on GET ?id= in a loop until completed.

HTTP → Make a requestMake

HTTP “Make a request” module: POST, Body type JSON, x-api-key header. The response is parsed automatically — the image url or the answer text flows into the next modules.

Webhooks by ZapierZapier

Webhooks by Zapier → Custom Request action: POST, Data — JSON with model and prompt, Headers — x-api-key. Response fields are available to the following Zap steps.

Apps ScriptGoogle Sheets

In Apps Script use UrlFetchApp.fetch with method post, contentType application/json and a payload from the cells: prompts in one column, results written to the next one.

any bot frameworkTelegram bot

A bot on aiogram, grammY or Telegraf calls the same HTTP API: user message → model request → reply in the chat. For video — poll the status and send the file from the finished URL.

OpenAI-compatible base URLPython / Node SDK

For text models the official OpenAI and Anthropic SDKs work with a swapped base URL and our key — your application code stays the same. Images and video are a plain HTTP call from any language.

For business

We'll help bring AI into your business

More than a key: we help wire Kling and other models into your workflows — from audit to production, with invoice payment.

  • Process auditWe find where AI pays off in your workflows: support, sales, content, documents — and name specific scenarios and models.
  • Integration into CRM, website, Telegram, n8nWired through our API or ready no-code scenarios; one key and a shared balance for every model.
  • Ruble payment by invoiceCompanies get an invoice for bank transfer, accounting documents and a top-up of the API balance.
  • Support and limitsHelp with prompts and architecture, request limits raised individually for your load.

Inputs, limits and refunds

  • Text → video and image → video (image: public https URL)
  • Duration seconds: 4–10 (default 5)
  • aspect 16:9 / 9:16 / 1:1 or an explicit size
  • Charged up front by price_rub at the requested resolution (size / resolution), refunded if the render fails (refunded: true)
  • A job stuck in the queue over 30 minutes is refunded automatically
  • 30 requests per minute per key (all endpoints combined)

Error responses and refunds

# 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid or revoked API key."}}
# 402 {"type":"error","error":{"type":"billing_error","message":"Not enough API balance: …"}}
# 429 {"type":"error","error":{"type":"rate_limit_error","message":"…"}}   ← 30 requests/min per key
# 400 {"type":"error","error":{"type":"invalid_request_error","message":"Unknown model \"…\". See GET /v1/models."}}
# 502 {"type":"error","error":{"type":"api_error","message":"… Charge refunded."}}   ← start failed → money back
# GET ?id → {"id":"vid_…","status":"failed","refunded":true}                        ← render failed → money back

Observed stability of the API and video generation

Numbers come from the public /status summary: the share of successful requests over a period for the whole API and for the category as a whole (the summary has no per-model breakdown), no SLA promises. Failed generations are not charged, so retrying is safe.

Developer APIoperational

—now (2 h window)
78.5%last 30 days
78.5%last 90 days

Video generationdegraded

—now (2 h window)
80%last 30 days
80%last 90 days

Refunds and charges

  • Charged up front by price_rub; a failed render is refunded automatically with refunded: true in the response
  • A job stuck in the queue over 30 minutes is refunded automatically
  • Status and file URL — in GET /v1/videos?id=

Tracking since Aug 6, 2026.

Use cases

1

Generate short product demo clips from a single hero image for an e-commerce listing

2

Turn blog post illustrations into looping teaser videos for social media automation

3

Build a Telegram bot that animates a user's photo into a short clip on request

4

Prototype storyboards for ad creatives before booking a real video shoot

5

Auto-generate background video loops for a SaaS landing page builder

6

Add a video preview step to an internal content pipeline that already produces images

Prompting tips

  • Name the shot type and camera move directly: close-up, wide shot, slow pan, dolly-in, handheld — vague prompts give static results
  • State the light and time of day (soft morning light, harsh noon sun, neon night) so the clip's mood matches your use case
  • Describe what changes over the clip, not just the starting pose: an action, an expression shift, an object entering frame
  • For image-to-video, make the reference frame match the described scene exactly — mismatched framing or lighting confuses the motion
  • Pick aspect ratio and length for where the clip will run, and avoid on-screen text, crowds and close-up hands — the model tends to distort them

Ready-made prompts for Kling

Copy the prompt and the parameters into the request body — the fields are named exactly as in the /api/v1 contract. Replace the angle-bracket placeholders with your material.

Animate a portrait (image-to-video)

The person slowly turns their head toward the camera and smiles, natural blink, soft studio light, keep identity, hairstyle and clothing from the reference
seconds: 5aspect: 9:16image: https://…/portrait.jpg

Fashion walk

Model walking down a minimalist concrete runway in an oversized linen suit, slow tracking shot, soft diffused light, editorial look
seconds: 5aspect: 9:16

Food macro

Macro shot of honey drizzling over a stack of pancakes, steam rising, warm tungsten light, shallow depth of field
seconds: 5aspect: 16:9

Real-estate interior fly-through

Smooth steadicam walk-through of a bright Scandinavian apartment, from the living room to the balcony, daylight, realistic materials
seconds: 10aspect: 16:9

Motion-graphics explainer

Flat 2D motion graphics: a smartphone icon sends a message to a cloud, then three gears start turning, clean blue palette, white background
seconds: 5aspect: 16:9

Who the Kling API is for

Industries where this kind of generation becomes part of the workflow rather than an experiment.

E-commerce & marketplacesProduct video cards from catalogue photos — hundreds of SKUs without a shoot, Kling through one key.
Media & socialVertical clips for Reels, Shorts and TikTok — on a schedule from text ideas.
Agencies & productionPreviz, storyboards and B-roll for clients in hours instead of days.
EdTechIllustrative clips for lessons and concepts explained in motion.
Real estate & autoBring listing photos to life: fly-throughs, turns, atmosphere.
SaaS & appsKling video generation inside your product — one key and a shared balance.

FAQ

How much does the Kling API cost per second of video?

Each Kling version has its own price per second of finished video — see the table above or GET /v1/models, in rubles. A clip costs the per-second price times seconds; the amount is known before launch and comes back in price_rub. Pro and Master tiers cost more than standard ones, so run the calculator for several versions at once.

How do I call the Kling API from Python or Node.js?

With one HTTP request and no SDK: POST /v1/videos with the x-api-key header and a body of model (the Kling version id), prompt, seconds, aspect and optionally image with a link to the start frame. The response carries the job id — poll GET /v1/videos with it every few seconds. Samples for Python, Node.js and the shell are above.

What are the Kling API limits: duration, format, request rate?

Duration seconds is 4 to 10 seconds, the frame format aspect is 16:9, 9:16 or 1:1, and the start image must be a public https URL. A key has a shared limit of 30 requests per minute across all endpoints, Kling included; above it you get 429 rate_limit_error and should retry a little later.

Which Kling version should I choose, and how do I find its id?

Exact ids are in the table above and in GET /v1/models: a Kling version name carries its generation and quality tier. Standard tiers are faster and cheaper per second — for backgrounds, product shots and bulk variations; Pro and Master hold motion physics, faces and fabrics better — for close-ups and final clips. Start with standard and step up only where the difference shows.

Does the Kling API charge for a failed clip?

No: when the provider fails the render, the amount for the Kling clip returns to your API balance automatically and the job status shows refunded: true. The same happens when a job is stuck in the queue for more than 30 minutes. Only clips with status completed and a file link are paid for.

Can a company pay for the Kling API by bank transfer?

Yes. A company tops up the API balance by invoice: the invoice is issued in the API account, and after payment from the corporate account the amount is credited to the balance while the key keeps working with Kling unchanged. Individuals and sole traders can pay with a Russian bank card; accounting documents are available on request.

Can I test the Kling API for free?

There are no separate free credits for the API — the API wallet starts with a minimum first top-up and every Kling second is charged at the list price. You can see for free how Kling handles your prompt in the Zerocoder studio and the Kling tool in the catalogue, then repeat the request through the API with the same text.

Can the Kling API animate photos (image-to-video)?

Yes. Pass a public link to the photo in the image field and describe only the motion in the prompt — a head turn, a camera move, wind in the hair; Kling keeps the composition. For best results use a clean source without watermarks and with some margin at the edges: the model may reframe the scene slightly.

AI API for your product

Up to -35% vs the official API · ruble billing, no VPN