Skip to main content
loadTortus() initialises the client and immediately displays the standby screen. It accepts a single configuration object.
import { loadTortus } from '@tortus-ai/embed-client';

const client = await loadTortus({
  publishableKey: 'pk_your_key_here',
  container: '#tortus-container',
  environment: 'production',
  fetchClientSecrets: async () => ({ launchToken: await getTokenFromBackend() }),
  debug: true,
});

Options

publishableKey
string
required
Your publishable API key, provided by TORTUS.
container
string | HTMLElement
required
DOM selector (or element) for the iframe container.
environment
'production' | 'sandbox'
required
Which TORTUS environment to connect to. Must be specified explicitly.
fetchClientSecrets
() => Promise<{ launchToken: string }>
required
Async function that returns secure credentials from your backend. See Authentication.
debug
boolean
default:"false"
Enable debug logging for troubleshooting. Defaults to false in production and true in development.
integration
Integration
Default EHR integration applied to all consultations. Consultations inherit this unless they provide their own integration. See EHR integrations.
disableFinishMeetingButton
boolean
default:"false"
When true, the embedded meeting view hides the post-generation Finish meeting button and meeting:completed is not emitted. The bundled meetings list / Start new meeting UI is shown instead, so your host integration manages the meeting lifecycle. See Hosting your own meetings UI.

The container element

TORTUS renders into the element you point container at. Give it an explicit size:
<div id="tortus-container" style="width: 100%; height: 600px;"></div>
Set debug: true while integrating to surface handshake and event logs in the console, then turn it off for production.