Make any face speak
Send a portrait and an audio file and get a lip synced video back. Priced by the second of audio, so a short clip costs cents.
InfiniteTalk, InfiniteTalk Fast
Browse 2 models

Talking video, image and voice from one endpoint. You pay per run.
API keys come with the Scale and Ultra plans
curl https://api.percify.io/v3/playground/v1/run \
-H "Authorization: Bearer $PERCIFY_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"modelId": "infinitetalk-fast",
"input": {
"image": "https://example.com/portrait.jpg",
"audio": "https://example.com/voice.mp3"
}
}'
The models behind the Percify app, callable from your own code.
Send a portrait and an audio file and get a lip synced video back. Priced by the second of audio, so a short clip costs cents.
InfiniteTalk, InfiniteTalk Fast
Browse 2 modelsThe current video models behind one request shape. Switch from a fast draft model to a cinematic one by changing one string.
Veo 3.1, Sora 2, Kling V3, Seedance 2.5, Wan 3.0
Browse 68 modelsText to image, reference edits, inpainting and head swaps.
GPT Image 2, Nano Banana Pro, Flux 2, Midjourney
Browse 41 models
from $0.05 a runText to speech, voice cloning from a short sample, songs and sound effects.
ElevenLabs V3, Zonos 2, Lyria 3 Pro
Browse 17 models
from $1.80 a runTranslate a finished video into another language, voice and lips included.
ElevenLabs Dubbing, HeyGen Video Translate
Browse 2 modelsEach one opens a playground with the request already filled in.
See every use case
Balance, keys and every request in one place, in dollars.
Open the consoleThe estimate call prices your real input, length and resolution included, and charges nothing.
Give a key a monthly limit and an expiry date. At the limit it stops, and you are told at 80%.
A run is charged when it starts. If it fails or times out, the money returns to your balance by itself.
Long jobs, retries and bulk work are handled on our side.
{
"modelId": "veo-31-fast-t2v",
"input": { "prompt": "…" },
"webhook": "https://you.dev/hooks/percify"
}
# later, on your server
X-Percify-Signature: sha256 of timestamp.bodyPass a webhook URL and the finished job is posted to it, signed with HMAC SHA256. Or poll the generation and wait up to 55 seconds a call.
{
"modelId": "gpt-image-2",
"prompts": ["…", "…", "…"],
"budgetCredits": 400,
"concurrency": 5
}A batch runs up to 50 prompts on our servers, five at a time, and stops when it reaches the budget you set.
Authorization: Bearer pk_live_your_key
Idempotency-Key: order_8841_clip_2
# the same key twice returns the same job,
# and is charged onceSend an Idempotency-Key with a run. If your request is sent twice, you get the same job back and pay for it once.

One URL gives Claude, ChatGPT or Cursor the same models as tools.
{
"mcpServers": {
"percify": {
"url": "https://mcp.percify.io/mcp"
}
}
}130 models in the catalog. These are the ones developers start with.
See every model and priceDollar prices are the credit price at 200 credits for $5. Prices that start with "from" change with length or resolution, and the estimate call returns the exact figure. Full reference in the docs.
API keys come with the Scale and Ultra plans. Sign in to the console and create one. The key is shown once and stored hashed, so copy it when you make it.
Every model has a price in credits, and the estimate call returns the exact price of your input before you run it, free. Credits are sold in packs from 200 credits for $5, so one credit is $0.025. The dollar prices on this site use that rate.
A run is charged when it starts. If it fails or times out, the credits go back to your balance automatically.
Yes. A key can carry a monthly limit and an expiry date. At the limit the API answers 429 until the next month, and you are told at 80% and at 100%.
Each key can make 60 requests a minute, and an account can start 60 generations a minute.
Yes. The MCP server at https://mcp.percify.io/mcp works on every plan, including Free. The agent signs in with OAuth and its calls spend your credits.
Pass a webhook URL with a run and the result is posted to it once, signed with HMAC SHA256 in the X-Percify-Signature header. You can also poll the generation.