Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 via REST or stream it in real time using gRPC or WebSocket transports.
See also Dragon Copilot partner APIs in the Microsoft Dragon Copilot documentation.
Available APIs
AAS 2.0 provides three transport options for delivering audio:
| API | Transport | Description |
|---|---|---|
| gRPC API | gRPC (HTTP/2) | Bidirectional streaming via gRPC. Supports retrieving configuration, streaming audio recordings in real time, and triggering processing. Best suited for server-side and native client integrations. |
| WebSocket API | WebSocket | Bidirectional streaming via WebSocket. Supports the same operations as gRPC. Well suited for browser-based and web client integrations. |
| REST API | REST (HTTPS) | Upload audio chunks as multipart form data and finalize recordings. Best suited for batch or non-real-time upload workflows. |
All three APIs support the same core operations:
- Retrieve configuration - Get supported audio formats, locale settings, and recording duration limits for a given partner and customer.
- Send audio - Stream audio in real time (gRPC/WebSocket) or upload audio chunks (REST).
- Trigger processing - Signal Dragon Copilot to begin processing a recorded ambient session.
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.
- Create an ambient session - Call
PUT /ambient-sessionsvia 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. - Upload audio chunks - Call
PUT /audio/storeChunkfor each audio chunk, providing thecorrelationIdreturned by the session creation step along with the audio binary and chunk metadata. - Finalize the upload - Call
POST /audio/finalizeUploadwith the correlation ID, recording ID, and total chunk count.
gRPC and WebSocket streaming workflow
For gRPC and WebSocket, session metadata is provided as part of the streaming handshake. The service creates the session internally when the client opens a recording, so a separate PUT /ambient-sessions call is not required.
- Retrieve configuration (optional but recommended) - Call
RetrieveConfiguration(gRPC) or connect toGET /ws/retrieveConfiguration(WebSocket) to get supported audio formats, locale settings, and recording duration limits. - Stream audio - Open a recording session with full session metadata (partner, customer, product, correlation ID, and practitioner info), then stream audio data:
- gRPC: Open a
RecordAmbientbidirectional stream. Send aRecordingOpenRequest, followed byDataChunkRequestmessages, and close with aRecordingCloseRequest. - WebSocket: Connect to
GET /ws. Send aRecordingOpentext message, followed by binaryDataChunkmessages, and close with aRecordingClosetext message.
- gRPC: Open a
- Trigger processing - Signal Dragon Copilot to begin processing:
- gRPC: Call the
StartProcessingunary RPC. - WebSocket: Connect to
GET /ws/startProcessingand send aStartProcessingmessage.
- gRPC: Call the
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 |
gRPC API
| Region | Environment | URL |
|---|---|---|
| US | Non-production | https://streaming.ambient-audio-service.stg.copilot.us.dragon.com |
| US | Production | https://streaming.ambient-audio-service.copilot.us.dragon.com |
| Canada | Production | https://streaming.ambient-audio-service.copilot.ca.dragon.com |
| France | Production | https://streaming.ambient-audio-service.copilot.fr.dragon.com |
| Germany | Production | https://streaming.ambient-audio-service.copilot.de.dragon.com |
| UK | Production | https://streaming.ambient-audio-service.copilot.uk2.dragon.com |
WebSocket API
WebSocket connections use the wss:// scheme on the same streaming host.
| 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 |
WebSocket endpoints append the following paths to the base URL:
| Endpoint | Path |
|---|---|
| Record audio | / |
| Retrieve configuration | /retrieveConfiguration |
| Start processing | /startProcessing |
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 APIs (gRPC and WebSocket) do not require an API version parameter.