Kling 3.0 Omni Pro Video Reference API

Use a source video plus image references to generate a guided video variation with Kling 3.0 Omni Pro.

Video to Video

Provider

Kling

Billing

Provider cost

ScalingTensor price

≈ $0.84 per clip, reference price

Playground

Try Kling 3.0 Omni Pro Video Reference

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/reference
video
https://example.com/your-video.mp4
prompt
Based on @Video1, generate the next shot. keep the style of the video
duration
5
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 Reference 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.

Capabilities

What you can do with Kling 3.0 Omni Pro Video Reference

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.
durationintegerOptionalVideo duration in seconds. · Options: 3, 4, 5, 6, 7, 8, 9, 10 · Default: 5
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
aspect_ratiostringOptionalThe aspect ratio of the generated image. · Options: 16:9, 9:16, 1:1

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 Reference 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/reference",
  "params": {
    "video": "https://example.com/your-video.mp4",
    "prompt": "Based on @Video1, generate the next shot. keep the style of the video",
    "duration": 5,
    "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/reference",
    "params": {
      "video": "https://example.com/your-video.mp4",
      "prompt": "Based on @Video1, generate the next shot. keep the style of the video",
      "duration": 5,
      "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/reference",
    "params": {
        "video": "https://example.com/your-video.mp4",
        "prompt": "Based on @Video1, generate the next shot. keep the style of the video",
        "duration": 5,
        "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 Reference API FAQ

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

Kling 3.0 Omni Pro Video Reference 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 Reference API?

Send POST /api/media/generate with "model": "kwaivgi/kling-video/3.0/omni/pro/video-to-video/reference" 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 Reference accept?

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

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

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