Avatar API
Talking avatar API: lip-synced video from one photo
Send a headshot and the words to say, in any of your voices, and get back a video of that person saying them.
Available now as a local API in the desktop app. Cloud API coming soon.
printf '{"headshot_base64": "%s", "source": "speech", "text": "%s", "voice_source": "library", "voice_id": "VOICE_ID", "consent": true}' \ "$(base64 < headshot.jpg | tr -d '\n')" \ "Hi, I am Maya. Here are this week's three updates." > body.json curl -X POST "http://127.0.0.1:8100/api/v1/talking-head/videos" \ -H "Content-Type: application/json" \ -d @body.json curl "http://127.0.0.1:8100/api/v1/talking-head/videos/VIDEO_ID/status"What developers build with it
Each video runs up to 20 seconds, lip-synced to the speech. Captions and trims can be set through the API before export.
- Short weekly update videos read by the same presenter
- Personalized video messages generated from a template
- Spoken explainers in another language from the same photo
Want avatar videos from a cloud API instead?
Endpoints
Avatar endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/talking-head/photo-check | Check that a photo shows one clear face |
| POST | /api/v1/talking-head/videos | Start an avatar video |
| GET | /api/v1/talking-head/videos/{video_id}/status | Check progress |
| POST | /api/v1/talking-head/videos/{video_id}/export | Export, with captions if they are on |
Cloud API
Join the cloud API waitlist
We're building a cloud API. Pick the features you need and roughly how much you'd use, and your answers decide which ones come first.
FAQ
Common Questions
One headshot with exactly one person, facing the camera, shoulders up, in good light and without sunglasses. Any aspect ratio works. Run /api/v1/talking-head/photo-check first to confirm it.
Up to 20 seconds per video. The text field accepts up to 900 characters, so keep each line short enough to fit that length.
Any of your voices: a preset speaker, a cloned voice or a designed voice. Set voice_source to tts, library or design and pass the voice_id.
Yes. Set a caption style with PUT /api/v1/talking-head/videos/{video_id}/subtitle-params, then export. Captions are burned into the video when they are on.
Explore
Related APIs
Text to speech
Turn text into speech with preset speakers in 10 languages.
Voice cloning
Clone a voice from a short clip and speak new text with it.
Voice design
Describe a voice in words and generate speech in it.
Speech to text
Transcribe audio with word timestamps and speaker labels.
Dubbing
Dub videos into 21 languages, keeping each speaker's voice.
Subtitles
Generate SRT caption files with word-level timing.
Clips
Cut long videos into short, captioned clips.
AI Cut
Remove silences, filler words and bad takes, then render.
Voice changer
Re-voice a recording while keeping its timing and emotion.
Audiobooks
Narrate a manuscript with a voice for every character.