> 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

# API: `GET /v1/voices` returns an object envelope

`GET /v1/voices` now returns an object envelope instead of a bare JSON array, so the list can carry pagination and future sibling fields without another breaking change.

**Before** (pin `2026-06-26` or earlier): a bare array of voice objects.

**After** (`2026-06-27`+):

```json
{
  "voices": [ { "id": "george", "display_name": "George", "...": "..." } ],
  "next_cursor": null,
  "has_more": false
}
```

By default the full catalogue is returned in a single response (`next_cursor` is `null`). Pagination is opt-in: pass `limit` (and then `cursor` from the previous response) to page through the list while `has_more` is `true`.

### Migrating

Read the array from the `voices` field instead of treating the response body as the array. Callers that pin a `Speechify-Version` date of `2026-06-26` or earlier continue to receive the legacy bare array; the official SDKs pin their build date automatically.