Skip to main content
After you create an ambient session and seed the session context, you can stream audio on GET /ws/stream. For Dictation, create a transcription session, then stream on GET /ws/transcribe. Both endpoints use WebSocket and send audio as JSON text frames. They solve different jobs and use different message contracts.
This guide applies to: Direct HTTP and WebSocket integrations with Suki for Partner Ambient, Form filling, and Dictation APIs.
Use the same base host for REST and WebSocket in a given environment (for example staging https://sdp.suki-stage.com and wss://sdp.suki-stage.com). Your partnership team confirms which host and credentials apply.

Ambient Streaming

Stream PCM audio into an ambient session for note generation and related processing. Use this when you already have an ambient session and want to push live audio for that session.

Dictation Streaming

Stream PCM_S16LE audio into a Dictation session for real-time text. Use this when you have a Dictation session and want to push audio for that session.
Do not send raw audio as binary WebSocket frames on /ws/stream. On /ws/transcribe, outbound audio is also sent as JSON text frames with Base64 payloads, not raw binary PCM frames.
Do not mix Ambient and Dictation contracts. Ambient uses data and ends with RU9G. Dictation uses audioData and ends with AUDIO_END. You should not run both microphone streams on the same device at once. Two streams contend for the mic and confuse the clinician. This is recommended product behavior, not a platform error if both happen to connect.

Prerequisites

  • A valid Suki Token. See Partner authentication.
  • For Ambient or Form filling: a created session and seeded context before /ws/stream.
  • For Dictation: a created transcription session before /ws/transcribe.

What each product is for

Side-by-side comparison

Available cookbooks

Available tutorials

Troubleshooting

Pick one product contract per stream, and keep Ambient and Dictation off the same microphone at the same time.
Ambient uses data and ends with RU9G. Dictation uses audioData and ends with AUDIO_END. Do not reuse one client message shape for both sockets.
Do not run Ambient and Dictation microphone streams on the same device at once. Two streams contend for the mic and confuse the clinician.
Need a clinical note from a visit recording? Use Ambient on /ws/stream. Need live transcript text in a field? Use Dictation on /ws/transcribe. See the comparison table earlier on this page.

Next steps

Stream ambient audio - Push live audio on /ws/stream after you create an ambient session. Stream Dictation audio - Stream real-time transcript frames on /ws/transcribe. Streaming architecture - Diagrams of how REST and WebSocket fit together for each product.
Last modified on October 16, 2026