Video
Kling 3.0 Turbo
Generate 3–15 second Kling 3.0 Turbo clips with sound from a prompt or from a first frame, at 720p or 1080p, billed per second and delivered as a task.
Kling 3.0 Turbo is a video model in Kuaishou's Kling 3.0 family. One request makes a 3–15 second clip with sound from a prompt, or from a prompt plus a first frame, at 720p or 1080p. Send the request, keep the returned task ID, and read the finished video from the task. Images go in as URLs.
Model IDs
| Model ID | Inputs | Resolutions | Length |
|---|---|---|---|
kling-3-0-turbo | text, first frame | 720p, 1080p | 3–15 seconds |
See the model page for current prices.
Quick example
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"
}'Endpoint
POST https://api.seedrouter.ai/v1/videos/generations| Header | Value |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
The response is a task ({"id": "task_...", "status": "processing"}), not the finished video. Poll GET /v1/tasks/{task_id} for the result. Keep API keys in server-side code.
Parameters
| Field | Type | Default | Notes |
|---|---|---|---|
model | string | required | kling-3-0-turbo |
prompt | string | required | Up to 3,072 characters, or 2,500 with a first frame. Required with a first frame too. |
first_frame_image | URL | none | The clip's first frame. Without it the clip is text to video. |
resolution | enum | 720p | 720p or 1080p. |
duration | integer | 5 | 3–15 seconds. |
aspect_ratio | enum | 16:9 | 16:9, 9:16 or 1:1. Text to video only: with a first frame, the frame sets the shape. |
watermark | boolean | none | true adds a watermark. Left out, the clip has none. |
Every clip comes with sound; there is no sound setting. The schema is strict: unknown fields are rejected rather than ignored. callback_url is not available; poll the task instead.
Image to video
Pass a first frame in first_frame_image and describe what happens next in prompt. The clip opens on the frame and takes its shape, so aspect_ratio is not used.
{
"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
}Media inputs
The first frame is a public HTTP(S) URL. Base64 data URIs are not accepted: upload the file to your own storage and pass its URL. Use a JPG or PNG image of 10 MB or less.
Pricing dimensions
Check the model pricing section for current rates. Kling 3.0 Turbo is billed per second of video, at a rate set by the resolution:
cost = duration × rate per second for the resolutionThe duration is known when the request is accepted, so the amount reserved is the amount charged. View final charges in your account usage history. Failed tasks are not charged.
Output schema
Submission returns the task:
{"id": "task_...", "model": "kling-3-0-turbo", "status": "processing", "created_at": 1789689600}Get the task
GET https://api.seedrouter.ai/v1/tasks/{task_id}Poll every 10–20 seconds until status is completed or failed. A network timeout while polling does not mean generation failed: keep the task ID and resume checking it. Do not create another task to check progress.
Completed task
{
"id": "task_...",
"model": "kling-3-0-turbo",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689710,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}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.
Errors
Requests rejected before a task is created return an HTTP error with an error object and are not charged. A task that fails after acceptance returns HTTP 200 when queried, with status: "failed" and an error object.
See the shared error catalog for codes, HTTP statuses, and retry guidance.
{
"id": "task_...",
"model": "kling-3-0-turbo",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}If submission itself times out, check your tasks before submitting again: the first request may have been accepted.
Tips
- Describe subject, place, camera move and light in one sentence each; camera language such as "slow push-in" and "low angle" is followed.
- Draft at
720p, then render the final shot at1080pwith the same request. - With a first frame, describe only what moves: the frame already sets the scene.
- Add
no text, no logosto keep invented marks out.
