# Kling v3.0 Standard Image-to-Video - Documentation

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown is available with `Accept: text/markdown` and `.md` URL variants.

Source: /docs/api-reference/model-apis-kling-v3.0-std-i2v

# Kling v3.0 Standard Image-to-Video

POST

/

v3

/

async

/

kling-v3.0-std-i2v

Kling v3.0 Standard Image-to-Video

cURL

```
curl --request POST \
--url https://api.novita.ai/v3/async/kling-v3.0-std-i2v \
--header 'Authorization: ' \
--header 'Content-Type: ' \
--data '
{
"image": "",
"sound": true,
"prompt": "",
"duration": 123,
"cfg_scale": 123,
"end_image": "",
"multi_prompt": [
{
"prompt": "",
"duration": 123
}
],
"negative_prompt": ""
}
'
```

```
import requests

url = "https://api.novita.ai/v3/async/kling-v3.0-std-i2v"

payload = {
"image": "",
"sound": True,
"prompt": "",
"duration": 123,
"cfg_scale": 123,
"end_image": "",
"multi_prompt": [
{
"prompt": "",
"duration": 123
}
],
"negative_prompt": ""
}
headers = {
"Content-Type": "",
"Authorization": ""
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

```
const options = {
method: 'POST',
headers: {'Content-Type': '', Authorization: ''},
body: JSON.stringify({
image: '',
sound: true,
prompt: '',
duration: 123,
cfg_scale: 123,
end_image: '',
multi_prompt: [{prompt: '', duration: 123}],
negative_prompt: ''
})
};

fetch('https://api.novita.ai/v3/async/kling-v3.0-std-i2v', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
```

```
"https://api.novita.ai/v3/async/kling-v3.0-std-i2v",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image' => '',
'sound' => true,
'prompt' => '',
'duration' => 123,
'cfg_scale' => 123,
'end_image' => '',
'multi_prompt' => [
[
'prompt' => '',
'duration' => 123
]
],
'negative_prompt' => ''
]),
CURLOPT_HTTPHEADER => [
"Authorization: ",
"Content-Type: "
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
```

```
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.novita.ai/v3/async/kling-v3.0-std-i2v"

payload := strings.NewReader("{\n \"image\": \"\",\n \"sound\": true,\n \"prompt\": \"\",\n \"duration\": 123,\n \"cfg_scale\": 123,\n \"end_image\": \"\",\n \"multi_prompt\": [\n {\n \"prompt\": \"\",\n \"duration\": 123\n }\n ],\n \"negative_prompt\": \"\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "")
req.Header.Add("Authorization", "")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
```

```
HttpResponse response = Unirest.post("https://api.novita.ai/v3/async/kling-v3.0-std-i2v")
.header("Content-Type", "")
.header("Authorization", "")
.body("{\n \"image\": \"\",\n \"sound\": true,\n \"prompt\": \"\",\n \"duration\": 123,\n \"cfg_scale\": 123,\n \"end_image\": \"\",\n \"multi_prompt\": [\n {\n \"prompt\": \"\",\n \"duration\": 123\n }\n ],\n \"negative_prompt\": \"\"\n}")
.asString();
```

```
require 'uri'
require 'net/http'

url = URI("https://api.novita.ai/v3/async/kling-v3.0-std-i2v")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = ''
request["Authorization"] = ''
request.body = "{\n \"image\": \"\",\n \"sound\": true,\n \"prompt\": \"\",\n \"duration\": 123,\n \"cfg_scale\": 123,\n \"end_image\": \"\",\n \"multi_prompt\": [\n {\n \"prompt\": \"\",\n \"duration\": 123\n }\n ],\n \"negative_prompt\": \"\"\n}"

response = http.request(request)
puts response.read_body
```

200

```
{
"task_id": ""
}
```

Kling v3.0 Standard Image-to-Video transforms static images into dynamic videos with natural motion, smooth scene dynamics, optional audio co-generation, and multi-prompt composition support.

This is an asynchronous API; only the task_id will be returned. You should use the task_id to request the [Task Result API](/docs/api-reference/model-apis-task-result) to retrieve the video generation results.

##

[​](#request-headers)

Request Headers

[​](#param-content-type)

Content-Type

string

required

Supports: `application/json`

[​](#param-authorization)

Authorization

string

required

Bearer authentication format, for example: Bearer {{API Key}}.

##

[​](#request-body)

Request Body

[​](#param-image)

image

string

required

First frame image for video; supports `.jpg`, `.jpeg`, `.png`.
Image file size must not exceed 10MB; width and height must be >= 300px; aspect ratio must be between 1:2.5 and 2.5:1.

[​](#param-sound)

sound

boolean

default:false

Whether to generate audio simultaneously when generating video.

[​](#param-prompt)

prompt

string

required

Positive prompt text for video generation, describing scene motion, camera moves, actions, voice style, ambience, and sound effects; must not exceed 2500 characters.

[​](#param-duration)

duration

integer

default:5

Duration of generated video in seconds (3-15).Optional values: `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`

[​](#param-cfg-scale)

cfg_scale

number

Controls the flexibility of video generation. Lower values produce more natural motion; higher values result in generated content more closely following the prompt.Value range: [0, 1]

[​](#param-end-image)

end_image

string

Ending frame image URL for guided transitions between start and end frames. Same format constraints as image. Cannot be used together with multi_prompt.

[​](#param-multi-prompt)

multi_prompt

object[]

Array of prompts for multi-shot video composition. Each item contains a prompt and duration for one segment. Cannot be used together with end_image.

Hide properties

[​](#param-prompt-1)

prompt

string

required

Motion description for this video segment.

[​](#param-duration-1)

duration

integer

default:5

Duration of this segment in seconds (3-15).Value range: [3, 15]

[​](#param-negative-prompt)

negative_prompt

string

Negative prompt specifying elements to avoid in visuals and audio; must not exceed 2500 characters.

##

[​](#response)

Response

[​](#param-task-id)

task_id

string

required

Use the task_id to request the [Task Result API](/docs/api-reference/model-apis-task-result) to retrieve the generated outputs.

Last modified on July 3, 2026
