Guide

Video editing API: change a clip with a prompt, priced per second

A video editing API takes a clip you already have and changes it: a new style, a new product in the shot, your own people in the scene, a new voice the lips follow, or a few more seconds at the end. Revana runs these edits on Seedance, Kling, Wan and its own Nemesis models through one API key, priced per second. Here is which model does which edit, what a 10 second edit costs, and the request.

What you can do to a clip, and which model does it

Each edit is a POST /v1/generations request with your clip as a link. The price is the lowest each model lists, per second:

AI video edits and the models that do them
EditWhat changesModèlesFrom, per second
RestyleThe look, the weather, the light or the setting; the motion staysWan 3.0, Wan 2.7 Video Edit, HappyHorse 1.0, Seedance 2.5, Kling 4.0, Kling 3.0 Omni$0.04
RestageThe same moves, timing and camera, played by your own people, products and placesNemesis, Nemesis Lite$0.06
SwapOne person or object replaced with the one in your picturesGenjutsu Object Swap$0.21
Motion transferThe person in your picture copies every move in the clipKling 2.6 Motion Control, Kling 3.0 Motion Control, Genjutsu Motion Transfer$0.08
Lip syncThe mouth follows a new voice trackByteDance Lip Sync$0.05
ExtendNew seconds after the last framePixVerse V6$0.02

The request: task video_edit

Put the clip in input.video_url, say what to change in input.prompt, and set task to video_edit. An edit keeps the clip’s length, so leave duration out:

cURL
export REVANA_API_KEY="sr_live_..."

# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)

# 1. Submit the edit (returns 202 with the generation id). max_cost_usd is your cap: the most it may cost.
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
    "model": "wan-2.7-videoedit",
    "task": "video_edit",
    "input": {
      "video_url": "https://example.com/clip.mp4",
      "prompt": "Make it a snowy night. Keep the people and the camera move as they are.",
      "resolution": "720p"
    },
    "max_cost_usd": 1
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed".
#    A failed job is free; make a new KEY before you submit it again.
curl https://api.revana.si/v1/generations/gen_01JC4M2R8D \
  -H "Authorization: Bearer $REVANA_API_KEY"

Wan 2.7 Video Edit takes clips of 2 to 10 seconds; a 10 second clip at 720p costs $0.90. A model that cannot do the task you name answers 422 invalid_input with the models that can, and nothing is charged. To lengthen a clip instead, send task: "video_extend" to PixVerse V6 with a duration for the new part.

What a 10 second edit costs

Edits are billed per second of the clip you send. Nemesis and Nemesis Lite bill each second of the clip in plus each second of video out, so a 10 second clip is 20 billed seconds:

Cost of editing a 10 second clip on each model
ModèleEditRéglage10 second clip
ByteDance Lip SyncLip sync10 s of voice$0.50
Wan 3.0Restyle720p$0.70
Kling 2.6 Motion ControlMotion transfer720p$0.80
Wan 2.7 Video EditRestyle720p$0.90
Kling 3.0 Motion ControlMotion transfer720p$1.30
HappyHorse 1.0Restyle720p$1.70
Nemesis LiteRestage720p, 20 billed seconds$1.80
NemesisRestage720p, 20 billed seconds$3.40
Genjutsu Object SwapSwap720p$4.60

Seedance 2.5, Kling 4.0 and Kling 3.0 Omni price an edit at their input-video rate: Seedance 2.5 is $0.15 a second at 720p, Kling 4.0 $0.08 and Kling 3.0 Omni $0.13. Quote the exact request before you send it (below). Failed edits are never charged.

Price an edit before you send it

POST the same body to /v1/generations/quote. It measures the clip and returns quoted_usd, what would be held, the expected wait and whether your balance covers it, without starting anything. Then submit with the quote as max_cost_usd, so the edit can never cost more:

Python
import os
import time
import uuid

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
BODY = {
    "model": "seedance-2.5",
    "task": "video_edit",
    "input": {
        "video_url": "https://example.com/clip.mp4",
        "prompt": "Swap the red sneakers for white leather boots. Keep everything else.",
        "resolution": "720p",
    },
}

# 1. Quote it: free, and it starts nothing.
quote = requests.post(f"{API}/generations/quote", headers=HEADERS, json=BODY).json()
print("quoted", quote["quoted_usd"], "enough credit:", quote["enough_credit"])

# 2. Submit with the quote as your cap. One Idempotency-Key per job, made once:
#    resend with the same key after a timeout and you get the same job back.
key = str(uuid.uuid4())
resp = requests.post(f"{API}/generations", headers={**HEADERS, "Idempotency-Key": key},
                     json={**BODY, "max_cost_usd": quote["quoted_usd"]})
resp.raise_for_status()
gen_id = resp.json()["id"]

job = requests.get(f"{API}/generations/{gen_id}", headers=HEADERS).json()
while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{gen_id}", headers=HEADERS).json()
if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("failed (free):", job["error"])

Restage a clip with your own cast: Nemesis

Nemesis keeps a clip’s movement, timing and camera and plays it with up to 8 reference pictures in image_urls. Give each picture a role in roles: person, product, location or look. Set sound to original to keep the clip’s audio or none to drop it. Nemesis takes clips of 4 to 30 seconds at $0.17 a second at 720p; Nemesis Lite takes 2 to 15 seconds at $0.09 a second at 720p. The cap below covers a 10 second clip (20 billed seconds); quote a longer clip first.

JSON
{
  "model": "nemesis",
  "input": {
    "video_url": "https://example.com/ad.mp4",
    "image_urls": ["https://example.com/founder.jpg", "https://example.com/bottle.png"],
    "roles": ["person", "product"],
    "sound": "original",
    "resolution": "720p"
  },
  "max_cost_usd": 4
}

For a talking person made from one photo instead, see the AI avatar API guide; for motion transfer, the Kling Motion Control API guide.

AI editing vs a render API

Template and timeline render APIs cut, trim, caption and stitch clips that you describe in JSON. They do not change what is in the picture. An AI video editing API changes the pixels: the weather, the product, the person. Many apps use both: make or edit the shots here, then put them together with a render API or ffmpeg.

See every video model with its live price on the models page, top up on the pricing page, read the request reference in the docs, or get an API key.

Questions fréquentes

What is a video editing API?

An API that takes a clip and returns a changed one. AI video editing APIs change what is in the picture from a prompt: the style, the scene, the people or the products. Timeline APIs cut and stitch clips without changing them.

How much does AI video editing cost?

A restyle starts at $0.04 a second with Wan 3.0 at 480p, in November 2026. A 10 second restyle at 720p costs $0.70 on Wan 3.0 and $0.90 on Wan 2.7 Video Edit.

How long can the clip be?

Wan 2.7 Video Edit takes 2 to 10 seconds, Nemesis Lite 2 to 15, and Seedance 2.5 and Nemesis 4 to 30. Each model page lists its range.

Can I keep the original sound?

On Nemesis and Nemesis Lite, set sound to original to keep the clip's audio or none to drop it. Nemesis keeps it by default; Nemesis Lite is silent by default.

Can I see the price before I edit?

Yes. POST the same body to /v1/generations/quote. It returns the price and what would be held, starts nothing, and is free.

Am I charged for a failed edit?

No. The price is held when you submit and released if the job fails, so a failed edit costs nothing.

Try it first: run Wan 3.0 free or PixVerse V6 free in your browser. Your first request is free once you save a card at sign-up (saving it charges nothing).

Edit video with a prompt on one key

One API key for Seedance, Kling, Wan, Nemesis and lip sync. Prepaid credit from $10, charged only for videos that are delivered.