Kling4 API
API reference

Get a video task

Reads one video task on your account, including tasks started in the web app. Keep polling while `status` is `pending` or `processing`, waiting a little longer between calls as the render goes on. Once the task is `completed`, `output.video_url` links to the file that Kling4 stored for you.

GET/v1/tasks/{task_id}
AuthorizationBearer <token>

A secret key from Settings → API keys, sent as a Bearer token. Call the API with it from your own server only.

In: header

Path Parameters

task_idstring

The task_id you got back when creating the task. Treat it as an opaque string.

Response Body

curl "https://kling4.video/v1/tasks/Vq3x8LmZ2tR9bK_wP0sYd" \  -H "Authorization: Bearer sk_sd_example"

{
  "task_id": "Vq3x8LmZ2tR9bK_wP0sYd",
  "status": "processing",
  "model": "kling_v4",
  "output": null,
  "credits_used": 15,
  "error": null,
  "created_at": "2026-10-20T09:12:04.000Z",
  "completed_at": null
}

{
  "error": {
    "code": "invalid_api_key",
    "message": "The API key is invalid, expired, or revoked.",
    "param": null,
    "request_id": "req_2YgM6pg5oM2WkKpQ"
  }
}
{
  "error": {
    "code": "task_not_found",
    "message": "Task not found.",
    "param": null,
    "request_id": "req_2YgM6pg5oM2WkKpQ"
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "API rate limit exceeded. Try again later.",
    "param": null,
    "request_id": "req_2YgM6pg5oM2WkKpQ"
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "The request could not be completed.",
    "param": null,
    "request_id": "req_2YgM6pg5oM2WkKpQ"
  }
}