Kalpa LabsDocs
DashboardGet API key
Start

Kalpa Speech API

Speech models that speak in context — one API for text-to-speech and multi-speaker conversation.

The Kalpa Speech API serves multi-speaker conversational speech models over HTTP and WebSocket. It does two things:

  • Text-to-speech — POST /v1/tts/{voice_id} turns text into spoken audio in a named voice.
  • Conversation — POST /v1/converse takes a conversation of turns and speaks the open (final) turn: either authoring it outright (the model writes text and voices it) or rendering text you supply, in the voice and rhythm of the conversation so far. For a stateful WebSocket, see the WebSocket reference.

There is one conversation shape and no special cases: TTS in a named voice is a conversation whose first turn is the voice's reference clip. REST whole-clip responses carry base64-encoded 16-bit PCM WAV; SSE and WebSocket responses stream base64 raw pcm_s16le, and POST /v1/tts/{voice_id}/stream streams raw pcm_s16le bytes as its body. Generated audio is mono at the response's advertised sample rate (24 kHz, unless a TTS request asks for another sample_rate); input WAV may use any sample rate and multi-channel input is mixed down to mono.

Shell
export KALPA_API_KEY=...   # create one at kalpalabs.ai/dashboard/keys

curl -s https://api.kalpalabs.ai/v1/tts/dda5319f-3b81-4124-b69e-9241eb510b77 \
  -H "Authorization: Bearer $KALPA_API_KEY" -H 'Content-Type: application/json' \
  -d '{"text": "Hey there! How are you doing today?"}'
200audio.data_b64Wren · kalpa-tts-1
0:02

At a glance

EndpointWhat it does
POST /v1/tts/{voice_id}Text in, speech out in a named voice
POST /v1/tts/{voice_id}/streamThe same, streaming raw PCM as it is generated
wss://api.kalpalabs.ai/v1/tts/{voice_id}/streamStreaming text in, streaming speech out, over WebSocket
POST /v1/converseComplete the open turn of a conversation
POST /v1/converse/streamThe same, streaming audio over server-sent events
wss://api.kalpalabs.ai/v1/converse/streamStateful streaming conversation over WebSocket
GET /v1/voicesThe named-voice catalog
GET /v1/modelsThe public model registry
GET /v1/infoBackend info, default params, request limits
GET /v1/usageYour key's metered usage
GET /healthLiveness (no auth)

Base URL: https://api.kalpalabs.ai. All /v1/* endpoints require a key (Authentication). HTTP errors before streaming begins use one standard envelope (Rate limits & errors); SSE and WebSocket failures after a stream starts use their protocol-specific error events, and a raw audio stream that fails is cut off before it completes.

Named voices

For the same voice on every request, list the voices with GET /v1/voices and speak in one with POST /v1/tts/{voice_id}.

VoiceidLanguageSample
Wrenhuman-likedda5319f-3b81-4124-b69e-9241eb510b77en
0:04
Granthuman-likef213312a-ae4a-4857-a8ac-a9ac76f73294en
0:04
Kiara5e0c5704-590f-483b-b291-00a2415cb67ehi + en
0:05
Arjun18c26f49-9f9c-400c-bec9-7467f28e1db5hi + en
0:03

As GET /v1/voices?model=kalpa-tts-1 listed them on 14 Oct 2026. Samples are kalpa-tts-1.

Built for agents

These docs assume your first reader may be a model. Every page is plain markdown at a stable URL — append .md to any path (this page is /index.md). The whole site is indexed in /llms.txt, concatenated in /llms-full.txt, and the full contract is machine-readable at /openapi.json — the same committed artifact the API reference and our clients are generated from. Point your agent at any of them.

Integrations

Building on a voice-agent framework? Kalpa voices are available in Pipecat through the pipecat-kalpa package and built into Bolna — see Integrations.

Getting access

Create an API key yourself at kalpalabs.ai/dashboard/keys, or try the models interactively first in the dashboard. New accounts get 1,000 free minutes of generated audio (on your first organization, valid for three months).