> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api.llynx.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.llynx.io/docs/_mcp/server.

# API reference

The Llynx Speech API does two things: it turns spoken audio into text, and it turns
text into spoken audio. A third endpoint tells you how much prepaid credit you have
left for each.

| Endpoint                                                       | Use it when                                                                                                   |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [Generate speech (TTS)](/docs/api-reference/synthesize)        | You have text and need a natural voice reading it: assistant replies, notifications, IVR prompts, read-aloud. |
| [Transcribe a recording (STT)](/docs/api-reference/transcribe) | You have a short recording and need its words: voice notes, call snippets, voice commands, form dictation.    |
| [Read balances](/docs/api-reference/credits)                   | You want to check remaining credit before sending work, or show usage to your own users.                      |

## Base URL and authentication

All requests go to `https://api.llynx.io`. Create an API key in your
[account](https://api.llynx.io/api-keys) and send it with every request as a bearer
token:

```http
Authorization: Bearer llp_live_…
```

The key is shown once when you create it. Keep it on your server; never ship it in a
browser or mobile app. One key can call every endpoint.

## Requests and responses

Transcription takes a multipart upload; speech generation takes JSON. Transcription
answers with JSON and speech generation with a complete WAV file. Every response
carries an `X-Request-ID` header; quote it when you contact us about a request.

Every request names its language with a tag from the [Languages](/docs/capabilities)
page. Errors come back as JSON with `error.code`, a readable `message`, the
`request_id` and a `retryable` flag; the [retries and failures](/docs/retries) page
explains when to try again.

## Credits

Each service draws on its own prepaid balance. Transcription is charged per second of
audio and speech generation per character of input; see
[credits and packs](/docs/credits) for rates and packs. Successful responses report the
credit reserved for the request in `X-Llynx-Credits-Reserved`.