Video · Video to video
Kling v3 Standard Video to Video API
Kling v3 Standard. Video-to-video guided by a reference, billed per second.
- Price
- From $0.63 per run $0.126/s
- Typical time
- ~2 min
- Model id
kling_v3_standard_v2v_reference
Kling v3 Standard Video to Video runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.
curl -X POST https://api.varg.ai/v2/tools/video/call \
-H "Authorization: Bearer $VARG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10
}'Kling v3 Standard Video to Video pricing
From $0.63 per run. Prices are in US dollars and are the provider's own, with no markup. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.
- fal $0.126/s
fal:kling_v3_standard_v2v_referenceVideo to video
- Per second
- $0.126/s
- Minimum charge
- $0.63
- Most one request can cost
- $1.89
- Typical time
- ~2 min
Kling v3 Standard Video to Video inputs
The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/video?model=kling_v3_standard_v2v_reference
| Field | What it does |
|---|---|
model string required | kling_v3_standard_v2v_reference picks a route automatically. |
prompt string | — |
files array of { url } | — |
aspect_ratio string | Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto |
resolution string | Quality tier. Not supported by this model — ignored if sent. Allowed 480p | 720p | 1080p | 4k |
audio boolean | Native audio track request. Not supported by this model — ignored if sent. |
duration integer | Length in seconds. Supported by this model's routes: fal: 3-15. A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. Allowed 3–15 |
Provider options
Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.
provider_options.fal
| Field | What it does |
|---|---|
prompt string | — |
image_urls array of URL strings | — |
duration string | Allowed 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
video_url string (URL) | — |
keep_audio boolean | — |
aspect_ratio string | Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto |
Call the Kling v3 Standard Video to Video API
POST https://api.varg.ai/v2/tools/video/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.
1. Send the request
curl -X POST https://api.varg.ai/v2/tools/video/call \
-H "Authorization: Bearer $VARG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10
}'JavaScript
const headers = {
Authorization: `Bearer ${process.env.VARG_API_KEY}`,
'Content-Type': 'application/json',
}
const res = await fetch('https://api.varg.ai/v2/tools/video/call', {
method: 'POST',
headers,
body: JSON.stringify({
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10
}),
})
const job = await res.json() // { id: "job_…", status: "queued" }Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}
job = requests.post(
"https://api.varg.ai/v2/tools/video/call",
headers=headers,
json={
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10
},
).json() # {"id": "job_…", "status": "queued"}2. Get the result
Poll the job until its status is completed, failed or cancelled; Kling v3 Standard Video to Video typically takes about 2 min. The result is at output.outputs[0].url.
curl https://api.varg.ai/v2/jobs/$JOB_ID \
-H "Authorization: Bearer $VARG_API_KEY"
# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].urlJavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
await new Promise((resolve) => setTimeout(resolve, 3000))
current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)Python
import time
while job["status"] not in ("completed", "failed", "cancelled"):
time.sleep(3)
job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()
print(job["output"]["outputs"][0]["url"])Or take a webhook instead of polling
Add options.webhook_url and varg POSTs the finished job to it.
{
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10,
"options": {
"webhook_url": "https://your-app.com/varg-webhook"
}
}From Claude, ChatGPT or Cursor (MCP)
The varg MCP server, https://mcp.varg.ai/mcp, runs Kling v3 Standard Video to Video with call_tool. Sign in with varg, no API key to paste. How to connect it
{
"tool": "video",
"input": {
"model": "kling_v3_standard_v2v_reference",
"prompt": "replace all cats with dogs, maintain the same motion, camera angles, lighting, and scene composition, dogs instead of cats throughout",
"files": [
{
"url": "https://s3.varg.ai/files/194b94d0-58ff-4e8b-91de-4f1959d04013/file_0aca4aab4c74.mp4"
}
],
"aspect_ratio": "16:9",
"duration": 10
},
"wait": true
}Kling v3 Standard Video to Video API: questions
- How much does Kling v3 Standard Video to Video cost on varg?
- Kling v3 Standard Video to Video costs from $0.63 per run on varg ($0.126/s on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
- How do I call the Kling v3 Standard Video to Video API?
- Send POST https://api.varg.ai/v2/tools/video/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "kling_v3_standard_v2v_reference". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
- Can I use Kling v3 Standard Video to Video from Claude, ChatGPT or Cursor?
- Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs Kling v3 Standard Video to Video with call_tool, passing tool "video" and "model": "kling_v3_standard_v2v_reference".
- How long does a Kling v3 Standard Video to Video request take?
- Typically about 2 min on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.
For AI agents: this page as Markdown is varg.ai/models/kling_v3_standard_v2v_reference.md, and every model is listed in varg.ai/models/llms.txt.