> 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.2` (English, recommended) 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

# TTS `output_format` and monthly spend limits on API keys

## `output_format` on speech and streaming

`POST /v1/audio/speech` and `POST /v1/audio/stream` now accept an `output_format` body parameter for a specific codec, sample rate, or bitrate. Existing callers do not need to change — when `output_format` is absent, the old defaults still apply.

Values use the `codec_sampleRate_bitrate` shape:

- `pcm_16000`
- `pcm_24000`
- `ulaw_8000`
- `mp3_24000_64`
- `mp3_24000_128`
- `wav_48000`

`output_format` takes precedence over `audio_format` on `/v1/audio/speech` and over the `Accept` header on `/v1/audio/stream`. Invalid values return `400` and list the supported formats; the response echoes `output_format` when set. Telephony integrations should look at `ulaw_8000` and `pcm_16000`; media pipelines at the mp3 bitrate variants. The full matrix is in the API reference.

## Monthly USD spend limits on API keys

API keys can now carry a monthly USD spend limit. Once a key reaches its budget for the current calendar month, new requests fail with `402 spend_cap_exceeded` until you raise the limit, use another key, or the month rolls over. Keys without a limit behave exactly as before.

The limit is per key, measured in US dollars through the same billing engine that produces your invoice, and covers speech synthesis and LLM gateway usage where that key is the caller. The window is the calendar month in UTC and resets at 00:00 UTC on the first.

```json
{
  "error": {
    "code": "spend_cap_exceeded",
    "message": "This API key has reached its monthly spend cap."
  },
  "request_id": "..."
}
```

Handle `spend_cap_exceeded` separately from `payment_required`: the former means this key hit its budget, the latter means the workspace balance needs attention. In-flight calls are not cut off — the limit gates new requests. Set or edit a limit from the API Keys page; the secret does not change. See the [spend limits guide](https://docs.speechify.ai/build/guides/concepts/spend-limits).