You have a video that works. Now you want it with someone else in it: your own creator, a customer, or a person who does not exist yet. The Hermoso API does that in one request. Send the video and the person, and the new person performs every move, expression and mouth shape of the original, on the same beats and cuts, in the same room and light. The original sound stays.
What does one call look like?
Send the video and who should be in it. With "dry_run": true nothing runs, and the answer is the exact price.
curl -sX POST https://app.hermoso.ai/v1/recasts \
-H "Authorization: Bearer hmk_..." \
-H 'content-type: application/json' \
-d '{
"video": "https://www.tiktok.com/@someone/video/7400000000000000000",
"person": { "describe": "a woman in her 30s, curly dark hair, denim jacket" },
"dry_run": true
}'
Send the same request without "dry_run": true and it starts. You get a job back right away, and the finished video when it is ready: minutes for a short clip, longer for a long one.
Who can you put in the video?
- Your saved creator, or one of the ready-made AI creators, by id.
- A photo of the person, by link.
- An AI person from your words. Describe them (age, hair, style, vibe) and Hermoso makes them first, then puts them in. They land in your Library, so you can use them again.
Want them to sound different too? Add a new voice with the same words and timing, or have them speak another language with the mouth matched to the new words. It is the same request and the same job.
Which videos work?
A TikTok, Reel, Facebook, X or YouTube link, a link to a video file, or a file you uploaded to Hermoso. One call covers up to 60 seconds, and you can pick a window with a start and an end.
What does it cost?
It depends on the video's length and on whether you add a new voice, so we never guess. A dry run gives you the exact price, step by step, before anything runs. The real call reserves that amount and settles at what the render really cost, never more. See pricing for what a credit is worth.
Can you swap an object instead of a person?
Yes. A second endpoint changes one thing in a clip from a plain instruction: "change only the mug to red", "swap the bottle for our product", "make it night". The motion, timing and framing stay. Add a picture of the real product or material and the change matches it.
curl -sX POST https://app.hermoso.ai/v1/edits \
-H "Authorization: Bearer hmk_..." \
-H 'content-type: application/json' \
-d '{ "video": "https://example.com/clip.mp4", "instruction": "change only the mug to red", "dry_run": true }'
Not sure how it will look? Ask for a preview of one still first. You see the change on a single frame, with the price of the full clip beside it, and the clip only runs when you say so.
Built for your backend
- Async. A real call answers right away with a job. Check the job, or give us a link and we send you the finished video.
- Safe to retry. Send the same idempotency key again and you get the same job back, never a second render.
- Plain refusals. When something cannot run, you hear why before anything is charged, with a code your code can branch on.
- One API key from the app, the same one the MCP server and the command line use.
What about real people?
A photo of a real person needs a paid plan, and sending one confirms you have their permission. An AI person from your words, or a ready-made AI creator, works on every plan. Requests that would put someone in a scene they should never be in are refused before anything runs.
Prefer to click instead of code?
The same swap is in the app, in swap a person in a video, and your AI agent can run it over MCP. All three run the same engine and cost the same.
Frequently asked questions
What is a motion transfer API?
It takes a video and a different person and returns the video with that person in it, doing exactly what the original person did: the same moves, expressions, timing and cuts. Hermoso's version also keeps the original sound and can give the new person a new voice or language.
How much does a recast cost?
It depends on the video's length and whether you add a new voice. Send the request with dry_run and you get the exact price before anything runs. The real call never charges more than that.
Can I use a photo of a real person?
Yes, on a paid plan, and only with that person's permission. Sending the photo confirms you have it. An AI person made from a description, or a ready-made AI creator, works on every plan.
How long does it take?
It depends on the length: minutes for a short clip, longer for a long one or one with a new voice. The call answers right away with a job, and you check it or get the finished video sent to a link you choose.
Can I change an object instead of a person?
Yes. The edits endpoint changes one thing in a clip from a plain instruction, like changing a mug's colour or swapping a bottle for your product, and keeps everything else as it was.
Create an API key in the app and send your first dry run. Start free, 250+ earnable free credits, no card.
Start free → See pricing