Skip to main content
Problem: Browser WebSocket handshake returns 401 because you cannot set custom auth headers, or the protocol string is wrong. Solution: Pass Sec-WebSocket-Protocol as SukiAmbientAuth,<sdp_suki_token>,<session_id> with the token before the session ID. Use ambient_session_id for Ambient (/ws/stream) or transcription_session_id for Dictation (/ws/transcribe). Do not use SukiTranscriptionAuth.
This cookbook assumes you already have a valid sdp_suki_token and an open ambient or Dictation session ID.

Common mistakes

  • Put the session ID before the token in the protocol string.
  • Use SukiTranscriptionAuth for Dictation. Both products use SukiAmbientAuth.

Other cookbooks

AmbientAPI

End Ambient After Streaming

Send RU9G, then end session.

5 min
DictationAPI

End Dictation with AUDIO_END

Use AUDIO_END, not ambient RU9G.

5 min
Last modified on July 23, 2026