Hosts and authentication
Rime publishes Python
rime-api and JavaScript @rimelabs/api for generated TTS message definitions and schemas. These packages cover the standalone engine protocol. Your application still manages connections and authentication. The cloud examples below use standard HTTP and WebSocket clients.
Synthesize speech (HTTP)
POST /v1/rime-tts returns audio bytes in the format named by your Accept header (audio/mpeg, audio/wav, audio/webm;codecs=opus, audio/ogg;codecs=opus, audio/L16, audio/PCMU):
Stream speech (WebSocket /ws3)
Synthesis arguments go in the query string; auth goes in the connection header. Send {"text": ...} messages (buffered by sentence by default) and operations ({"operation": "flush" | "clear" | "eos"}); receive JSON events: chunk (base64 audio), timestamps (word-level), done, error.
modelId explicitly on /ws3. Without it, requests are served by the Mist v3 backend, and speakers outside the Mist v3 catalog fail with a “Speaker not found” error. Message schemas: Coda WebSocket reference · Buffering control: Segmentation · Web-app bridge pattern: Next.js voice-agent guide
List voices
Both voice endpoints are public; no API key required.Check vocabulary coverage (/oov)
Returns the input words that are not in Rime’s pronunciation dictionary:
Normalize text (/textnorm)
Preview exactly how numbers, dates, and phone numbers will be spoken. Note the host: optimize.rime.ai.
Common parameters
Where to go deeper
- API reference index: every endpoint across every model
- WebSocket API overview: endpoint comparison, timestamps, interruption handling
- Build a voice agent: complete apps in Next.js, Vite, Express, plain Node, and FastAPI
- Rime CLI and the hosted MCP server: tooling around this same API

