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

# Kling 3.0 Turbo Image to Video API

> Kling 3.0 Turbo converts a single image into a short video clip using a text prompt to guide the animation. Users can specify the video duration between 3 to 15 seconds and choose between 720p or 1080p resolution for output.

<div className="models-color-scope" aria-hidden="true" />

<div className="model-workflow-tabs" aria-label="Kling 3.0 endpoints">
  <a className="model-workflow-tab" href="/docs/models/kling-3/turbo-text-to-video">Turbo · Text to video</a>
  <a className="model-workflow-tab is-active" href="/docs/models/kling-3/turbo-image-to-video">Turbo · Image to video</a>
</div>

**Endpoint:** `POST https://api.higgsfield.ai/kling-video/v3.0-turbo/image-to-video`

**Endpoint ID:** `kling-video/v3.0-turbo/image-to-video`

<a className="model-playground-card" href="https://console.higgsfield.ai/models/kling-video%2Fv3.0-turbo%2Fimage-to-video/playground" target="_blank" rel="noreferrer">
  <span className="model-playground-icon">▶</span>
  <span className="model-playground-copy"><span className="model-playground-title">Try Kling 3.0 Turbo Image to Video</span><span>Open the model in the Higgsfield Playground with your own inputs.</span></span>
  <span className="model-card-arrow">↗</span>
</a>

## Quick Start

<CodeGroup>
  ```python Python theme={"dark"}
  import higgsfield_client

  result = higgsfield_client.subscribe(
      "kling-video/v3.0-turbo/image-to-video",
      arguments={'prompt': 'A cinematic glass pavilion in a misty pine forest at sunrise',
       'image_url': 'https://cdn.example.com/input.jpg',
       'duration': 5,
       'resolution': '720p'},
  )

  print(result["video"]["url"])
  ```

  ```typescript TypeScript theme={"dark"}
  import { config, higgsfield } from "@higgsfield/client/v2";

  config({ credentials: process.env.HF_CREDENTIALS });

  const result = await higgsfield.subscribe(
    "kling-video/v3.0-turbo/image-to-video",
    {
      input: {
        "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
        "image_url": "https://cdn.example.com/input.jpg",
        "duration": 5,
        "resolution": "720p"
      },
      withPolling: true,
    },
  );

  if (result.isCompleted) console.log(result.jobs[0].results?.raw.url);
  ```

  ```bash cURL theme={"dark"}
  curl --request POST \
    --url https://api.higgsfield.ai/kling-video/v3.0-turbo/image-to-video \
    --header "Authorization: Key ${HF_API_KEY_ID}:${HF_API_KEY_SECRET}" \
    --header "Content-Type: application/json" \
    --data '{
    "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
    "image_url": "https://cdn.example.com/input.jpg",
    "duration": 5,
    "resolution": "720p"
  }'
  ```
</CodeGroup>

## Input Schema

<ParamField body="prompt" type="string" required>
  Natural-language instructions describing the desired output. Kling uses up to the first `2,500` characters.
</ParamField>

<ParamField body="duration" type="integer" default="5">
  Output duration in seconds. Supported range: `3`–`15`.
</ParamField>

<ParamField body="image_url" type="string" required>
  Publicly accessible source image URL.
</ParamField>

<ParamField body="resolution" type="string" default="720p">
  Output resolution. Supported values: `720p`, `1080p`.
</ParamField>

## Output Schema

<ResponseField name="status" type="string" required>
  Request state. A newly accepted request returns `queued`.
</ResponseField>

<ResponseField name="request_id" type="string" required>
  Stable identifier used for polling, cancellation, and support.
</ResponseField>

<ResponseField name="status_url" type="string" required>
  URL to poll until the request reaches a terminal state.
</ResponseField>

<ResponseField name="cancel_url" type="string" required>
  URL used to cancel a request before processing starts.
</ResponseField>

<ResponseField name="video" type="object">
  Completed video output containing its download `url`.
</ResponseField>

## Input Example

```json theme={"dark"}
{
  "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
  "image_url": "https://cdn.example.com/input.jpg",
  "duration": 5,
  "resolution": "720p"
}
```

## Output Example

<CodeGroup>
  ```json Accepted theme={"dark"}
  {
    "status": "queued",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "status_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/status",
    "cancel_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/cancel"
  }
  ```

  ```json Completed theme={"dark"}
  {
    "status": "completed",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "video": {
      "url": "https://cdn.example.com/output.mp4"
    }
  }
  ```
</CodeGroup>

<Tip>
  Use an SDK for automatic polling, or poll the returned [status URL](/docs/concepts/polling).
</Tip>


## Related topics

- [Kling 3.0 Turbo Text to Video API](/docs/models/kling-3/turbo-text-to-video.md)
- [Kling 3.0 4K Image to Video API](/docs/models/kling-3/4k-image-to-video.md)
- [Kling 3.0 Pro Image to Video API](/docs/models/kling-3/pro-image-to-video.md)
- [Kling 3.0 Standard Image to Video API](/docs/models/kling-3/standard-image-to-video.md)
- [Kling 3.0 4K Text to Video API](/docs/models/kling-3/4k-text-to-video.md)
