> ## 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 & 3.0 Omni

Die Parameter und die Verwendung entsprechen dem offiziellen Standard. Detaillierte Parameter finden Sie direkt in der offiziellen Dokumentation.

## 1. Überblick

Dieses Dokument erläutert, wie Sie über das offizielle Kling-3.0-Protokoll Text-to-Video, Image-to-Video, Omni-Video und Motion Control nutzen.

Alle vier Fähigkeiten verwenden ein asynchrones Aufgabenmodell:

1. Rufen Sie den entsprechenden Erstellungs-Endpunkt auf.
2. Speichern Sie `data.id` aus der Erstellungsantwort.
3. Fragen Sie den Aufgabenstatus mit demselben API-Key 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 API-Endpunkte

| Fähigkeit | Aufgabe erstellen | Aufgabe abfragen |
| - | - | - |
| Text-to-Video | `POST /v3/kling/text-to-video/kling-3.0` | `GET /v3/kling/tasks` |
| Image-to-Video | `POST /v3/kling/image-to-video/kling-3.0` | `GET /v3/kling/tasks` |
| Omni-Video | `POST /v3/kling/omni-video/kling-3.0-omni` | `GET /v3/kling/tasks` |
| Motion Control | `POST /v3/kling/motion-control/kling-3.0` | `GET /v3/kling/tasks` |

Die vollständigen Adressen in den Beispielen dieses Dokuments setzen sich aus `https://{api_domain}` plus dem Pfad in der Tabelle zusammen, wobei `{api_domain}` für die von Ihnen verwendete API-Domain steht.

### 1.2 Authentifizierung

Alle Anfragen müssen einen API-Key enthalten. POST-Anfragen müssen außerdem den JSON-Inhaltstyp angeben:

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

### 1.3 Antwortstruktur

Das `data`-Feld in der Erstellungsantwort ist ein Objekt; die häufigsten Felder sind:

| Feld | Typ | Beschreibung |
| - | - | - |
| `id` | string | Von Kling generierte Aufgaben-ID; wird für spätere Abfragen verwendet |
| `external_id` | string | Echo von `options.external_task_id`; kann fehlen, wenn nicht gesetzt |
| `status` | string | Aufgabenstatus nach Erstellung, in der Regel `submitted` |

Das `data`-Feld der Abfrageantwort ist ein Array; jede Aufgabe enthält die folgenden Felder:

| Feld | Typ | Beschreibung |
| - | - | - |
| `id` | string | Systemgenerierte Aufgaben-ID |
| `external_id` | string | Vom Aufrufer festgelegte Aufgaben-ID (falls vorhanden) |
| `status` | string | `submitted`, `processing`, `succeeded` oder `failed` |
| `message` | string | Statusinformationen; bei Fehlern die Fehlerursache (falls vorhanden) |
| `create_time` | integer | Erstellungszeit, Unix-Millisekunden-Zeitstempel (falls vorhanden) |
| `update_time` | integer | Aktualisierungszeit, Unix-Millisekunden-Zeitstempel (falls vorhanden) |
| `outputs` | array | Generierungsergebnis; eine erfolgreiche Aufgabe enthält in der Regel ein Ergebnis mit `type=video` |

Bei Videoergebnissen in `outputs` sind die häufigsten Felder `type`, `id`, `url`, `watermark_url` und `duration`. Dabei ist `url` die URL des Ergebnisses ohne Wasserzeichen, `watermark_url` die URL mit Wasserzeichen und `duration` die Videodauer in Sekunden.

## 2. Text-to-Video

Offizielle Parameterbeschreibung: Text to Video

### 2.1 Aufgabe erstellen

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

Häufige Anforderungsfelder:

| Feld | Typ | Erforderlich | Beschreibung |
| - | - | - | - |
| `prompt` | string | Ja | Prompt für die Videogenerierung, darf nicht leer sein, max. 3072 Zeichen |
| `settings.multi_shot` | boolean | Nein | Ob ein Multi-Shot-Video generiert werden soll, Standard `true` |
| `settings.resolution` | string | Nein | `720p`, `1080p` oder `4k`, Standard `720p` |
| `settings.aspect_ratio` | string | Nein | `16:9`, `9:16` oder `1:1`, Standard `16:9` |
| `settings.audio` | string | Nein | `off` oder `native`, Standard `off` |
| `settings.duration` | integer | Nein | 3–15 Sekunden, Standard 5 Sekunden |
| `options.callback_url` | string | Nein | URL, die bei Statusänderungen Callback-Benachrichtigungen empfängt |
| `options.external_task_id` | string | Nein | Benutzerdefinierte Aufgaben-ID |
| `options.watermark_info.enabled` | boolean | Nein | Ob ein Ergebnis mit Wasserzeichen generiert werden soll, Standard `false` |

Wenn `multi_shot=true` ist, können Sie gemäß dem offiziellen Kling-Format mehrere Einstellungen im Prompt beschreiben. Die Summe der Dauern aller Einstellungen sollte der Gesamtdauer des Videos entsprechen.

### 2.2 Erstellungsbeispiel

```bash theme={null}
curl -X POST 'https://{api_domain}/v3/kling/text-to-video/kling-3.0' \
  -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",
      "duration": 5,
      "audio": "native"
    },
    "options": {
      "external_task_id": "text-video-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-text-task-id",
    "external_id": "text-video-20260826-0001",
    "status": "submitted",
    "create_time": 1781080778802,
    "update_time": 1781080794151
  }
}
```

### 2.3 Aufgabe abfragen

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

Speichern Sie `data.id`. Wenn `options.external_task_id` nicht übergeben wurde, wird `data.external_id` möglicherweise nicht zurückgegeben.

Verwenden Sie denselben API-Key wie beim Erstellen der Aufgabe. Wenn die Aufgaben-ID nicht vorhanden oder nicht zugänglich ist, wird `task not found` zurückgegeben.

Sie können auch `external_task_ids` zum Abfragen benutzerdefinierter Aufgaben-IDs verwenden:

```
GET https://{api_domain}/v3/kling/tasks?external_task_ids={external_task_id}
```

Pro Anfrage muss genau einer der Parameter `task_ids` oder `external_task_ids` angegeben werden. Beide unterstützen 1–50 durch Kommas getrennte IDs; in der Antwort ist `data` 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-text-task-id' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'
```

Bei erfolgreicher Aufgabe wird Folgendes zurückgegeben:

```json theme={null}
{
  "code": 0,
  "message": "success",
  "request_id": "provider-request-id",
  "data": [
    {
      "id": "kling-text-task-id",
      "status": "succeeded",
      "outputs": [
        {
          "type": "video",
          "url": "https://your-result-cdn.example.com/text-video.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; Sie sollten nicht weiter abfragen. Nach erfolgreichem Abschluss speichern Sie bitte umgehend die Datei unter `outputs[type=video].url`; der Download-Link kann nur eine begrenzte Gültigkeit haben.

### 2.5 Abrechnung

```
Aufgabengebühr = Sekundenpreis der entsprechenden Auflösungs- und Audio-Stufe × settings.duration
```

Die Preisstufe wird durch `settings.resolution` und `settings.audio` bestimmt. Beispiel: Die Kosten für `1080p`, `audio=native`, `duration=5` entsprechen „Sekundenpreis der Stufe 1080p mit nativem Audio × 5 Sekunden“. Wenn `duration` nicht angegeben ist, werden standardmäßig 5 Sekunden berechnet.

Beim Erstellen der Aufgabe wird die Gebühr auf Basis der angeforderten Dauer abgezogen. Wenn die Aufgabenerstellung fehlschlägt oder die finale Generierung fehlschlägt, wird die Gebühr automatisch erstattet. Die konkreten Einheitspreise entnehmen Sie bitte der Preisliste des von Ihnen genutzten Dienstes.

## 3. Image-to-Video

Offizielle Parameterbeschreibung: Image to Video

### 3.1 Aufgabe erstellen

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

Häufige Anforderungsfelder:

| Feld | Typ | Erforderlich | Beschreibung |
| - | - | - | - |
| `contents` | array | Ja | Multimodale Inhaltsliste, mindestens ein Element |
| `contents[].type` | string | Ja | `prompt`, `first_frame`, `last_frame` oder `element` |
| `settings.resolution` | string | Nein | `720p`, `1080p` oder `4k`, Standard `720p` |
| `settings.multi_shot` | boolean | Nein | Ob ein Multi-Shot-Video generiert werden soll, Standard `true` |
| `settings.audio` | string | Nein | `off` oder `native`, Standard `off` |
| `settings.duration` | integer | Nein | 3–15 Sekunden, Standard 5 Sekunden |
| `options.callback_url` | string | Nein | URL, die bei Statusänderungen Callback-Benachrichtigungen empfängt |
| `options.external_task_id` | string | Nein | Benutzerdefinierte Aufgaben-ID |
| `options.watermark_info.enabled` | boolean | Nein | Ob ein Ergebnis mit Wasserzeichen generiert werden soll, Standard `false` |

Felder der Unterelemente von `contents`:

| type | Erforderliche Felder | Beschreibung |
| - | - | - |
| `prompt` | `text` | Text-Prompt, max. 3072 Zeichen |
| `first_frame` | `url` | Startbild, unterstützt URL oder Base64; muss angegeben werden |
| `last_frame` | `url` | Endbild, unterstützt URL oder Base64; nur Endbild wird nicht unterstützt, Startbild muss ebenfalls angegeben werden |
| `element` | `element_id`, `id` | Subjekt-ID und Index-ID, mit der das Subjekt im Prompt referenziert wird; `id` darf innerhalb derselben Aufgabe nicht doppelt vorkommen; es können maximal 3 Subjekte angegeben werden |

Bilder unterstützen `.jpg`, `.jpeg` und `.png`; die Dateigröße darf 50 MB nicht überschreiten, Breite und Höhe müssen mindestens 300 Pixel betragen, und das Seitenverhältnis muss zwischen 1:2.5 und 2.5:1 liegen.

### 3.2 Erstellungsbeispiel

```bash theme={null}
curl -X POST 'https://{api_domain}/v3/kling/image-to-video/kling-3.0' \
  -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,
      "audio": "off"
    },
    "options": {
      "external_task_id": "image-video-20260826-0001"
    }
  }'
```

Bei erfolgreicher Erstellung ist `data.id` die für spätere Abfragen zu verwendende Aufgaben-ID:

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

### 3.3 Aufgabe abfragen

Fragen Sie die Aufgabe mithilfe von `data.id` aus der Erstellungsantwort ab:

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

Verwenden Sie beim Abfragen über `task_ids` denselben API-Key wie beim Erstellen der Aufgabe. Sie können auch `external_task_ids` verwenden, um die beim Erstellen übergebene `options.external_task_id` abzufragen. Der Abfrageparameter unterstützt 1–50 durch Kommas getrennte IDs.

### 3.4 Abfragebeispiel

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

Bei erfolgreicher Aufgabe befindet sich die Video-URL in `outputs[type=video].url`:

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

Bei `status=processing` wird empfohlen, alle 10–30 Sekunden weiter abzufragen. Bei `status=failed` beenden Sie das Abfragen und korrigieren Sie die Eingabe anhand der Fehlermeldung.

### 3.5 Abrechnung

```
Aufgabengebühr = Sekundenpreis der entsprechenden Auflösungs- und Audio-Stufe × settings.duration
```

Die Preisstufe wird durch `settings.resolution` und `settings.audio` bestimmt. Wenn `duration` nicht angegeben ist, werden standardmäßig 5 Sekunden berechnet. Beim Erstellen der Aufgabe wird die Gebühr auf Basis der angeforderten Dauer abgezogen. Wenn die Aufgabenerstellung fehlschlägt oder die finale Generierung fehlschlägt, wird die Gebühr automatisch erstattet. Die konkreten Einheitspreise entnehmen Sie bitte der Preisliste des von Ihnen genutzten Dienstes.

## 4. Omni-Video

Offizielle Parameterbeschreibung: Omni Video

### 4.1 Aufgabe erstellen

```
POST https://{api_domain}/v3/kling/omni-video/kling-3.0-omni
```

Häufige Anforderungsfelder:

| Feld | Typ | Erforderlich | Beschreibung |
| - | - | - | - |
| `contents` | array | Ja | Multimodale Inhaltsliste, mindestens ein Element |
| `contents[].type` | string | Ja | `prompt`, `first_frame`, `last_frame`, `refer_image`, `feature_video`, `base_video` oder `element` |
| `settings.resolution` | string | Nein | `720p`, `1080p` oder `4k`, Standard `720p` |
| `settings.multi_shot` | boolean | Nein | Ob ein Multi-Shot-Video generiert werden soll, Standard `true` |
| `settings.aspect_ratio` | string | Nein | `16:9`, `9:16` oder `1:1`, Standard `16:9`; erforderlich, wenn kein Startbild oder kein Referenzvideo angegeben ist |
| `settings.audio` | string | Nein | `off`, `native` oder `original`, Standard `off` |
| `settings.duration` | integer | Nein | 3–15 Sekunden, Standard 5 Sekunden |
| `options.callback_url` | string | Nein | URL, die bei Statusänderungen Callback-Benachrichtigungen empfängt |


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