Text-to-Speech API
Text-to-Speech API
The text-to-speech API turns text into natural-sounding audio from a single request. This page takes you from an API key to saved audio in a few minutes, then points to the streaming, voice, and SSML guides once you have the basics working.
Get your API key
- Sign up at platform.speechify.ai
- Go to API Keys
- Copy your default API key (or create a new one)
API keys are sensitive. Never expose them in client-side code or public repositories. See the Authentication guide for security best practices.
Install the SDK
Python
TypeScript
Generate speech
Send text to POST /v1/audio/speech. These examples come straight from the SDKs and the live spec:
A successful call returns the audio payload:
audio_data field, so decode it before saving.Request essentials
The speech endpoint takes a small, predictable set of fields.
model: "simba-3.2" and pass one of its curated voices (beatrice_32, dominic_32, edmund_32, geffen_32, harper_32, hugh_32, imogen_32, wyatt_32) as the voice_id. See Models.Choose a voice
Call GET /v1/voices to list the voices your workspace can use - the shared catalog plus any voices you’ve cloned - then pass a voice’s id as the voice_id:
Popular built-in voices: george, henry, carly, sabrina.
Filter the list
Four optional query parameters narrow the results. Combine them freely.
For example, list the catalog voices that speak English and support simba-3.2:
Page through the catalog
GET /v1/voices supports cursor pagination. For callers using API version 2026-07-16 or later, it returns a page even when limit is omitted (default page size 50, max 200). Each response carries a next_cursor and a has_more flag. To read the full catalog, request the next page with cursor set to the previous response’s next_cursor, and stop once has_more is false. Don’t assume a single response holds every voice - always follow has_more.
Narrow the list
GET /v1/voices accepts optional query filters, applied before pagination so pages stay full. Combine them to return only the voices you care about:
For example, return only English cloned voices that work on simba-3.2:
The full catalog is returned in one response by default. Pagination is opt-in: pass limit (then cursor from the previous response) to page through the list while has_more is true, up to a page size of 200.