Heart
English (US)Female- voice_id
puppetry-af_heart- language_code
en- preview_url
/api/voices/puppetry-preview?voice=af_heart&language=en
Machine-readable capabilities and API integration guide
Studio checkout returns you to API key settings after payment.
Provide a portrait image + text script → get a talking head video with AI-generated speech
Provide a portrait image + audio file → get a lip-synced talking head video
Provide a portrait image + driving video → transfer motion to the portrait
65+ languages including Arabic, Hindi, Spanish, French, Japanese, Korean, and more
| Resource | URL | Format |
|---|---|---|
| OpenAPI Spec | /openapi.json | OpenAPI 3.1 |
| AI Plugin Manifest | /.well-known/ai-plugin.json | JSON manifest for voice, TTS, and hosted audio uploads |
| LLMs.txt | /llms.txt | Plain text |
| LLMs Full | /llms-full.txt | Plain text |
| MCP server setup | #mcp-server-setup | Agent tool config |
| Robots.txt | /robots.txt | Plain text |
Agents can call Puppetry through the official MCP server. It uses the same Studio API key and quota as the hosted Developer API beta.
{
"mcpServers": {
"puppetry": {
"command": "npx",
"args": ["@puppetry/mcp-server"],
"env": {
"PUPPETRY_API_KEY": "YOUR_API_KEY"
}
}
}
}Create the key at API key settings, then paste it into PUPPETRY_API_KEY. The server returns clear authentication errors for bad keys and upstream validation outages.
Studio includes a Developer API beta for Puppetry voices, hosted audio uploads, and signed asset URLs. The Puppetry Voice API uses Puppetry voices only and does not include ElevenLabs or OpenAI voices. Voice list responses include preview_url audio links for every Puppetry API voice.
Send users to the Studio checkout URL when they ask to enable Puppetry Voice API access. The URL preserves the current Studio beta promo and the agent return context.
https://www.puppetry.com/pricing?source=developer_api&utm_source=site&utm_medium=developer_api_checkout&utm_campaign=developer_api_beta&plan=studio&interval=yearly&autoCheckout=true&promo=PUPPETRY2026&ref=agent-voice-apiSend signed-in users to API Keys to create their key and copy integration examples.
https://www.puppetry.com/studio/settings/api-keys?intent=voice-api&source=developer_api&utm_source=studio&utm_medium=api_key_settings&utm_campaign=developer_api_activation&cta=api-keys-settingsUse the signed upload URL endpoint for user-owned audio files before creating API workflows.
POST /api/v1/uploads/audio-urlBody fields: mime_type and content_length.
Puppetry voices
These playable previews use the same preview_url values returned by GET /api/v1/voices/puppetry, with a localized sample line for each language.
Open the full 45-voice catalogList voices
GET /api/v1/voices/puppetryResponse is object: "list" with data[] voice objects.
Voice object
{
"id": "puppetry-af_heart",
"object": "voice",
"name": "Heart",
"provider": "puppetry",
"language": "English",
"language_code": "en",
"gender": "Female",
"preview_url": "/api/voices/puppetry-preview?voice=af_heart&language=en"
}Generate speech
POST /api/v1/tts/puppetry{
"voice_id": "puppetry-af_heart",
"text": "This is a free voice preview in Puppetry.",
"speed": 1
}Showing 6 recommended starters
puppetry-af_hearten/api/voices/puppetry-preview?voice=af_heart&language=enpuppetry-bf_emmaen-gb/api/voices/puppetry-preview?voice=bf_emma&language=en-gbpuppetry-ef_doraes/api/voices/puppetry-preview?voice=ef_dora&language=espuppetry-if_sarait/api/voices/puppetry-preview?voice=if_sara&language=itpuppetry-zf_xiaobeizh/api/voices/puppetry-preview?voice=zf_xiaobei&language=zhpuppetry-ff_siwisfr/api/voices/puppetry-preview?voice=ff_siwis&language=fr# 1. List public Puppetry voices (GET /api/v1/voices/puppetry)
curl https://www.puppetry.com/api/v1/voices/puppetry \
-H "Authorization: Bearer YOUR_API_KEY"
# Response item: { "id": "puppetry-af_heart", "name": "Heart", "language_code": "en", "preview_url": "/api/voices/puppetry-preview?voice=af_heart&language=en" }
# 2. Generate speech with a Puppetry voice (POST /api/v1/tts/puppetry)
curl -X POST https://www.puppetry.com/api/v1/tts/puppetry \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_id": "puppetry-af_heart",
"text": "Hello! Welcome to my channel.",
"speed": 1
}'
# Response: { "audio_url": "https://...", "usage": { "voice_characters": { ... } } }
AUDIO_FILE="./audio.mp3"
CONTENT_LENGTH=$(wc -c < "$AUDIO_FILE" | tr -d ' ')
# 3. Create a hosted upload URL for existing audio (POST /api/v1/uploads/audio-url)
UPLOAD_BODY=$(node -e "console.log(JSON.stringify({mime_type: 'audio/mpeg', content_length: Number(process.argv[1])}))" "$CONTENT_LENGTH")
UPLOAD_JSON=$(curl -sS -X POST https://www.puppetry.com/api/v1/uploads/audio-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d "$UPLOAD_BODY")
UPLOAD_URL=$(node -e "const r=JSON.parse(process.argv[1]); console.log(r.upload_url)" "$UPLOAD_JSON")
READ_URL=$(node -e "const r=JSON.parse(process.argv[1]); console.log(r.read_url)" "$UPLOAD_JSON")
curl -sS -X PUT "$UPLOAD_URL" \
-H "Content-Type: audio/mpeg" \
-H "Content-Length: $CONTENT_LENGTH" \
--upload-file "$AUDIO_FILE"
printf "\nSigned read URL:\n%s\n" "$READ_URL"Puppetry is an AI video creation platform that turns any photo into a talking head video. Upload a portrait, type a script or upload audio, and get a realistic lip-synced video in minutes.
Plans start at $3/month (Starter). Creator is $15/month with 100 videos and all features. Studio is $30/month with voice cloning, priority rendering, and 300 videos/month.
Yes. You can upload any audio file up to 5 minutes, or clone your voice with just 30 seconds of sample audio.
Puppetry supports 65+ language codes including Arabic, Hindi, Spanish, French, Japanese, Korean, Mandarin, and many more. We offer 500+ AI voices across these languages.
Yes, all paid plans (Starter, Creator, Studio) include full commercial licensing rights.
Yes. Studio includes the Developer API beta for Puppetry Voice API access, hosted audio uploads, signed asset URLs, and browser-readable rate limits.
Most videos render in under 10 minutes depending on length and complexity.
Yes. Caption Studio provides automatic speech-to-text transcription, multiple caption styles, word-level highlighting, and exports with burned-in captions or SRT/VTT files.
Free tier includes limited video generations. Paid plans offer higher quotas and no watermarks. Studio includes the Developer API beta for Puppetry Voice API and hosted audio uploads. See pricing for details.
For enterprise API access or custom integrations, contact support@puppetry.com