Overview
When a call created withinclude_post_transfer_transcript: true is cold-transferred to a human, Bland transcribes the bridged conversation live. Connect to this WebSocket to receive finalized transcript segments as the caller and the transferred-to representative speak.
The stream is a real-time preview. The durable record is the post_transfer_transcript property on the citations webhook, which carries the same segment format built from the call recording after the call ends.
The post-transfer transcript stream is in limited rollout. If the Get Transcript Stream URL endpoint returns 403, it is not yet enabled for your organization.
Connecting
Request a connection URL from Get Transcript Stream URL and connect to it exactly as returned, within 5 minutes. The URL is opaque: it routes the connection to the server handling the call and carries the stream credential. Do not parse or reconstruct it. Connections without a valid credential for the call are closed with code1008.
Connection Lifecycle
- Connect any time after the call is answered. The connection URL becomes available once the call is answered; a listener that connects before the transfer starts is held and attached automatically when the transferred conversation begins.
- Join-live semantics. A listener that connects mid-transfer receives segments from that moment forward. There is no history replay; use the post-call webhook for the complete transcript.
- Multiple listeners are allowed. Each requests its own connection URL; all receive the same events.
- End of stream. When the transferred conversation ends, the server sends a
stream_endevent and closes the socket with code1000.
Events
All messages are JSON text frames.transcript_segment
One finalized utterance. Segments are settled text — interim results are never sent — so they arrive at natural pause boundaries, not word by word.
Seconds from the start of the transferred conversation.
End of the utterance, in the same clock as
start.1 for the caller, 2 for the transferred-to human.user for the caller, representative for the transferred-to human. Matches the labels in the webhook’s post_transfer_transcript.The finalized utterance text.
Transcription confidence between 0 and 1.
start when rendering.
stream_end
The transferred conversation has ended. No further segments will arrive, and the socket closes with code 1000.
Implementation Example
Docs for agents: llms.txt