AsyncAPI channel · Kalpa Labs · Kalpa Speech API — conversational WebSocket

/v1/converse/stream

One connection = one conversation: history lives in server memory for the socket's lifetime. Frames are JSON text; unknown fields are ignored, an unknown message type gets a non-fatal `error`. The first frame must be `initializeConnection`, within 10 s of connecting. Application close codes: 4400 protocol violation, 4401 authentication failed, 4408 timeout (init deadline or 300 s idle), 4429 reser

Provider: Kalpa Labs AsyncAPI: v3.0.0 Spec: Kalpa Speech API — conversational WebSocket Operations: 2 Messages: 9

Channel address

/v1/converse/stream

Operations

receive
clientMessages
Messages the client sends.
send
serverMessages
Messages the client receives.

Messages

addTurn
Adds a completed turn (transcript and audio) to the history without generating anything. Reference audio added for a speaker pins how that speaker sounds in every later generation.
Content-Type:
cancelResponse
Aborts the in-flight response. Idempotent — cancelling when nothing is generating (or naming an already-finished response) is silently ignored.
Content-Type:
error
Any error, fatal or not. Non-fatal errors reject exactly one client message and change no state; fatal errors are followed by a close.
Content-Type:
initializeConnection
Authenticates the session; must be the first frame, within 10 s of connecting. An invalid or missing `api_key` gets a fatal `error` and close code 4401; if key verification is temporarily unavailable
Content-Type:
responseAudio
One chunk of generated audio, in generation order.
Content-Type:
responseCreated
Generation for a flushed turn has started; `responseAudio` chunks follow.
Content-Type:
responseDone
The response settled — `completed` (the turn, with its final text, is now history) or `cancelled` (the turn was dropped; partial audio is never context). Every response pairs a `responseCreated` with
Content-Type:
sendText
Streams text for a turn. Text accumulates in the pending turn buffer (capped at 8,000 characters per turn); `flush: true` ends the turn and starts generation.
Content-Type:
sessionCreated
Acknowledges `initializeConnection`: the session is ready and audio will arrive in the fixed output format below.
Content-Type:

About AsyncAPI

The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.

Browse every event-driven channel on the APIs.io network or compare with the broader Agent Skill and MCP server surfaces of the same providers.

Work with this as data

Every channel here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for event channels

4 MCP tools reach this
  • find_channelsBrowse and filter every channel in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This channel
curl "https://apis.io/api/v1/channels/v1-converse-stream"
All event channels
curl "https://apis.io/api/v1/channels?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.