Skip to main content
GET
cURL
Use this API to stream visit audio over the Partner WebSocket (GET /ws/stream) for Form filling sessions. For more information on how to handle the handshake, wire format, message order, and error handling, and poll for structured data when the session is complete, refer to the Aaudio streaming guide.
Use the ambient_session_id from Create Form Filling session while streaming audio. Do not use the ambient_session_id from an Create Ambient session, even though both fields use the name ambient_session_id.

Prerequisites

Complete these steps before you open the WebSocket.
Opening /ws/stream before the session and context are ready can cause handshake failures or a broken stream.
  • Authenticate and obtain sdp_suki_token
  • Create a Form filling session with POST /api/v1/form-filling/session/create. Save the ambient_session_id from the 201 Created response
  • Seed session context (recommended) with POST /api/v1/form-filling/session/{ambient_session_id}/context. Include form_template_id values when you send context
  • Open the WebSocket at wss://sdp.suki-stage.com/ws/stream (staging) or wss://sdp.suki.ai/ws/stream (production). Use your Form filling ambient_session_id in the handshake

Browser clients

Send Sec-WebSocket-Protocol during the handshake as one comma-separated string, in this order:
  • Subprotocol name
  • Form filling session ID (ambient_session_id)
  • sdp_suki_token
Do not add spaces between values unless your client library requires them.
Example:
The server negotiates this subprotocol to establish the connection.

Non-browser clients

For mobile apps, backend services, or testing tools, pass headers on the WebSocket upgrade request. Do not use Sec-WebSocket-Protocol.
  • 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 - Form filling session ID from Create Form Filling session
Sending non-JSON payloads where the server expects JSON can cause parse errors (for example invalid character or null byte errors).

Code examples

Authorizations

sdp_suki_token
string
header
required

Suki access token for the authenticated provider. Obtain this by calling Login or Register with a valid partner_token. Pass the suki_token value from the JSON response as the sdp_suki_token header on REST requests and non-browser WebSocket upgrades. Browser WebSocket clients pass the token in Sec-WebSocket-Protocol instead. Tokens expire after one hour; call Login again to refresh.

Headers

Sec-WebSocket-Protocol
string

Required FOR BROWSER CLIENTS ONLY. Sent during WebSocket handshake. Format: 'SukiAmbientAuth,<ambient_session_id>,<sdp_suki_token>' (comma-separated, no spaces required between parts).

ambient_session_id
string
required

Required for non-browser clients only. Session UUID from Create Ambient Session or Create Form Filling Session.

sdp_provider_id
string

Optional - Stable identifier for the active provider. Omit for standard partners whose partner_token identifies the user. Required for Bearer partners and Single Auth Token authentication where multiple providers share one partner_token. Use the same provider_id you sent on Login or Register.

Example:

"provider-123"

Response

Switching Protocols - Indicates successful WebSocket handshake.

The response is of type string.

Last modified on June 30, 2026