Skip to main content
Both APIs use a persistent WebSocket and a context ID per conversational turn. Bland makes barge-in the default: a new context replaces the active context instead of running concurrently. Start with the Realtime TTS Quickstart, then translate the protocol as follows.

Message mapping

Important differences

  • Cartesia can multiplex multiple contexts over one socket. Bland has exactly one active turn. Sending a different context_id preempts the old one.
  • Cartesia echoes the context ID on audio JSON. Bland brackets raw binary frames with utterance_start and utterance_end, so track the active context locally.
  • Bland handles token buffering. You do not need to port max_buffer_delay_ms or manual flush IDs.
  • Bland does not currently emit word or phoneme timestamps.
  • Bland cancellation stops forwarding the active turn. Clear locally queued audio as well because delivered frames cannot be recalled.
See the Cartesia WebSocket reference, Cartesia context guide, and Bland turn concepts.
Docs for agents: llms.txt