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

# kling-3.0-turbo

> Generate videos with Kling 3.0 Turbo through Kling's upgraded text-to-video and image-to-video APIs.

Kling 3.0 Turbo is Kuaishou's upgraded video generation model for text-to-video and first-frame image-to-video workflows. AnyFast exposes the model through Kling's new model-specific API structure.

<Info>
  Kling 3.0 Turbo only uses the upgraded API. The model is selected by the endpoint path, so the request body does not contain `model_name` and does not use the Legacy `/kling/v1/videos/...` structure.
</Info>

## Supported capabilities

| Capability     | Endpoint                                        | Main input                               |
| -------------- | ----------------------------------------------- | ---------------------------------------- |
| Text to video  | `POST /kling/v2/text-to-video/kling-3.0-turbo`  | `prompt`                                 |
| Image to video | `POST /kling/v2/image-to-video/kling-3.0-turbo` | `contents` with a prompt and first frame |

Both workflows support 720p and 1080p output and durations from 3 to 15 seconds. Text-to-video additionally supports `16:9`, `9:16`, and `1:1` aspect ratios.

## Text to video

```bash cURL theme={null}
curl --request POST \
  --url https://www.anyfast.ai/kling/v2/text-to-video/kling-3.0-turbo \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "prompt": "A girl sits on a train and looks out the window as the carriage gently sways",
    "settings": {
      "resolution": "1080p",
      "aspect_ratio": "16:9",
      "duration": 5
    },
    "options": {
      "watermark_info": {
        "enabled": false
      }
    }
  }'
```

The prompt can contain positive and negative descriptions. It accepts up to 3,072 characters, although prompts under 2,500 characters are recommended.

### Multi-shot prompts

Kling 3.0 Turbo can generate one to six shots from a structured prompt:

```text theme={null}
Shot 1, 2, A wide view of a train crossing a bridge;
Shot 2, 3, The camera moves inside the carriage toward a passenger by the window;
```

Each shot must last at least one second, the shot durations must add up to the requested video duration, and each shot description can contain up to 512 characters.

## Image to video

```bash cURL theme={null}
curl --request POST \
  --url https://www.anyfast.ai/kling/v2/image-to-video/kling-3.0-turbo \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "contents": [
      {
        "type": "prompt",
        "text": "The character turns toward the window while the background moves naturally"
      },
      {
        "type": "first_frame",
        "url": "https://example.com/first-frame.png"
      }
    ],
    "settings": {
      "resolution": "1080p",
      "duration": 5
    },
    "options": {
      "watermark_info": {
        "enabled": false
      }
    }
  }'
```

The `contents` array accepts one `prompt` item and one `first_frame` item. Kling 3.0 Turbo currently supports a first frame only; it does not support an end frame or first-and-end-frame input.

<Warning>
  Use JPG, JPEG, or PNG input up to 50 MB. Both dimensions must be at least 300 px and the aspect ratio must be between 1:2.5 and 2.5:1. The first frame can be a public URL or Base64 content.
</Warning>

## Asynchronous task flow

Creation returns a task in `submitted`, `processing`, `succeeded`, or `failed` state. Query one or more task IDs through:

```http theme={null}
GET /kling/v2/tasks?task_ids=TASK_ID
```

Successful tasks return the generated video in `data[].outputs[]`. Result URLs are temporary and are cleared after 30 days, so download and store the video promptly.

<Card title="Kling 3.0 Turbo API reference" icon="code" href="/api-reference/model-api/kuaishou/kling-v3-turbo">
  Review every request field and the upgraded task response schema.
</Card>

<script src="/feedback.js" />
