Skip to content

Environments

All examples on this site use the staging environment. Staging behaves like production but holds no real patient data. Use it to build and test your integration.

Service Staging URL Used for
Platform API https://medipulse-staging.sahl.ai Login, token refresh, JWT exchange
Streaming API wss://medistream-staging.sahl.ai Real-time audio streaming (/ws/summary)
Embedded panel https://dev.sahl-ai.pages.dev Iframe entry points (/iframe, /iframe-secure, /jwt-auth-secure)

Never use real patient data on staging

Staging is for synthetic or de-identified test encounters only.

Production

When your integration has passed testing, Sahl AI sends you the production URLs, credentials and organization identifiers over a secure channel. They are never published on this site.

Moving to production normally changes only the base URLs and credentials. Read them from configuration rather than hard-coding them:

// config/sahl.js
export const SAHL = {
  apiBase:    process.env.SAHL_API_BASE,     // https://medipulse-staging.sahl.ai on staging
  wsBase:     process.env.SAHL_WS_BASE,      // wss://medistream-staging.sahl.ai on staging
  iframeBase: process.env.SAHL_IFRAME_BASE,  // https://dev.sahl-ai.pages.dev on staging
};

Validate event.origin against iframeBase, so the same check works in both environments.

Network requirements

Clinician workstations need outbound HTTPS (TCP 443) to:

  • *.sahl.ai
  • dev.sahl-ai.pages.dev (staging panel host)

Your backend needs outbound HTTPS to the Platform API host so it can request tokens.

The embedded panel needs microphone access. To capture the remote participant in a teleconsultation, it also needs screen and tab audio capture. Grant both through the iframe allow attribute, as shown in Embedded iframe.