# Kling-o1 Video Editing - 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-o1-video-edit

# Kling-o1 Video Editing

POST

/

v3

/

async

/

kling-o1-video-edit

Kling-o1 Video Editing

cURL

```
curl --request POST \
--url https://api.novita.ai/v3/async/kling-o1-video-edit \
--header 'Authorization: &#x3C;authorization>' \
--header 'Content-Type: &#x3C;content-type>' \
--data '
{
"video": "&#x3C;string>",
"images": [
"&#x3C;string>"
],
"prompt": "&#x3C;string>",
"fast_mode": true,
"aspect_ratio": "&#x3C;string>",
"keep_original_sound": true
}
'
```

```
import requestsurl = "https://api.novita.ai/v3/async/kling-o1-video-edit"payload = { "video": "&#x3C;string>", "images": ["&#x3C;string>"], "prompt": "&#x3C;string>", "fast_mode": True, "aspect_ratio": "&#x3C;string>", "keep_original_sound": True}headers = { "Content-Type": "&#x3C;content-type>", "Authorization": "&#x3C;authorization>"}response = requests.post(url, json=payload, headers=headers)print(response.text)
```

```
const options = { method: 'POST', headers: {'Content-Type': '&#x3C;content-type>', Authorization: '&#x3C;authorization>'}, body: JSON.stringify({ video: '&#x3C;string>', images: ['&#x3C;string>'], prompt: '&#x3C;string>', fast_mode: true, aspect_ratio: '&#x3C;string>', keep_original_sound: true })};fetch('https://api.novita.ai/v3/async/kling-o1-video-edit', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err));
```

```
&#x3C;?php$curl = curl_init();curl_setopt_array($curl, [ CURLOPT_URL => "https://api.novita.ai/v3/async/kling-o1-video-edit", 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([ 'video' => '&#x3C;string>', 'images' => [ '&#x3C;string>' ], 'prompt' => '&#x3C;string>', 'fast_mode' => true, 'aspect_ratio' => '&#x3C;string>', 'keep_original_sound' => true ]), CURLOPT_HTTPHEADER => [ "Authorization: &#x3C;authorization>", "Content-Type: &#x3C;content-type>" ],]);$response = curl_exec($curl);$err = curl_error($curl);curl_close($curl);if ($err) { echo "cURL Error #:" . $err;} else { echo $response;}
```

```
package mainimport (	"fmt"	"strings"	"net/http"	"io")func main() {	url := "https://api.novita.ai/v3/async/kling-o1-video-edit"	payload := strings.NewReader("{\n \"video\": \"&#x3C;string>\",\n \"images\": [\n \"&#x3C;string>\"\n ],\n \"prompt\": \"&#x3C;string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"&#x3C;string>\",\n \"keep_original_sound\": true\n}")	req, _ := http.NewRequest("POST", url, payload)	req.Header.Add("Content-Type", "&#x3C;content-type>")	req.Header.Add("Authorization", "&#x3C;authorization>")	res, _ := http.DefaultClient.Do(req)	defer res.Body.Close()	body, _ := io.ReadAll(res.Body)	fmt.Println(string(body))}
```

```
HttpResponse&#x3C;String> response = Unirest.post("https://api.novita.ai/v3/async/kling-o1-video-edit") .header("Content-Type", "&#x3C;content-type>") .header("Authorization", "&#x3C;authorization>") .body("{\n \"video\": \"&#x3C;string>\",\n \"images\": [\n \"&#x3C;string>\"\n ],\n \"prompt\": \"&#x3C;string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"&#x3C;string>\",\n \"keep_original_sound\": true\n}") .asString();
```

```
require 'uri'require 'net/http'url = URI("https://api.novita.ai/v3/async/kling-o1-video-edit")http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Content-Type"] = '&#x3C;content-type>'request["Authorization"] = '&#x3C;authorization>'request.body = "{\n \"video\": \"&#x3C;string>\",\n \"images\": [\n \"&#x3C;string>\"\n ],\n \"prompt\": \"&#x3C;string>\",\n \"fast_mode\": true,\n \"aspect_ratio\": \"&#x3C;string>\",\n \"keep_original_sound\": true\n}"response = http.request(request)puts response.read_body
```

200

```
{
"task_id": "&#x3C;string>"
}
```

Kling Omni Video O1 video editor supports conversational video editing through natural language commands. With simple text instructions such as “remove pedestrians” or “change day to dusk”, you can remove objects, replace backgrounds, modify styles, adjust weather/lighting, and transform scenes.

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-video)

video

string

required

The video URL.

[​](#param-images)

images

string[]

default:"[]"

Including reference images of the element, scene, style, etc. Max 4.Array length: 0 - 4

[​](#param-prompt)

prompt

string

required

The positive prompt for the generation.

[​](#param-fast-mode)

fast_mode

boolean

default:false

Whether to use fast mode

[​](#param-aspect-ratio)

aspect_ratio

string

The aspect ratio of the generated video.Optional values: `16:9`, `9:16`, `1:1`

[​](#param-keep-original-sound)

keep_original_sound

boolean

default:true

Select whether to keep the video original sound through the parameter.

##

[​](#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
