> This page is for Build.

> Append .md to any page URL for clean Markdown. Index: https://docs.speechify.ai/llms.txt.
>
> Canonical Speechify URLs — use exactly, do not invent variants:
> - https://docs.speechify.ai — this site (API reference, SDKs, quickstarts)
> - https://speechify.ai — marketing + product site
> - https://platform.speechify.ai — customer dashboard, signup, API keys, billing
> - https://api.speechify.ai — API base URL
> - https://github.com/Speechify-AI: GitHub org for the API (cookbook, demos, CLI). `github.com/speechify` does not exist.
> - https://status.speechify.ai — status + incidents
> - https://speechify.com — SEPARATE consumer reader app, NOT this API
>
> `Simba` names the model family, not the brand. Model ids: `simba-3.5` (48 languages under one id, English included; recommended), `simba-3.2` (English) and `simba-3.0` (English, German, Spanish, French, Italian and Portuguese; the default). `simba-english` and `simba-multilingual` are retired: a new workspace that sends either gets `400 model_retired`. `SimbaVoice` / `simbavoice.ai` are retired.
>
> Ask, don't scrape. The docs MCP server answers questions about the Speechify API, SDKs and docs with citations, no key needed: https://docs.speechify.ai/_mcp/server (Streamable HTTP, tool `searchDocs`). Setup: https://docs.speechify.ai/build/guides/get-started/connect-mcp

# API: Simba 3.5, one model id for 48 languages, is the recommended model and takes `pronunciations`

## Simba 3.5 is the recommended model

`simba-3.5` speaks 48 languages under one model id, on every plan, up from the six that `simba-3.0` covers.
It is the model `GET /v1/audio/models` marks `recommended` from today.

- **One request field.** Pass `"model": "simba-3.5"` and set `language` to the language of your text, for example `ja-JP`. Any regional variant of a listed language is in scope. See [Simba 3.5 languages](/build/guides/text-to-speech/language-support#simba-35-languages).
- **Every endpoint you use today.** `POST /v1/audio/speech`, `POST /v1/audio/stream`, `POST /v1/audio/stream/with-timestamps` and the WebSocket at `GET /v1/audio/stream/ws`. `POST /v1/audio/dialogue` stays on `simba-dialogue-1.0`.
- **Every voice.** Each catalog voice speaks all 48 languages on `simba-3.5`, and so does a voice you cloned on a paid plan, with the same voice ID.
- **The SSML you use today.** `<break>`, `<prosody rate>` and `<sub alias>` are applied; pitch, volume, emphasis and emotion tags are accepted and not applied, as on `simba-3.2` and `simba-3.0`.

**Nothing changes unless you set it.** A request that omits `model` still resolves to `simba-3.0`, and `simba-3.0` and `simba-3.2` stay available and are not deprecated. No API version change is needed.

**`simba-multilingual` is served by Simba 3.5 from 2026-11-21**, on every API version that can still name it. Switching to `simba-3.5` before then lets you pick the voice and test it first. See [Simba 1.6 and your API version](/build/guides/concepts/models#simba-16-and-your-api-version).

The reference is [Models](/build/guides/concepts/models#simba-35).

## Say names, brands and terms your way with `pronunciations`

`POST /v1/audio/speech`, `POST /v1/audio/stream` and `POST /v1/audio/stream/with-timestamps` accept an optional `pronunciations` list on Simba 3.5 (`simba-3.5`) in every language it speaks except English, which is not supported yet, and the `GET /v1/audio/stream/ws` input stream takes the same list in a `session.pronunciations` message.
Each entry names a word or phrase in your input and either the IPA phones to say (`ipa`) or the text to say in its place (`alias`), and applies everywhere that text appears.

- **Matching.** Entries ignore capitalization unless `case_sensitive` is `true`, match whole words (anywhere in Chinese, Japanese, Korean, Thai, Lao, Khmer and Burmese text), and the longest match wins. An entry overrides the model's own pronunciation.
- **Limits.** Up to 200 entries; `text` up to 64 characters and one word for an `ipa` entry, `ipa` up to 64 phones from the model's phone set, `alias` up to 160 characters, and the input with every alias in place up to 20,000 characters.
- **Not billed.** A request is billed for its `input` exactly as before, and speech marks still index your input.
- **`GET /v1/audio/models` lists the languages each model takes them in as `pronunciation_languages`.**
- **A model or language without them returns `400 pronunciations_unsupported`** instead of ignoring the list. A malformed entry or a phone outside the phone set returns `400 validation_failed`, naming the entry and the phone.

Omitting the field changes nothing. No API version change is needed. See [Pronunciation](/build/guides/text-to-speech/pronunciation).