Text-to-speech. Synchronous, returns audio bytes, billed per character. Three voice models, 3,000+ pre-made voices.
Synchronous endpoint. Send text, get back audio bytes in one call. Three voice models — pick one based on quality needs vs latency budget.Documentation Index
Fetch the complete documentation index at: https://docs.kymaapi.com/llms.txt
Use this file to discover all available pages before exploring further.
application/json body.
eleven-multilingual-v2 — hero quality, 29 languages, expressive ($0.405/1K char)eleven-flash-v2-5 — ~75ms time-to-first-byte, real-time agents ($0.20/1K char)eleven-turbo-v2-5 — balanced quality + speed ($0.20/1K char)text for OpenAI compatibility.GET /v1/audio/voices. Also accepts the alias voice. There is no global default; pick one explicitly.mp3_44100_128 (default), mp3_44100_192, mp3_22050_32, pcm_16000/22050/24000/44100, ulaw_8000.stability (0–1), similarity_boost (0–1), style (0–1), use_speaker_boost (boolean).200 OK with raw audio bytes. Billing rides on X-Kyma-* response headers — the body stays a clean audio file you can pipe straight to disk or play.
| Header | What |
|---|---|
Content-Type | matches the requested format (audio/mpeg for mp3, etc.) |
X-Kyma-Model | resolved model id |
X-Kyma-Chars-Billed | input char count used for pricing |
X-Kyma-Cost-USD | actual cost charged |
X-Kyma-Balance-USD | remaining balance |
| Status | error.code | When |
|---|---|---|
400 | not_a_tts_model | model is not a TTS SKU |
400 | voice_required | voice / voice_id missing |
400 | input_too_long | input text > 5000 chars |
400 | invalid_request | invalid JSON or missing input |
401 | auth_error | missing or invalid API key |
402 | billing_error | balance too low |
502 | provider_error | upstream TTS provider failure |
GET /v1/audio/voices — browse the voice libraryPOST /v1/audio/music — generative musicPOST /v1/audio/sfx — sound effects