Text to speech
Lists every voice available to the project tied to your API key. The response combines public platform voices (shared across all projects) and the project's own private cloned voices created via the Clone Voice endpoint. Each voice's id is the value you pass as the voice field when generating speech and as the voice for agents. Call this endpoint first to discover which voice IDs you can use.
curl --request GET \
--url 'https://api.nabrah.ai/api/ext/tts/voices' \
--header 'X-API-Key: <your-api-key>'{
"voices": [
{
"id": "00000000-0000-4000-8000-000000000000",
"name": "string",
"is_public": false,
"created_at": "2026-01-15T12:00:00.000Z",
"is_ready": false
}
],
"total_count": 0
}Returns a voices array plus a total_count. Each entry in voices describes one voice your project can use.
voices[]Array of voice descriptors. Includes both public platform voices and the project's private cloned voices.
idnameis_publiccreated_atis_readyidThe voice's unique identifier (UUID). This is exactly the value you put in the voice field of POST /api/ext/tts/generations and the voice configured on an agent.
is_publictrue for shared platform voices that any project can use; false for private voices that belong only to this project. Only private voices can be deleted.
is_readyIndicates whether the voice is usable. A freshly cloned voice starts as false while its background cloning job runs, and flips to true when ready. Do not pass a voice to TTS until is_ready is true.
total_countThe number of voices returned in the voices array.
After cloning a voice, poll this endpoint (or GET /api/ext/tts/voices/{voice_id}) until is_ready becomes true.
X-API-KeystringheaderrequiredYour workspace API key. Create one in the dashboard under API keys.
Successful Response
application/json