Capabilities
Voices
Every agent speaks with an ElevenLabs voice; Amazon Polly stands in automatically when TTS is unavailable so calls never go silent.
List the curated set
curl https://klaw-voice.netlify.app/api/elevenlabs/voices -H "Authorization: Bearer $KLAW_KEY"
Returns ~15 curated premade voices ({id, name, gender, accent, description, ...}) picked for phone conversations. If you've connected your own ElevenLabs key, your cloned voices are included too.
Preview before you pick
curl -X POST https://klaw-voice.netlify.app/api/elevenlabs/preview \
-H "Authorization: Bearer $KLAW_KEY" -H "Content-Type: application/json" \
-d '{"voice_id": "EXAVITQu4vr4xnSDxMaL"}' --output preview.mp3
Streams a short receptionist line as audio/mpeg (rate-capped 40/min).
Set the voice
At creation (voice_id on POST /api/agents/quickstart) or any time after:
curl -X PATCH https://klaw-voice.netlify.app/api/agents/$AGENT_ID \
-H "Authorization: Bearer $KLAW_KEY" -H "Content-Type: application/json" \
-d '{"elevenlabs_voice_id": "EXAVITQu4vr4xnSDxMaL"}'
Cloning and BYO keys
Voice cloning is available at POST /api/voice-clone, and you can bring your own ElevenLabs API key in dashboard settings — voices then bill to your account and your clones appear in the list. Language behavior (including multilingual mirroring) is set per agent via its language field.