REQUIRED. The consult-scoped session token minted server-side via the
/embed-session endpoint (never mint tokens in the browser — that
would expose your API key). Determines which consult the widget shows;
the token's type must match the tag (telehealth vs async).
OptionallocaleUI language. Default: browser language, falling back to en.
OptionalthemeColor scheme. Default auto.
OptionalaccentAccent color — the patient's own message bubbles, primary buttons and
focus rings. Hex only (#0f7b6c, #fff, 3/4/6/8 digits); anything
else is ignored and the default is kept.
The widget runs in a cross-origin iframe, so your page's CSS cannot reach inside it. These attributes are the supported way to make it look like your product. They are a deliberately small, strictly validated set rather than arbitrary CSS: the frame renders health information, and a free-form style channel into it is a channel worth not having.
Defaults to your tenant's brand color when one is configured, else the theme's own accent.
Optionalaccent-Text/icon color used ON accent. Hex only. Default white.
OptionalbackgroundPage background behind the conversation. Hex only.
OptionalsurfaceSurface color for bubbles, header and composer. Hex only.
OptionalradiusCorner radius of bubbles, buttons and cards, in px (0–24). Larger values are clamped. Default 18.
Optionalfont-Font family for the widget's text, e.g. Inter, system-ui, sans-serif.
Letters, digits, spaces, commas, quotes and hyphens only — enough to name
a stack, not enough to smuggle another declaration. The font must already
be available to the browser; the widget loads no external fonts.
HTML attributes of both embed elements. All attributes are observed: changing one re-renders the widget (changing
session-tokenis equivalent to callingrefresh).