Introducing Song Creator Pro — create music with AI, locally on your device. Try it now →

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.

POST/api/v1/talking-head/videos
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
See the product page

Want avatar videos from a cloud API instead?

Endpoints

Avatar endpoints

MethodPathWhat it does
POST/api/v1/talking-head/photo-checkCheck that a photo shows one clear face
POST/api/v1/talking-head/videosStart an avatar video
GET/api/v1/talking-head/videos/{video_id}/statusCheck progress
POST/api/v1/talking-head/videos/{video_id}/exportExport, 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.

Which features do you need?

We'll only email you about the API. Unsubscribe anytime.

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.