> 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: Free tier gets a burst allowance on `/v1/audio/*`

The Free plan's TTS rate limit no longer caps its burst bucket at the sustained rate. Previously Free was 1 request/second with a bucket capacity of 1, so a second request issued in the same second was rejected with `429`. Free now gets a burst capacity of 10, so a normal opening burst of requests (a quickstart script, a first integration test) no longer trips the limiter.

| Plan | Sustained requests/second | Burst |
| --- | --- | --- |
| Free | 1 | 10 |
| Starter | 20 | 60 |
| Pro | 40 | 120 |
| Scale | 80 | 240 |
| Enterprise | 150 | 450 |

**Sustained throughput is unchanged on every tier** — burst only smooths the first second of traffic; it does not raise your steady-state rate. Burst allowances were first published with the [rate and concurrency limits](https://docs.speechify.ai/build/changelog/2026/7/19).

See the [API limits reference](https://docs.speechify.ai/build/guides/concepts/api-limits) for the full per-plan table.

## Audio 404s now say what wasn't found

`POST /v1/audio/speech`, `POST /v1/audio/stream`, and `POST /v1/audio/stream/with-timestamps` previously answered an unknown `voice_id` or `model` with an opaque, passed-through upstream `404` - indistinguishable from any other not-found. All three now classify the cause and return an actionable error instead:

| Cause | Code | Message |
| --- | --- | --- |
| Unknown `voice_id` | `voice_not_found` | Voice not found. List the voices available to your workspace with `GET /v1/voices`. |
| Unknown `model` | `not_found` | Model not found. List the available models with `GET /v1/audio/models`. |

`voice_not_found` is already part of the public `ErrorCode` enum; this is the first time these three endpoints return it instead of a generic upstream passthrough. No other error responses on these endpoints changed.