Ambient Audio Streaming Service

The Ambient Audio Streaming (AAS) 2.0 service enables healthcare IT partners to send ambient audio recordings to Dragon Copilot for processing. Partners can upload audio through REST or stream it in real time through WebSocket.

See also Dragon Copilot partner APIs in the Microsoft Dragon Copilot documentation.

Available APIs

API Transport Description
REST API REST (HTTPS) Upload audio chunks as multipart form data and finalize recordings. Best suited for batch or non-real-time upload workflows.
WebSocket API WebSocket Bidirectional streaming for real-time audio upload. Well suited for browser-based and web client integrations.

The APIs support the following core operation:

  • Send audio - Stream audio in real time with WebSocket or upload audio chunks with REST.

Workflow by transport

REST API workflow

Partners that upload audio via REST must first create an ambient session through the Dragon Copilot Partner API before uploading audio chunks.

  1. Create an ambient session - Call PUT /ambient-sessions via the Dragon Copilot Partner API with the correlation ID, partner, customer, product, and EHR metadata. This establishes the session context that all subsequent audio operations reference.
  2. Upload audio chunks - Call PUT /audio/storeChunk for each audio chunk, providing the correlationId returned by the session creation step along with the audio binary and chunk metadata.
  3. Finalize the upload - Call POST /audio/finalizeUpload with the correlation ID, recording ID, and total chunk count.

WebSocket streaming workflow

For WebSocket, session metadata is provided in the RecordingOpen message. The service creates the session internally, so a separate PUT /ambient-sessions call is not required.

  1. Stream audio - Open a recording session with full session metadata (partner, customer, product, correlation ID, and practitioner info), then stream audio data:
    • WebSocket: Connect to GET /ws. Send a RecordingOpen text message, followed by binary DataChunk messages, and end the recording with a RecordingClose text message.
  2. Process recording - Include "generate-draft" in RecordingOpen.actions to start processing automatically after the recording closes. Track results through the registered partner notification endpoint using the correlation ID.

Base URL

REST API

Region Environment URL
US Non-production https://ambient-audio-service.stg.copilot.us.dragon.com
US Production https://ambient-audio-service.copilot.us.dragon.com
Canada Production https://ambient-audio-service.copilot.ca.dragon.com
France Production https://ambient-audio-service.copilot.fr.dragon.com
Germany Production https://ambient-audio-service.copilot.de.dragon.com
UK Production https://ambient-audio-service.copilot.uk2.dragon.com

WebSocket API

WebSocket connections use the wss:// scheme and the following streaming hosts.

Region Environment URL
US Non-production wss://streaming.ambient-audio-service.stg.copilot.us.dragon.com/ws
US Production wss://streaming.ambient-audio-service.copilot.us.dragon.com/ws
Canada Production wss://streaming.ambient-audio-service.copilot.ca.dragon.com/ws
France Production wss://streaming.ambient-audio-service.copilot.fr.dragon.com/ws
Germany Production wss://streaming.ambient-audio-service.copilot.de.dragon.com/ws
UK Production wss://streaming.ambient-audio-service.copilot.uk2.dragon.com/ws

Authorization

All AAS 2.0 APIs require an access token. The audience claim of the access token is valued based on the environment.

Environment Audience value
Non-production 40d36082-d340-492f-a5af-e42ef68f4b2b
Production 40d36082-d340-492f-a5af-e42ef68f4b2b

API versioning

REST endpoints require an api-version query parameter set to 2025-07-15:

  • Store audio chunk: PUT /audio/storeChunk?api-version=2025-07-15
  • Finalize upload: POST /audio/finalizeUpload?api-version=2025-07-15

Streaming API (WebSocket) do not require an API version parameter.