Voices
List, inspect, and delete the voices available for speech synthesis.
List, inspect, and delete the voices available for speech synthesis.
Primary agent path
Use the Universal Skill with the MCP tool beatra.voices.list. It is a
non-billable, read-only call that returns preset and in your account cloned
voices.
- Filter by
category(preset/cloned),language(BCP-47),gender(male/female/neutral),age_group(child/youth/adult/senior),use_case(one ofaudiobook,narration,news,ads,conversational,business,character,ivr,course,podcast,gaming,shorts,education,support,social),model(a compatible model id),query(text in the display name),search(text in the display name or the persona), orvoice_id(one exact voice).statuspicks which voices are listed:ready(the default: voices usable for speech),pending_activation(cloned previews waiting for a paid activation),expired, orany. - The list is paged:
limit(1–500, default 50) andcursor(thenext_cursorof the previous page).total_countis the number of voices that match the filters;next_cursorisnullon the last page. - Use the returned
voice_iddirectly as thevoicefield in text to speech.personadescribes the voice in one sentence, andpreview_url(a general sample) andpreview_url_scene(a sample in the voice's main use case) let the user listen before choosing; both samples are free.
AI guide
MCP integration guide for AI
For custom API integrations, copy this guide into Claude, Codex, or another coding assistant.
Tool arguments
A voice entry looks like:
A voice cloned with a model that needs a separate activation (see
voice clone) also carries
clone_model, and while it waits for activation, its preview (url,
text, language, version) and expires_at. Every other voice is
unchanged. When the default (ready) list leaves out voices that wait for
activation, its text summary says how many.
compatible_models lists the speech models that can speak the voice. Each
voice belongs to one engine, so leave model as auto (it picks from this
list) or pass one of these models; another model is rejected before billing
with voice_model_incompatible.
The response also carries next_cursor and total_count. Over REST,
GET /v1/voices takes the same filters as query parameters, with q in place
of query.
ElevenLabs voices
Beatra has 80 ElevenLabs preset voices, voice_preset_elevenlabs_001 to
voice_preset_elevenlabs_080, open to every account. Each voice speaks one
language:
| Language | Presets |
|---|---|
en | 30 |
es | 12 |
pt | 8 |
zh | 7 |
ar | 6 |
ko | 5 |
hi | 4 |
fr | 3 |
it | 3 |
ja | 2 |
- Every preset works with both
elevenlabs-v4andelevenlabs-v4-turbo, andmodel: "auto"picks Turbo. - Presets sort after the existing presets, so the default first page may not
show them. Find them with
model: "elevenlabs-v4-turbo". preview_urlandpreview_url_sceneare fixed Turbo renders. Personas follow the catalog convention and are written in Chinese.- A preset scheduled for retirement stays listed until it retires. Its entry
then carries
retirement: {"retire_at": "<ISO 8601 UTC>", "replacement_voice_id": "<id or null>"}; the field is absent when nothing is scheduled. See text to speech for thevoice_retiringwarning and thevoice_retirederror. - A cloned ElevenLabs voice (see voice clone)
is
readyas soon as it is created and works with the same two models. Deleting it also deletes the saved sample, the voice at the engine, and any cached preview. Deletion cannot be undone and does not refund the clone; speech tasks already accepted still finish.
Default voice and renaming
beatra.voices.list returns a default_voice_id next to voices: the account's default voice, or null when none is set. Each voice entry is unchanged.
When the user asks for it, beatra.voices.update renames one of the account's cloned voices or makes any voice (cloned or preset) the default. It is non-billable and cannot delete a voice. A voice waiting for activation can be renamed, but only a ready voice can become the default.
Deleting a cloned voice
Deletion is REST-only:
Returns 204. Only voices you cloned yourself can be deleted; preset voices
cannot.
Deleting a voice cloned with a model that needs activation is final. A voice
waiting for activation (or expired) is removed with its preview. For an
activated voice, the activation charge is not refunded, and speech tasks
already submitted for it still finish. While an activation is running, the
delete returns 409 conflict with details.reason: voice_operation_in_progress; try again once that task ends.
REST API
Direct protocol integrations may use the voice endpoints directly: List · Retrieve · Delete. Skill + MCP is the recommended integration; use REST for custom, non-agent applications.
Last updated