# Kling 3.0 Turbo API: price per second, a working request, polling and first frames

By SeedRouter · Published 2026-10-06 · Updated 2026-10-06

**Kling 3.0 Turbo is a Kling 3.0 video model that turns a prompt, or a prompt and a first frame, into a 3–15 second clip with sound at 720p or 1080p.** Kling bills it by the second: $0.112 at 720p and $0.14 at 1080p, sound included.<sup><a href="#ref-1">\[1]</a></sup><sup><a href="#ref-2">\[2]</a></sup> To use it through the API, POST one JSON body with the model ID `kling-3-0-turbo` and your prompt, then poll the task it returns until the video URL is ready.

Prices as published by Kling, checked on October 6, 2026.

## What is Kling 3.0 Turbo?

Kuaishou released Kling 3.0 Turbo on June 17, 2026, for text to video and image to video at 720p and 1080p, billed on the length of the generated video.<sup><a href="#ref-2">\[2]</a></sup> It sits beside Kling 3.0 in the same family. Turbo always generates sound and starts from a first frame at most; Kling 3.0 adds 4K, last frames, elements and an option to leave sound off.<sup><a href="#ref-3">\[3]</a></sup> The [Kling 3.0 Turbo vs Kling 3.0 comparison](https://seedrouter.ai/blog/kling-3-0-turbo-vs-kling-3-0) covers when each one fits.

## How much does the Kling 3.0 Turbo API cost?

On Kling's own API, Turbo costs 0.8 units per second at 720p and 1.0 unit at 1080p, which the pricing page shows as $0.112 and $0.14.<sup><a href="#ref-1">\[1]</a></sup><sup><a href="#ref-2">\[2]</a></sup> Multiply by the length:

| Resolution | 5 seconds | 10 seconds | 15 seconds |
| ---------- | --------- | ---------- | ---------- |
| 720p       | $0.56     | $1.12      | $1.68      |
| 1080p      | $0.70     | $1.40      | $2.10      |

Sound is part of every clip and of every price above. There is no 4K tier.

SeedRouter bills Turbo per second by resolution too, with the duration fixed when the task is accepted, so the amount reserved is the amount charged. Current SeedRouter rates:

### Kling 3.0 Turbo

Kling 3.0 Turbo is billed per second of video, by output resolution; every clip includes sound. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

| Model ID | Resolution | USD per second |
| --- | --- | --- |
| `kling-3-0-turbo` | 720p | $0.13728 |
| `kling-3-0-turbo` | 1080p | $0.17184 |

Billed seconds: the requested duration (3-15 seconds). Failed requests are not charged.

Worked example: a 5-second 720p clip costs 5 × $0.13728 = $0.6864.

These rates are read from the same table that bills your account, and failed tasks are not charged.

## How do you send a Kling 3.0 Turbo request?

Create an API key on the [API keys](https://seedrouter.ai/apikeys) page, add a balance on the [billing page](https://seedrouter.ai/billing), and POST the task to `/v1/videos/generations`:

```bash
curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3-0-turbo",
    "prompt": "A red paper boat drifting on a calm pond at sunrise, soft mist, slow push-in. No text, no logos.",
    "resolution": "720p",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'
```

The response is a task, not a video:

```json
{"id": "task_...", "model": "kling-3-0-turbo", "status": "processing", "created_at": 1789689600}
```

Every field except `model` and `prompt` has a default:

| Field               | Default | Values                                     |
| ------------------- | ------- | ------------------------------------------ |
| `resolution`        | `720p`  | `720p`, `1080p`                            |
| `duration`          | `5`     | 3–15 seconds                               |
| `aspect_ratio`      | `16:9`  | `16:9`, `9:16`, `1:1` (text to video only) |
| `first_frame_image` | none    | One public image URL                       |
| `watermark`         | none    | `true` adds a watermark                    |

The schema is strict: an unknown field is refused with HTTP 400 before a task is created, so a typo never becomes a paid clip with the setting ignored.

## How do you get the video?

Poll `GET /v1/tasks/{id}` every 10–20 seconds until `status` is `completed` or `failed`:

```python
import os
import time
import requests

API = "https://api.seedrouter.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

task = requests.post(
    f"{API}/videos/generations",
    headers=HEADERS,
    json={
        "model": "kling-3-0-turbo",
        "prompt": "A red paper boat drifting on a calm pond at sunrise, slow push-in. No text, no logos.",
        "resolution": "720p",
        "duration": 5,
    },
    timeout=60,
)
task.raise_for_status()
task_id = task.json()["id"]

while True:
    result = requests.get(f"{API}/tasks/{task_id}", headers=HEADERS, timeout=60).json()
    if result["status"] in ("completed", "failed"):
        break
    time.sleep(15)

if result["status"] == "completed":
    print(result["output"]["video_url"])
else:
    print(result["error"])
```

In our tests, 3-second 720p clips came back as MP4 (H.264) at 1280 × 720 and 5-second 1080p clips at 1920 × 1080, all with a stereo audio track, between 54 seconds and about 5 minutes 20 seconds after submission. Here is one of them:

<video preload="none" poster="https://static.seedrouter.ai/media/landing/models/kling-3-0-turbo/v2/sample-1.webp" src="https://static.seedrouter.ai/media/landing/models/kling-3-0-turbo/v2/sample-1.mp4" width="1920" height="1080" style="{ width: '100%', height: 'auto' }" />

*Kling 3.0 Turbo, 1080p, 5 seconds, with sound.*

Download the file to your own storage, since hosted links are not permanent. A network timeout while polling does not mean the generation failed: keep the task ID and check it again instead of submitting a new task.

## How do you start from your own image?

Add `first_frame_image` with a public image URL. The clip opens on the image and takes its shape, so `aspect_ratio` is not used. The prompt is still required: say what happens next.

```json
{
  "model": "kling-3-0-turbo",
  "prompt": "The subject slowly turns toward the camera, soft natural light, gentle breeze.",
  "first_frame_image": "https://example.com/frame.png",
  "resolution": "1080p",
  "duration": 5
}
```

Kling's own limits for the frame are JPG or PNG, at least 300 pixels on each side, and an aspect ratio between 1:2.5 and 2.5:1; with a frame, Kling caps the prompt at 2,500 characters.<sup><a href="#ref-4">\[4]</a></sup> Base64 images are refused; upload the file to your own storage and pass its URL.

## Which requests are refused before anything is charged?

These come back as HTTP 400 at submission, with no task created and nothing charged:

| Request                                                 | Why                                                    |
| ------------------------------------------------------- | ------------------------------------------------------ |
| No `prompt`, even with a first frame                    | The model needs one                                    |
| `resolution: "4K"` or `"720P"`                          | The values are `720p` and `1080p`                      |
| `duration` under 3, over 15 or not a whole number       | Turbo makes 3–15 second clips                          |
| `sound`, `mode`, `image_urls` or other Kling 3.0 fields | They belong to [Kling 3.0](https://seedrouter.ai/docs/kling-3-0), not Turbo |
| A base64 image                                          | Images go in as URLs                                   |

A task that is accepted and then fails, for example on the content policy, returns `status: "failed"` with an `error` code and is not charged. The [error catalog](https://seedrouter.ai/docs/api/errors) lists the codes.

## How does this differ from Kling's own Turbo API?

Kling's API puts the model in the path and nests settings, and its image to video takes a list of contents.<sup><a href="#ref-4">\[4]</a></sup><sup><a href="#ref-5">\[5]</a></sup> If you are moving an integration, map the fields:

| SeedRouter                               | Kling's own API                                                            |
| ---------------------------------------- | -------------------------------------------------------------------------- |
| `model: "kling-3-0-turbo"`               | `POST /text-to-video/kling-3.0-turbo` or `/image-to-video/kling-3.0-turbo` |
| `prompt`                                 | `prompt` (text to video), or `contents: [{"type": "prompt", "text"}]`      |
| `first_frame_image`                      | `contents: [{"type": "first_frame", "url"}]`                               |
| `resolution`, `duration`, `aspect_ratio` | `settings.resolution`, `settings.duration`, `settings.aspect_ratio`        |
| `watermark: true`                        | `options.watermark_info.enabled: true`                                     |

SeedRouter delivers results as a task you poll; `callback_url` and `external_task_id` are not offered.

## Kling 3.0 Turbo API questions

### Is there an official Kling 3.0 Turbo API?

Yes. Kling publishes text-to-video and image-to-video endpoints for Turbo, with its own keys and unit-based billing.<sup><a href="#ref-4">\[4]</a></sup><sup><a href="#ref-5">\[5]</a></sup> SeedRouter is a separate way to call it with one key and one balance shared with other models.

### Does Kling 3.0 Turbo support 4K or a last frame?

No. Turbo renders 720p or 1080p and starts from a first frame at most. Both are available on [Kling 3.0](https://seedrouter.ai/models/kling-3-0).<sup><a href="#ref-3">\[3]</a></sup>

### Can I turn the sound off?

No. Every Turbo clip includes sound, and the per-second price already covers it.<sup><a href="#ref-1">\[1]</a></sup>

### Can a coding agent run it for me?

Yes. The [Kling 3.0 Turbo page](https://seedrouter.ai/models/kling-3-0-turbo) has a ready prompt for Claude Code, Codex or Cursor that reads the key from your environment, shows you the request and its cost, waits for your approval, then submits, polls and downloads the clip.

## References

1. <span id="ref-1" />Kling AI. *Pricing: Video* (developer API). Checked October 6, 2026 at [kling.ai](https://kling.ai/document-api/pricing/base/video).
2. <span id="ref-2" />Kling AI. *API Updates*, June 17, 2026: "Kling 3.0 Turbo Officially Released". Retrieved October 6, 2026 from [kling.ai](https://kling.ai/document-api/updates/api).
3. <span id="ref-3" />Kling AI. *Capability Map: Video*. Retrieved October 6, 2026 from [kling.ai](https://kling.ai/document-api/guides/capability-map/video).
4. <span id="ref-4" />Kling AI. *Kling 3.0 Turbo: Image to Video* (API reference). Retrieved October 6, 2026 from [kling.ai](https://kling.ai/document-api/api/video/3-0-turbo/image-to-video).
5. <span id="ref-5" />Kling AI. *Kling 3.0 Turbo: Text to Video* (API reference). Retrieved October 6, 2026 from [kling.ai](https://kling.ai/document-api/api/video/3-0-turbo/text-to-video).
