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

https://api.kugelaudio.com

Authentication

Include your API key in requests:
# HTTP header
Authorization: Bearer YOUR_API_KEY

# Or as header
x-api-key: YOUR_API_KEY

# WebSocket query parameter
wss://api.kugelaudio.com/ws/tts?api_key=YOUR_API_KEY
See Authentication for key management.

Sending text safely

Non-ASCII characters (umlauts, accents, CJK, etc.): when calling the API directly, set Content-Type: application/json; charset=utf-8, normalize your text to Unicode NFC before sending, and always set the language parameter explicitly. Without these steps, characters like ä, ö, ü, ß may be garbled or mispronounced. Our SDKs handle this automatically.

Tooling for WebSockets

The streaming endpoints are plain JSON-over-WebSocket. For interactive exploration use wscat (npm install -g wscat) or websocat:
wscat -c "wss://api.kugelaudio.com/ws/tts?api_key=YOUR_API_KEY"
> {"text": "Hello, this is a test.", "model_id": "kugel-3", "voice_id": 1071}
Every 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, watermark

Voices

List, inspect, and clone voices