Audio Streaming
WebSocket endpoint for real-time audio streaming during Ambient sessions
Related guides
Stream Ambient Audio Overview
Ambient Streaming Wire Format
Complete the Ambient Session after Streaming
Audio Capture Best Practices
Streaming Architecture Overview
Prerequisites
Complete these steps before opening the WebSocket.- Authenticate and obtain
sdp_suki_token. - Create an ambient session with POST
/api/v1/ambient/session/create. A successful create returns 201 Created; keep theambient_session_idyou used or received. - Seed session context with POST
/api/v1/ambient/session/{ambient_session_id}/context. Send the JSON body your integration requires (see that endpoint for the full schema). - Authenticate and open the WebSocket on
wss://sdp.suki-stage.com/ws/stream. To stream audio, you must first establish an authenticated WebSocket connection. The authentication method you use depends on your client type: browser or non-browser.
Browser clients
When connecting from a browser, include theSec-WebSocket-Protocol header as part of the WebSocket handshake.
Set the header value as a single comma-separated string. The order must be:
- Subprotocol name.
- Token - Your
sdp_suki_token. - Ambient session ID - Your ambient session ID.
Non-browser clients
For non-browser clients such as mobile apps, backend services, or testing tools, pass authentication details as separate HTTP headers in the WebSocket upgrade request. Do not use theSec-WebSocket-Protocol header.
Include the following headers:
sdp_suki_token- Session token from login.sdp_provider_id- Provider identifier. Optional for standard partners; Required for Single Auth Token authentication.ambient_session_id- The ID for the current .
Full code examples
For end-to-end ambient and Form filling streaming examples, start with these tutorials:Authorizations
Suki access token (suki_token) from Login or Register. Expires after one hour.
Headers
Required FOR BROWSER CLIENTS ONLY. Sent during WebSocket handshake. Browsers must use the same subprotocol the grpc-wsproxy maps to Authorization: 'SukiAmbientAuth,<sdp_suki_token>,<ambient_session_id>' (comma-separated; token second, ambient session id third). Other subprotocol names are not mapped and typically yield 401.
Required for non-browser clients only. Session UUID from Create Ambient Session or Create Form filling Session.
Optional for standard partners.
Required for:
- Bearer authentication. Use the same
provider_idreturned by the Login or Register API. - Single Auth Token authentication. Include the same
provider_idon every request assdp_provider_id.
"provider-123"
Response
Switching Protocols - Indicates successful WebSocket handshake.
The response is of type string.