Skip to main content
Everything our SDKs do goes over the public HTTP + WebSocket API — you can use it directly from any language. This page covers the connection basics; each endpoint’s full message reference lives on its own page.

Base URL

Authentication

Include your API key in requests:
See Authentication for key management.

Sending text safely

Encode JSON as UTF-8. For predictable normalization of short or ambiguous text, set language explicitly. Unicode NFC normalization can also make equivalent composed and decomposed input consistent before it reaches the API.

Tooling for WebSockets

The streaming endpoints are plain JSON-over-WebSocket. For interactive exploration use wscat (npm install -g wscat) or websocat:
Every streaming endpoint page includes complete raw-WebSocket examples in Python and JavaScript alongside the wire-format tables.

Endpoints

Generate Speech

REST one-shot — also the canonical request parameter reference

Stream Speech

One request, audio chunks streamed over a WebSocket

Stream Input

Token-by-token text input, turn-based sessions for LLM agents

Multi-Context

Up to 20 independent audio streams over one connection

Audio Formats

PCM, G.711 telephony codecs, chunk fields, AI-generated audio marking

Voices

List, inspect, and clone voices

Models

Inspect accepted model IDs and per-model input limits

Dictionaries

Manage project pronunciation dictionaries and entries