> 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: canonical `Speechify-*` header names (legacy `X-` aliases still work)

Every header in Speechify's public API surface now has one canonical, un-prefixed `Speechify-*` name (RFC 6648). The pre-2026 `X-`-prefixed spellings are unaffected today - they're still accepted on requests and still emitted on responses - and will keep working until **2027-07-24**.

| Legacy (still works until 2027-07-24) | Canonical |
| --- | --- |
| `X-Request-ID` | `Speechify-Request-Id` |
| `X-Speechify-Audio-Content-Type` | `Speechify-Audio-Content-Type` |
| `X-RateLimit-Limit` / `-Remaining` / `-Reset` | `RateLimit-Limit` / `-Remaining` / `-Reset` |
| `X-Speechify-SDK` / `X-Speechify-SDK-Version` | `Speechify-SDK` / `Speechify-SDK-Version` |
| `X-Tenant-ID` | `Speechify-Tenant-Id` |

The last two are request headers - if your integration sends them, either spelling is read the same way. `X-Speechify-Billable-Characters-Count` (an internal usage-accounting header on the audio-streaming responses) is unaffected by this change and has no canonical form.

Nothing to change today: whenever a response carries one of these headers, it carries both spellings with the same value, so an integration reading either name keeps working unmodified. `Speechify-Audio-Content-Type` is only present on the audio-streaming endpoints that already emitted its `X-` predecessor - it doesn't appear on responses that never had it, like `POST /v1/audio/speech`. New integrations should read the canonical name.

```
Speechify-Request-Id: 7f3a2c1b4d5e6f7a
X-Request-ID: 7f3a2c1b4d5e6f7a
RateLimit-Limit: 20
X-RateLimit-Limit: 20
```

(`RateLimit-Limit` reflects your plan's request-rate budget - the value above is illustrative, not a specific plan's limit. See the [API limits reference](https://docs.speechify.ai/build/guides/concepts/api-limits) for the per-plan table.)

If you send a request-correlation id yourself, send it as `Speechify-Request-Id` (the legacy `X-Request-ID` request header is still echoed back the same way). If both are sent, the canonical name wins.

Full header reference: [API limits & rate limiting](https://docs.speechify.ai/build/guides/concepts/api-limits).