API reference / Voices
Voices
List and fetch voices in the ZeliSpeech shape, so an existing client can populate a picker unchanged. For voice selection, aliasing, and cloning, see the Voices capability.
List voices
Return the array of available voices (built-in plus any cloned custom-…
voices), each with the standard required fields (voice_id, name, …).
curl "https://voice.your-domain.com/v1/voices" -H "Authorization: Bearer sk-zeli-..."from zeli_tts import ZeliSpeech
client = ZeliSpeech(api_key="sk-zeli-...", base_url="https://voice.your-domain.com")
for v in client.voices.list():
print(v.id, v.label, v.custom)Get one voice
Returns a single voice in the ZeliSpeech shape.
curl "https://voice.your-domain.com/v1/voices/zeli-voice-1" -H "Authorization: Bearer sk-zeli-..."Voice settings
Return the ZeliSpeech voice-settings shape (both authed when a key is set). Use them to seed sliders in a UI. See Voice settings for what each field maps to.
Adding & removing voices
Cloning uses the native contract (not /v1): POST /voices with a reference
clip registers a zero-shot voice; DELETE /voices/{id} removes it. Both are
mirrored to S3 when cross-region persistence is configured.
from zeli_tts import ZeliSpeech
client = ZeliSpeech(api_key="sk-zeli-...", base_url="https://voice.your-domain.com")
voice = client.voices.add(name="My voice", file="me.wav") # -> custom-…
client.voices.delete(voice.id)See Voices › cloning a voice for requirements (≈10–20 s clean single-speaker audio).