Claude Opus 5.5 is live on SeedRouter
LogoSeedRouter

Search models by name, e.g. 'nano banana'

Search models by name, e.g. 'nano banana'

Video

Kling 3.0 Turbo

View Markdown

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 IDInputsResolutionsLength
kling-3-0-turbotext, first frame720p, 1080p3–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
HeaderValue
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/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

FieldTypeDefaultNotes
modelstringrequiredkling-3-0-turbo
promptstringrequiredUp to 3,072 characters, or 2,500 with a first frame. Required with a first frame too.
first_frame_imageURLnoneThe clip's first frame. Without it the clip is text to video.
resolutionenum720p720p or 1080p.
durationinteger53–15 seconds.
aspect_ratioenum16:916:9, 9:16 or 1:1. Text to video only: with a first frame, the frame sets the shape.
watermarkbooleannonetrue 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 resolution

The 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 at 1080p with the same request.
  • With a first frame, describe only what moves: the frame already sets the scene.
  • Add no text, no logos to keep invented marks out.