---
title: "Kling AI Multi-Image-to-Video API Reference"
aliases: [kling-mi2v, kling-multi-image2video, kling-element-video]
tags: [kling, ai-video, api, multi-image-to-video, video-generation, reference-images]
sources: [raw/Kling AI Next-Gen AI Video & AI Image Generator 3.md]
created: 2026-04-26
updated: 2026-04-26
---

## Overview

Kling AI's `multi-image2video` endpoint generates a video from **2–4 reference images** (elements/subjects), compositing them together in the output. Only model `kling-v1-6` is supported. Base URL: `https://api-singapore.klingai.com`. Auth via Bearer token.

Companion endpoints: [[wiki/web-agency/kling-image-to-video-api|Kling Image-to-Video API]] (single image) and [[wiki/web-agency/kling-text-to-video-api|Kling Text-to-Video API]]. Used in the [[wiki/web-agency/claude-code-nanobanana-website-workflow|Claude Code + Nanobanana 2 Website Workflow]] pipeline.

---

## Create Task — `POST /v1/videos/multi-image2video`

### Minimal Example

```bash
curl -X POST https://api-singapore.klingai.com/v1/videos/multi-image2video \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "model_name": "kling-v1-6",
    "image_list": [
      { "image": "https://example.com/subject.png" },
      { "image": "https://example.com/clothing.png" }
    ],
    "prompt": "A white Bichon Frise wearing a red floral cotton jacket, licking its paw",
    "mode": "pro",
    "duration": "5",
    "aspect_ratio": "16:9"
  }'
```

### Parameters

| Parameter | Type | Required | Notes |
|-----------|------|----------|-------|
| `model_name` | enum | Yes | `kling-v1-6` only |
| `image_list` | array | Yes | 2–4 images; each `{ "image": "<url_or_base64>" }` |
| `prompt` | string | Yes | Max 2500 chars |
| `negative_prompt` | string | No | Max 2500 chars |
| `mode` | enum | No | `std` (cost-effective) / `pro` (higher quality) |
| `duration` | enum | No | `5` or `10` seconds |
| `aspect_ratio` | enum | No | `16:9`, `9:16`, `1:1` |
| `watermark_info` | object | No | `{ "enabled": true/false }` |
| `callback_url` | string | No | Webhook on status change |
| `external_task_id` | string | No | User-defined unique ID |

### Image List Rules

- **2–4 images** supported; order matters (first image is primary subject)
- No server-side cropping — pre-crop/select the subject before upload
- URL (must be publicly accessible) or raw Base64
- **Base64**: omit `data:image/png;base64,` prefix — raw string only
- Formats: `.jpg` / `.jpeg` / `.png`
- Max file size: 10 MB; min dimension: 300 px; aspect ratio: 1:2.5–2.5:1

### Response (200)

```json
{
  "code": 0,
  "message": "string",
  "request_id": "string",
  "data": {
    "task_id": "string",
    "task_status": "submitted",
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}
```

Task statuses: `submitted` → `processing` → `succeed` / `failed`

---

## Query Task (Single) — `GET /v1/videos/multi-image2video/{id}`

```bash
curl https://api-singapore.klingai.com/v1/videos/multi-image2video/{task_id} \
  -H 'Authorization: Bearer <token>'
```

Query by `task_id` (path param) or `external_task_id` (path param) — choose one.

### Response Shape

```json
{
  "data": {
    "task_id": "string",
    "task_status": "succeed",
    "task_status_msg": "string",
    "task_info": { "external_task_id": "string" },
    "task_result": {
      "videos": [{
        "id": "string",
        "url": "string",
        "watermark_url": "string",
        "duration": "string"
      }]
    },
    "watermark_info": { "enabled": false },
    "final_unit_deduction": "string",
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}
```

**Videos expire after 30 days — download promptly.**

---

## Query Task (List) — `GET /v1/videos/multi-image2video`

```bash
curl 'https://api-singapore.klingai.com/v1/videos/multi-image2video?pageNum=1&pageSize=30' \
  -H 'Authorization: Bearer <token>'
```

| Param | Range |
|-------|-------|
| `pageNum` | 1–1000 |
| `pageSize` | 1–500 |

Response is an array of the same task objects as the single-query response.

---

## Key Takeaways

- **Multi-image → video**: composites 2–4 reference images (subjects/elements) into one generated video — useful for "subject wearing clothing" or product-in-scene workflows.
- **Model locked**: only `kling-v1-6` is supported for this endpoint.
- **No server cropping**: isolate the subject yourself before submitting.
- **Base64**: raw string only — no `data:image/png;base64,` prefix.
- **Duration options**: 5 s or 10 s; modes `std` vs `pro`.
- **Aspect ratios**: `16:9`, `9:16`, `1:1`.
- **Download within 30 days**: generated videos are deleted after that.
- Poll or use `callback_url` for async task completion; statuses: `submitted → processing → succeed/failed`.

---

## Sources

- Raw: `Kling AI Next-Gen AI Video & AI Image Generator 3.md`
- Kling API docs: `https://kling.ai/document-api/apiReference/model/multiImageToVideo`
