> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling 3.0 Turbo

Parameter und Verwendung sind an die offizielle Dokumentation angeglichen; für detaillierte Parameter siehe direkt die offizielle Dokumentation.

## 1. Überblick

Dieses Dokument beschreibt, wie Sie über das offizielle Kling-3.0-Turbo-Protokoll die Funktionen Text-zu-Video und Bild-zu-Video verwenden. Turbo und Standard-Kling 3.0 verwenden dasselbe offizielle Protokoll; Anforderungs- und Antwortstruktur sind identisch, lediglich Funktionsumfang, Auflösungsstufen und Abrechnung unterscheiden sich.

Beide Funktionen verwenden einen asynchronen Aufgabenmodus:

1. Rufen Sie den entsprechenden Erstellungs-Endpunkt auf.
2. Speichern Sie die `data.id` aus der Erstellungsantwort.
3. Fragen Sie den Aufgabenstatus mit demselben API-Schlüssel ab, der beim Erstellen der Aufgabe verwendet wurde.
4. Nach erfolgreicher Aufgabe rufen Sie das generierte Video aus `outputs` ab und speichern es.

### 1.1 Endpunktadressen

| Funktion | Aufgabe erstellen | Aufgabe abfragen |
| - | - | - |
| Text-zu-Video | `POST /v3/kling/text-to-video/kling-3.0-turbo` | `GET /v3/kling/tasks` |
| Bild-zu-Video | `POST /v3/kling/image-to-video/kling-3.0-turbo` | `GET /v3/kling/tasks` |

Die vollständige Adresse in den Beispielen dieses Dokuments ergibt sich aus `https://{api_domain}` plus dem in der Tabelle angegebenen Endpunktpfad, wobei `{api_domain}` Ihre genutzte API-Domain ist. Turbo bietet nur Text-zu-Video und Bild-zu-Video; Omni-Videos und Bewegungssteuerung werden nicht unterstützt.

### 1.2 Authentifizierung

Alle Anforderungen müssen einen API-Schlüssel enthalten. POST-Anforderungen müssen zusätzlich den JSON-Inhaltstyp angeben:

```
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
```

### 1.3 Antwortstruktur

In der Erstellungsantwort ist `data` ein Objekt. Häufige Felder sind `id` (die von Kling generierte Aufgaben-ID für spätere Abfragen), `external_id` (die Widerspiegelung von `options.external_task_id`; kann ausbleiben, wenn nicht gesetzt) und `status` (der Status nach der Erstellung, normalerweise `submitted`).

In der Abfrageantwort ist `data` ein Array. Jede Aufgabe enthält `id`, `external_id`, `status` (`submitted`, `processing`, `succeeded` oder `failed`), `message`, `create_time`, `update_time` und `outputs`. Häufige Felder der Videoergebnisse in `outputs` sind `type`, `id`, `url`, `watermark_url` und `duration`, wobei `url` das Ergebnis ohne Wasserzeichen, `watermark_url` das Ergebnis mit Wasserzeichen und `duration` die Videolänge in Sekunden ist.

## 2. Text-zu-Video

### 2.1 Aufgabe erstellen

```
POST https://{api_domain}/v3/kling/text-to-video/kling-3.0-turbo
```

Anforderungsfelder:

| Feld | Typ | Erforderlich | Standardwert / Wertebereich | Beschreibung |
| - | - | - | - | - |
| `prompt` | string | Ja | | Text-Prompt, kann positive und negative Beschreibungen enthalten; maximal 3072 Zeichen, empfohlen nicht mehr als 2500 Zeichen |
| `settings.resolution` | string | Nein | Standard `720p`; `720p`, `1080p` | Auflösung des generierten Videos |
| `settings.aspect_ratio` | string | Nein | Standard `16:9`; `16:9`, `9:16`, `1:1` | Seitenverhältnis (Breite:Höhe) des generierten Videos |
| `settings.duration` | int | Nein | Standard 5; Ganzzahl von 3–15 | Dauer des generierten Videos in Sekunden |
| `options.callback_url` | string | Nein | | Adresse, die bei Statusänderungen der Aufgabe Callback-Benachrichtigungen empfängt |
| `options.external_task_id` | string | Nein | | Benutzerdefinierte Aufgaben-ID; überschreibt nicht die System-Aufgaben-ID, kann für Abfragen verwendet werden, muss unter einem Benutzer eindeutig sein |
| `options.watermark_info.enabled` | boolean | Nein | Standard `false` | Ob ein Ergebnis mit Wasserzeichen erzeugt werden soll |

Multi-Shot-Videos werden über das feste Format im `prompt` umgesetzt: „镜头 n, m, words; 镜头 n, m, words;“ (mit halbbreiten Zeichen getrennt). Dabei ist n die Shot-Nummer (maximal 6, mindestens 1), m die Shot-Dauer (jede nicht kleiner als 1, die Summe aller Shot-Dauern entspricht der gesamten Videodauer), words der Shot-Prompt (maximal 512 Zeichen).

### 2.2 Erstellungsbeispiel

```bash theme={null}
curl -X POST 'https://{api_domain}/v3/kling/text-to-video/kling-3.0-turbo' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "A cinematic tracking shot of a red sports car driving along a coastal road at sunset",
    "settings": {
      "resolution": "1080p",
      "aspect_ratio": "16:9",
      "duration": 5
    },
    "options": {
      "external_task_id": "turbo-text-20260826-0001"
    }
  }'
```

Nach erfolgreicher Erstellung wird die Aufgaben-ID zurückgegeben:

```json theme={null}
{
  "code": 0,
  "message": "success",
  "request_id": "provider-request-id",
  "data": {
    "id": "kling-turbo-text-task-id",
    "external_id": "turbo-text-20260826-0001",
    "status": "submitted",
    "create_time": 1781080778802,
    "update_time": 1781080794151
  }
}
```

Bitte speichern Sie `data.id`. Wenn `options.external_task_id` nicht übergeben wird, kann `data.external_id` ausbleiben.

### 2.3 Aufgabe abfragen

```
GET https://{api_domain}/v3/kling/tasks?task_ids={task_id}
```

Verwenden Sie denselben API-Schlüssel wie beim Erstellen der Aufgabe. Sie können `external_task_ids` auch zum Abfragen benutzerdefinierter Aufgaben-IDs verwenden. `task_ids` und `external_task_ids` dürfen pro Anfrage nur jeweils eines angeben; beide unterstützen 1–50 IDs, getrennt durch englische Kommas. `data` in der Antwort ist ein Array und behält die Reihenfolge der angeforderten IDs bei.

### 2.4 Abfragebeispiel

```bash theme={null}
curl -X GET 'https://{api_domain}/v3/kling/tasks?task_ids=kling-turbo-text-task-id' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'
```

Im Erfolgsfall wird Folgendes zurückgegeben:

```json theme={null}
{
  "code": 0,
  "message": "success",
  "request_id": "provider-request-id",
  "data": [
    {
      "id": "kling-turbo-text-task-id",
      "status": "succeeded",
      "outputs": [
        {
          "type": "video",
          "url": "https://your-result-cdn.example.com/turbo-text.mp4",
          "duration": 5
        }
      ]
    }
  ]
}
```

`status=processing` bedeutet, dass die Aufgabe noch ausgeführt wird; es wird empfohlen, alle 10–30 Sekunden abzufragen. `status=failed` bedeutet, dass die Aufgabe fehlgeschlagen ist; das Polling sollte nicht fortgesetzt werden. Bitte speichern Sie nach erfolgreicher Aufgabe umgehend die Datei unter `outputs[type=video].url`; die Download-URL kann ablaufen.

### 2.5 Hinweise zur Abrechnung

```
任务费用 = 对应分辨率的每秒单价 × settings.duration
```

Die Preisstufe wird ausschließlich durch `settings.resolution` (`720p` oder `1080p`) bestimmt. Wird `duration` nicht übergeben, werden die Standard-5-Sekunden berechnet. Beim Erstellen der Aufgabe wird gemäß der angeforderten Dauer berechnet; schlägt die Aufgabenerstellung oder die endgültige Generierung fehl, wird der Betrag automatisch erstattet. Die genauen Einzelpreise entnehmen Sie der Preisübersicht des von Ihnen genutzten Dienstes.

## 3. Bild-zu-Video

### 3.1 Aufgabe erstellen

```
POST https://{api_domain}/v3/kling/image-to-video/kling-3.0-turbo
```

Anforderungsfelder:

| Feld | Typ | Erforderlich | Standardwert / Wertebereich | Beschreibung |
| - | - | - | - | - |
| `contents` | array | Ja | | Sammlung von Referenzmaterial, mindestens ein Element |
| `contents[].type` | string | Ja | `prompt`, `first_frame` | Materialtyp: Prompt, Erstbild |
| `contents[].text` | string | Nein | | Text-Prompt bei `type=prompt`, maximal 2500 Zeichen |
| `contents[].url` | string | Nein | | Erstbild bei `type=first_frame`, unterstützt URL oder Base64 |
| `settings.resolution` | string | Nein | Standard `720p`; `720p`, `1080p` | Auflösung des generierten Videos |
| `settings.duration` | int | Nein | Standard 5; Ganzzahl von 3–15 | Dauer des generierten Videos in Sekunden |
| `options.external_task_id` | string | Nein | | Benutzerdefinierte Aufgaben-ID; überschreibt nicht die System-Aufgaben-ID, kann für Abfragen verwendet werden, muss unter einem Benutzer eindeutig sein |
| `options.watermark_info.enabled` | boolean | Nein | Standard `false` | Ob ein Ergebnis mit Wasserzeichen erzeugt werden soll |

Bilder werden als `.jpg`, `.jpeg` und `.png` unterstützt, Dateien dürfen nicht größer als 50 MB sein, Breite und Höhe nicht kleiner als 300 Pixel, und das Seitenverhältnis muss zwischen 1:2,5 und 2,5:1 liegen. Bild-zu-Video unterstützt nur das erste Bild; „erstes Bild + letztes Bild“ und „nur letztes Bild“ werden derzeit nicht unterstützt. `options.callback_url` kann ebenfalls übergeben werden; die Verwendung ist wie bei Text-zu-Video. Multi-Shot wird ebenfalls über das feste Format im `prompt` umgesetzt.

### 3.2 Erstellungsbeispiel

```bash theme={null}
curl -X POST 'https://{api_domain}/v3/kling/image-to-video/kling-3.0-turbo' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
    "contents": [
      {
        "type": "prompt",
        "text": "The subject turns toward the camera while the wind moves naturally through the scene"
      },
      {
        "type": "first_frame",
        "url": "https://your-cdn.example.com/first-frame.png"
      }
    ],
    "settings": {
      "resolution": "1080p",
      "duration": 5
    },
    "options": {
      "external_task_id": "turbo-image-20260826-0001"
    }
  }'
```

Im Erfolgsfall wird Folgendes zurückgegeben:

```json theme={null}
{
  "code": 0,
  "message": "success",
  "request_id": "provider-request-id",
  "data": {
    "id": "kling-turbo-image-task-id",
    "external_id": "turbo-image-20260826-0001",
    "status": "submitted",
    "create_time": 1781080778802,
    "update_time": 1781080794151
  }
}
```

### 3.3 Aufgabe abfragen

Verwenden Sie die `data.id` aus der Erstellungsantwort, um die Aufgabe abzufragen:

```
GET https://{api_domain}/v3/kling/tasks?task_ids={task_id}
```

Verwenden Sie bei einer Abfrage über `task_ids` denselben API-Schlüssel wie beim Erstellen der Aufgabe. Sie können auch über `external_task_ids` die beim Erstellen übergebene `options.external_task_id` abfragen. Der Abfrageparameter unterstützt 1–50 durch englische Kommas getrennte IDs.

### 3.4 Abfragebeispiel

```bash theme={null}
curl -X GET 'https://{api_domain}/v3/kling/tasks?task_ids=kling-turbo-image-task-id' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'
```

Im Erfolgsfall befindet sich die Video-URL unter `outputs[type=video].url`:

```json theme={null}
{
  "code": 0,
  "message": "success",
  "request_id": "provider-request-id",
  "data": [
    {
      "id": "kling-turbo-image-task-id",
      "status": "succeeded",
      "outputs": [
        {
          "type": "video",
          "url": "https://your-result-cdn.example.com/turbo-image.mp4",
          "duration": 5
        }
      ]
    }
  ]
}
```

Bei `status=processing` wird empfohlen, alle 10–30 Sekunden weiter abzufragen; bei `status=failed` das Polling beenden und die Eingaben anhand der Fehlermeldung korrigieren.

### 3.5 Hinweise zur Abrechnung

```
任务费用 = 对应分辨率的每秒单价 × settings.duration
```

Die Preisstufe wird ausschließlich durch `settings.resolution` (`720p` oder `1080p`) bestimmt. Wird `duration` nicht übergeben, werden die Standard-5-Sekunden berechnet. Beim Erstellen der Aufgabe wird gemäß der angeforderten Dauer berechnet; schlägt die Aufgabenerstellung oder die endgültige Generierung fehl, wird der Betrag automatisch erstattet. Die genauen Einzelpreise entnehmen Sie der Preisübersicht des von Ihnen genutzten Dienstes.

## 4. Häufige Fehler und Hinweise

Schnittstellenfehler verwenden die folgende Struktur:

```json theme={null}
{
  "code": 1203,
  "message": "task not found (trace_id: platform-trace-id)",
  "request_id": "",
  "data": null
}
```

Häufige Statuscodes: 400/1200 (Parameter oder Inhaltstyp ungültig, laut `message` korrigieren), 401/1000 (API-Schlüssel fehlt oder ungültig), 403/1103 (keine Berechtigung zur Ausführung), 404/1203 (Aufgabe nicht vorhanden oder keine Berechtigung zur Abfrage), 429/1302 (zu viele Anfragen, Frequenz reduzieren und exponentiellen Backoff anwenden), 500/5000, 503/5001, 504/5002 (Dienstfehler oder Zeitüberschreitung, später erneut versuchen und unkontrollierte Wiederholungen vermeiden). Wenn `message` eine `trace_id` enthält, geben Sie diese bei der Kontaktaufnahme mit dem Support mit an.

Weitere Hinweise:

* Der Anforderungstext muss kein `model` oder `model_name` enthalten; die Modellversion ist bereits in der URL enthalten.
* Nach dem Erstellen der Aufgabe müssen Sie `data.id` persistieren; verwenden Sie nicht `request_id` als Aufgaben-ID.
* Der Anforderungstext ist auf maximal 64 MB begrenzt; für größere Bilder wird empfohlen, eine öffentlich zugängliche Internet-URL zu verwenden, auf die Kling zugreifen kann.
* Eingabe-Medien-URLs müssen für Kling öffentlich zugänglich sein; sie dürfen nicht von internen Netzwerken, Cookies oder temporären Login-Zuständen abhängen.
* Verwenden Sie für Abfragen ein Polling-Intervall von 10–30 Sekunden und legen Sie ein Gesamt-Timeout sowie exponentiellen Backoff fest.
* Ein POST-Timeout bedeutet nicht zwangsläufig, dass die Aufgabe nicht erstellt wurde; fragen Sie zuerst über `external_task_id` ab, bevor Sie entscheiden, ob Sie erneut versuchen.
* Nach Erhalt des Erfolgsstatus speichern Sie bitte sofort die Datei unter `outputs[type=video].url`; die Ergebnis-URL kann ablaufen.

## 5. Python-Aufrufbeispiel

Das folgende Beispiel verwendet die Standardbibliothek `requests` und zeigt Erstellung und Polling für Text-zu-Video. Für Bild-zu-Video müssen nur der Erstellungs-Endpunkt und der Anforderungstext ersetzt werden.

```python theme={null}
import os
import time

import requests


api_domain = os.environ["API_DOMAIN"]
api_key = os.environ["PLATFORM_API_KEY"]
headers = {
    "
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.