Kling 3.0 Omni Pro Video Edit API

Modify an existing video with natural-language instructions using Kling 3.0 Omni Pro.

Video to VideoVideo Editing

Provider

Kling

Billing

Provider cost

ScalingTensor price

≈ $0.84 per clip, reference price

Playground

Try Kling 3.0 Omni Pro Video Edit

Edit the params, add your API key and run the model here. The result plays on this page when the job completes.

Input

Used for this request only and never stored. Get a key

Running a request charges your wallet: ≈ $0.84 per clip, reference price.

Output

preview

Request summary

Endpoint
POST /api/media/generate
Model ID
kwaivgi/kling-video/3.0/omni/pro/video-to-video/edit
video
https://example.com/your-video.mp4
images
["https://example.com/your-image.png"]
prompt
Replace the character in the video with @Element1, maintaining the same movements and camera angles. Transform the landscape into @Image1
elements
[{"frontal_image_url":"https://example.com/your-image.png","reference_image_urls":["https://example.com/your-image.png","https://example.com/your-image.png"]}]
keep_audio
false

Need chat models, job lookups or the raw response? Open the full playground.

Pricing

Kling 3.0 Omni Pro Video Edit API pricing

Prices come from the live catalog. There is no subscription; each request is charged to your prepaid wallet.

ScalingTensor price

Provider cost

Live catalog price

≈ $0.84

per clip, reference price

Billed at the provider's actual cost; a typical clip is listed at $0.84. Your usage log shows the exact charge.

Compare all model prices

Shared balance

Add credits

Top up

One wallet and one API key for every model in the catalog. Top-ups start at $10 and are paid through Stripe.

Parameters

Input parameters

These parameters belong inside the request body's params object.

Input parameters
nametyperequireddescription
videostringRequiredReference video URL. Only .mp4/.mov formats supported, 3-10 seconds duration, 720-2160px resolution, max 200MB. Max file size: 200.0MB, Min width: 720px, Min height: 720px, Max width: 2160px, Max height: 2160px, Min duration: 3.0s, Max duration: 10.05s, Min FPS: 24.0, Max FPS: 60.0, Timeout: 30.0s
promptstringRequiredUse @Element1, @Element2 to reference elements and @Image1, @Image2 to reference images in order. · Max length: 2500
imagesstring[]OptionalReference images for style/appearance. Reference in prompt as @Image1, @Image2, etc. Maximum 4 total (elements + reference images) when using video.
elementsobject[]OptionalElements (characters/objects) to include. Reference in prompt as @Element1, @Element2, etc. Maximum 4 total (elements + reference images) when using video.
keep_audiobooleanOptionalWhether to keep the original audio from the video. · Default: false

Output fields

Output fields
nametypedescription
idstringUnique identifier for the generation task
statusstringTask status: pending, running, completed, failed, timeout
modelstringModel used for the generation
outputsarrayArray of output items
outputs[].urlstringURL of the generated artifact
outputs[].content_typestringMIME type (e.g. image/png, video/mp4)
errorobject | nullError details if failed, null on success
error.typestringMachine-readable error type code
error.messagestringHuman-readable error description

API

Call Kling 3.0 Omni Pro Video Edit from your code

Create a key in the console and call the API from your server using the apiKey header. Save data.jobId and poll GET /api/media/result?jobId=... with the same key; a code of 0 means success.

POST /api/media/generate
curl --request POST 'https://restapi.scalingtensor.com/api/media/generate' \
  --header 'apiKey: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "model": "kwaivgi/kling-video/3.0/omni/pro/video-to-video/edit",
  "params": {
    "video": "https://example.com/your-video.mp4",
    "images": [
      "https://example.com/your-image.png"
    ],
    "prompt": "Replace the character in the video with @Element1, maintaining the same movements and camera angles. Transform the landscape into @Image1",
    "elements": [
      {
        "frontal_image_url": "https://example.com/your-image.png",
        "reference_image_urls": [
          "https://example.com/your-image.png",
          "https://example.com/your-image.png"
        ]
      }
    ],
    "keep_audio": false
  }
}'
const response = await fetch("https://restapi.scalingtensor.com/api/media/generate", {
  method: "POST",
  headers: {
    apiKey: process.env.SCALINGTENSOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "kwaivgi/kling-video/3.0/omni/pro/video-to-video/edit",
    "params": {
      "video": "https://example.com/your-video.mp4",
      "images": [
        "https://example.com/your-image.png"
      ],
      "prompt": "Replace the character in the video with @Element1, maintaining the same movements and camera angles. Transform the landscape into @Image1",
      "elements": [
        {
          "frontal_image_url": "https://example.com/your-image.png",
          "reference_image_urls": [
            "https://example.com/your-image.png",
            "https://example.com/your-image.png"
          ]
        }
      ],
      "keep_audio": false
    }
  }),
});

const result = await response.json();
if (!response.ok || result.code !== 0) {
  throw new Error(result.msg || `Request failed: ${response.status}`);
}
console.log(result.data); // Save data.jobId to query /api/media/result
import os
import requests

payload = {
    "model": "kwaivgi/kling-video/3.0/omni/pro/video-to-video/edit",
    "params": {
        "video": "https://example.com/your-video.mp4",
        "images": [
            "https://example.com/your-image.png",
        ],
        "prompt": "Replace the character in the video with @Element1, maintaining the same movements and camera angles. Transform the landscape into @Image1",
        "elements": [
            {
                "frontal_image_url": "https://example.com/your-image.png",
                "reference_image_urls": [
                    "https://example.com/your-image.png",
                    "https://example.com/your-image.png",
                ],
            },
        ],
        "keep_audio": False,
    },
}

response = requests.post(
    "https://restapi.scalingtensor.com/api/media/generate",
    headers={"apiKey": os.environ["SCALINGTENSOR_API_KEY"]},
    json=payload,
    timeout=60,
)
result = response.json()
if result["code"] != 0:
    raise RuntimeError(result["msg"])
print(result["data"])  # Save data["jobId"] to query /api/media/result

API documentation · This page as Markdown · Markdown API reference

Related models

Kling 3.0 Omni Pro Video Edit API FAQ

How much does the Kling 3.0 Omni Pro Video Edit API cost?

Kling 3.0 Omni Pro Video Edit is billed at the provider's actual cost for each job (per clip, reference price). The charge is deducted from your prepaid ScalingTensor wallet.

How do I call the Kling 3.0 Omni Pro Video Edit API?

Send POST /api/media/generate with "model": "kwaivgi/kling-video/3.0/omni/pro/video-to-video/edit" and the parameters in a params object, using your apiKey header. The call returns a jobId. Poll GET /api/media/result?jobId=... until the status is completed, then read the output URL from the result.

Which parameters does Kling 3.0 Omni Pro Video Edit accept?

Required: video and prompt. Optional: images, elements and keep_audio. The parameter table on this page describes each one.

Do I need a Kling account to use Kling 3.0 Omni Pro Video Edit?

No. You call Kling 3.0 Omni Pro Video Edit with your ScalingTensor API key and pay from your ScalingTensor wallet. The same key works for every other model in the catalog.