> 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/SpeechifyInc — GitHub org. `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 (1.6 multilingual, 3.0 streaming), not the brand. `SimbaVoice` / `simbavoice.ai` are retired.

# Official SDKs

> Install and use the official Speechify API SDKs for Python and TypeScript, or call the REST API directly. Both SDKs read SPEECHIFY_API_KEY automatically.

## Python

```bash
pip install speechify-api
```

* Requires Python 3.8+
* [Source code & docs](https://github.com/SpeechifyInc/speechify-api-sdk-python)
* [PyPI package](https://pypi.org/project/speechify-api/)

## TypeScript / JavaScript

```bash
npm install @speechify/api
```

* Works in Node.js and modern browsers
* [Source code & docs](https://github.com/SpeechifyInc/speechify-api-sdk-typescript)
* [NPM package](https://www.npmjs.com/package/@speechify/api)

The old `@speechify/api-sdk` package is deprecated. See the [changelog](/build/changelog) to upgrade.

## Make a request

After installing, call a TTS endpoint. The SDKs read `SPEECHIFY_API_KEY` from the environment automatically. Not using an SDK? The cURL tab shows the equivalent raw HTTP request.

### Request

POST [https://api.speechify.ai/v1/audio/speech](https://api.speechify.ai/v1/audio/speech)

```curl
curl -X POST https://api.speechify.ai/v1/audio/speech \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "input": "Hello! This is the Speechify text-to-speech API.",
  "voice_id": "geffen_32",
  "audio_format": "mp3",
  "model": "simba-3.2"
}'
```

```typescript
import { SpeechifyClient } from "@speechify/api";

async function main() {
    const client = new SpeechifyClient({
        token: "YOUR_TOKEN_HERE",
    });
    await client.audio.speech({
        input: "Hello! This is the Speechify text-to-speech API.",
        voiceId: "geffen_32",
        audioFormat: "mp3",
    });
}
main();

```

```python
from speechify import Speechify

client = Speechify(
    token="YOUR_TOKEN_HERE",
)

client.audio.speech(
    input="Hello! This is the Speechify text-to-speech API.",
    voice_id="geffen_32",
    audio_format="mp3",
)

```

The SDKs also send a build-date `Speechify-Version` header by default. Raw HTTP callers can send the same header when they need to pin a dated response shape; see [API Versioning](/build/guides/concepts/api-versioning).

See the [API Reference](/build/api-reference) for all public Build endpoints.

## Environment variables

Both SDKs read the `SPEECHIFY_API_KEY` environment variable automatically:

```bash
export SPEECHIFY_API_KEY="your-api-key-here"
```

You can also pass the key explicitly when creating the client. See the [Authentication guide](/build/guides/get-started/authentication) for security best practices.