---
title: "Kling 4.0"
method: POST
path: "/generate/video/kling/kling-4"
tags: ["Video"]
---

# Kling 4.0

`POST /generate/video/kling/kling-4`

## Request

- Base URL: `https://api.krea.ai`
- URL: `https://api.krea.ai/generate/video/kling/kling-4`
- Auth: HTTP bearer

Kling’s newest frontier model, up to 30s at 1080p.

## Headers

- `X-Webhook-URL` string, uri

## Request body

- object
  - `prompt` string, required
  - `start_image` string, uri, nullable: Can be an external URL, base64 data URI, or uploaded asset URL.
  - `aspect_ratio` '16:9' | '9:16' | '1:1' | '21:9'
  - `end_image` string, uri, nullable: Can be an external URL, base64 data URI, or uploaded asset URL.
  - `resolution` '720p' | '1080p'
  - `duration` integer
  - `reference_images` string[]
  - `reference_videos` string[]

## Response `200`

The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.

- object
  - `job_id` string, uuid, required
  - `status` 'backlogged' | 'queued' | 'scheduled' | 'processing' | 'sampling' | 'intermediate-complete' | 'completed' | 'failed' | 'cancelled', required
  - `created_at` string, date-time, required
  - `completed_at` unknown, required
  - `result` unknown, required
  - `error` object
    - `code` string, required: Why the job failed. `invalid_request` means the request broke a rule, such as a media limit or a file that cannot be read or downloaded. `validation_failed` means a value is outside its parameter's schema. For both codes, change the parameter named in `param` before you resubmit. Other codes are `content_policy`, `model_unavailable`, `insufficient_balance`, `timeout`, `auto_cancelled`, `provider_error`, `internal`, and `node_app_node_failed`. Treat an unknown code as `internal`.
    - `message` string
    - `param` string: The request parameter to change, present with `invalid_request` and `validation_failed`.
  - `progress` number, nullable

## Other responses

- `400`: The request body is invalid.
- `401`: You are not authenticated.
- `402`: You have run out of credits.
- `429`: You have reached the maximum number of concurrent jobs.

## Changes

- **2026-10-31** `b1a86d2f0043`: 1 info
  - added the optional property `error/param` to the response with the `200` status
- **2026-10-24** `81f118d464be`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/krea/apis/krea-api/changes/generate/video/kling/kling-4/post.md)

---

[API](https://skmtc.dev/krea/apis/krea-api.md) - [All operations](https://skmtc.dev/krea/apis/krea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/krea/apis/krea-api/revisions/c547c72ae607?raw)
