List voices
GET https://api.iodine.dev/v1/voices
Authorization: Bearer io_live_...{
"voices": [
{
"id": "vc_4fK9zQ2mXp7LrT1a",
"model": "v2",
"name": "Narrator (Sam)",
"custom": true,
"durationSeconds": 18.4,
"createdAt": "2026-11-09T12:00:00Z"
},
{ "id": "mia", "model": "v2", "languages": ["en", "es", "fr", "de", "ja", "zh"] },
{ "id": "katie", "model": "v1" }
]
}Your account's cloned voices come first, then the shared voices. Each entry says which model speaks it, and v2 voices list the languages they speak. Use the id as voice in a request. Voices are added over time, so read the list rather than hard-coding it; the console's playground lets you hear every voice.
Voices
| Voice | Model | Character |
|---|---|---|
ava | v1 | Warm, natural and expressive, for conversational agents. |
katie | v1 | Clear and reassuring, for support lines and service. |
sophie | v1 | Bright and energetic, for games and interactive apps. |
mia | v2 | Soft, calm and close, for wellness and coaching. |
chloe | v2 | Quick, chatty and fun, for social apps and entertainment. |
zander | v2 | Low, warm and expressive, for audiobooks and narration. |
ethan | v2 | Gentle and steady, for healthcare and onboarding. |
v2 voices speak English, Spanish, French, German, Japanese and Chinese, and take emotion and delivery cues.
Cloning
Clone a voice from a 3 to 30 second recording of one person speaking. Cloned voices are spoken by v2, are private to your account (nobody else can see or use them) and are never used for training.
curl https://api.iodine.dev/v1/voices \
-H "Authorization: Bearer $IODINE_API_KEY" \
-F name="Narrator (Sam)" \
-F file=@sam.wav \
-F consent=trueMultipart form fields:
| Field | ||
|---|---|---|
file | required | The recording: WAV, MP3, FLAC or OGG, 3 to 30 seconds, up to 20 MB. 10 to 30 seconds of clear speech with no music or other voices works best. |
name | required | 1 to 64 characters, for your own reference. |
consent | required | true. You confirm that the speaker has given permission for their voice to be cloned. We record which key confirmed it. |
transcript | optional | What's said in the recording, up to 2,000 characters. Left out, we transcribe it for you. An accurate transcript gives a closer clone. |
The response is 201 Created:
{
"voice": {
"id": "vc_4fK9zQ2mXp7LrT1a",
"model": "v2",
"name": "Narrator (Sam)",
"custom": true,
"durationSeconds": 18.4,
"createdAt": "2026-11-09T12:00:00Z",
"transcript": "Hi, I'm Sam, and this is how I sound when I read.",
"transcriptSource": "auto"
}
}transcriptSource is provided, auto (we transcribed it) or none (no transcript could be made; the voice still works, just less closely). Use the new id straight away:
curl https://api.iodine.dev/v1/tts \
-H "Authorization: Bearer $IODINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Chapter one.", "voice": "vc_4fK9zQ2mXp7LrT1a"}' \
--output chapter-1.wavAn account can keep up to 50 cloned voices.
Only clone voices you have permission to use
Clone a voice only if you are the speaker, or the speaker has given you permission to clone it and to use it as you intend; you must be able to show that permission if we ask. Don't use any voice to impersonate a real person without their consent, to mislead anyone about who is speaking, or to commit fraud. We may delete a cloned voice, and suspend the account that made it, if it breaks these rules. See the Terms.
Delete a cloned voice
DELETE https://api.iodine.dev/v1/voices/vc_4fK9zQ2mXp7LrT1a
Authorization: Bearer io_live_...Returns 204 No Content. The recording is deleted and the id stops working at once.