Text-to-Speech API
Turn text into natural speech with one API call; the product page at speechify.ai/text-to-speech-api covers models, latency and pricing
Wire up the Speechify TTS API
Integrate the Speechify text-to-speech API into my codebase. Cover the request shape, voice and model selection, audio format options, and error handling for the limits that apply.
Follow [https://docs.speechify.ai/build/text-to-speech-api.md](https://docs.speechify.ai/build/text-to-speech-api.md).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.
If you are still deciding, the Text-to-Speech API product page covers models, latency and pricing in one place; this guide is the build path.
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 is a base64-encoded string in the Python and TypeScript SDKs, same as in the raw HTTP response. Decode it before saving.Request essentials
The speech endpoint takes a small, predictable set of fields.
model: "simba-3.2". It serves every English voice in the catalog — your workspace’s cloned voices included — so any English voice_id from GET /v1/voices works (for example geffen_32). 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. They are applied before pagination, so pages stay full.
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.