Heidi Health website screenshot

Heidi Health

Heidi Health is a Melbourne, Australia-founded AI care partner for clinicians, founded in 2019 by Dr. Tom Kelly (CEO), Waleed Mussa (CFO), and Yu Liu (CTO). The product began as an ambient AI medical scribe and now spans four capability surfaces: Scribe (real-time clinical documentation from audio), Evidence (clinical decision support and literature lookup with citations), Remote (a 21-gram wearable microphone with on-device encryption for offline ambient capture), and Comms (clinical communications). The platform is used by more than one million clinicians across 50+ countries spanning family medicine, specialists, nursing, mental health, allied health, dentistry, veterinary medicine, and trainees, and claims to have returned over 18 million hours of clinician time to date. Heidi exposes a public Heidi API and embeddable Heidi Widget that EHR vendors, telehealth platforms, and partners use to embed ambient documentation into their own workflows; documented integrations include Epic (Hyperspace/Hyperdrive/Haiku), Oracle Cerner (PowerChart/FirstNet), Athenahealth, eClinicalWorks (via Vim), Best Practice, Medical Director, Gentu, Cliniko, Halaxy, MediRecords, and many others. Heidi holds SOC 2, ISO 27001, ISO 42001, HIPAA, GDPR, APP, PIPEDA, NHS, Cyber Essentials+, UKCA, and Swiss FDPA attestations, has raised approximately $80M across Seed, Series A (Blackbird), and a $65M Series B led by Point72 Private Investments with Blackbird, Headline, and Latitude, and recently announced a strategic partnership with R1 RCM to embed Heidi into US revenue cycle management workflows.

11 APIs 20 Features
HealthcareHealth TechAI Medical ScribeAmbient AIClinical DocumentationClinical Decision SupportArtificial IntelligenceSpeech To TextTranscriptionEHR IntegrationElectronic Health RecordsTelehealthClinical CodingICD-10SNOMEDHIPAAGDPRSOC 2ISO 27001ISO 42001WearablesVoiceAudioAustraliaMelbourne

APIs

Heidi Authentication API

Exchange a tenant-scoped Heidi API key for a short-lived bearer JWT bound to an EHR user (identified by email plus third-party internal ID). The token is returned with its ISO 8...

Heidi Templates API

List consult-note templates available to the authenticated API user, including Heidi-authored templates, organisation-shared templates, and private clinician templates, with the...

Heidi Patient Profiles API

Manage longitudinal patient profiles independent of any single session, including create, update, list, retrieve, batch-delete, and link-sessions operations. Profiles can carry ...

Heidi Sessions API

Create, update, retrieve, and list clinical sessions — the central object that ties together transcription, consult notes, documents, clinician notes, language settings, EHR ide...

Heidi Session Context API

Attach contextual material to a session — free-text or Markdown clinician notes, links to prior patient sessions, and uploaded context documents (PDF, JPG, PNG, DOCX, DOC) — so ...

Heidi Session Coding API

Generate clinical codes for a session across ICD-10, ICD-10-CM, ICD-9, ICD-9-CM, SNOMED, SNOMED-CT, OPCS-410, ACHI-13, and CPT-2025, returning a primary code, similar candidate ...

Heidi Transcription API

Submit consultation audio either as a single uploaded file (lazy transcription on next GET) or in 45-second to 1-minute chunks for live ambient capture, and retrieve either the ...

Heidi Consult Notes API

Generate streamed consult notes from a session's transcript and context, using either a Heidi or organisation template or a custom client-supplied JSON template, with voice-styl...

Heidi Documents API

Create and retrieve auxiliary template-driven documents associated with a session (referral letters, patient handouts, billing summaries, etc.) using the same voice-style, brain...

Heidi Ask Heidi API

Stream AI-assistant responses scoped to a specific session, taking a free-form instruction, contextual content (Markdown or HTML), and returning the generated reply as a sequenc...

Heidi Widget SDK

Embeddable JavaScript widget for dropping Heidi's ambient documentation experience directly into a web-based EHR or clinical workflow with minimal engineering, with documented i...

Collections

Pricing Plans

Rate Limits

Heidi Health Rate Limits

0 limits

RATE LIMITS

FinOps

Features

Heidi Scribe — ambient AI medical scribe generating real-time consult notes from clinical audio
Heidi Evidence — clinical decision-support and literature lookup with transparent citations and CPD/CME tracking
Heidi Remote — 21-gram wearable microphone with offline capture and on-device encryption
Heidi Comms — clinical communications module
Heidi API — public REST API at registrar.api.heidihealth.com for sessions, transcription, consult notes, documents, coding, Ask Heidi
Heidi Widget — embeddable JavaScript widget for any web-based EHR
Custom JSON templates for organisation-specific consult-note structures
Multilingual transcription and output across 50+ countries
Voice-style controls (Goldilocks, Detailed, Brief, Super-Detailed, My Voice)
Clinical coding generation in ICD-10, ICD-10-CM, ICD-9, ICD-9-CM, SNOMED, SNOMED-CT, OPCS-410, ACHI-13, CPT-2025
Streamed generation responses for incremental UI rendering
Patient profiles linking many sessions to a single patient for longitudinal context
Context attachments (PDF, JPG, PNG, DOCX, DOC) per session
EHR integrations spanning Epic, Cerner, Athenahealth, eClinicalWorks (via Vim), Best Practice, Medical Director, Gentu, Cliniko, Halaxy, MediRecords, and 15+ others
Free plan with unlimited transcription and standard templates
Evidence Plus, Clinician, and Enterprise paid tiers with 14-day trials
Enterprise features including SSO, centralised billing, custom hosting, dedicated CSM
SOC 2, ISO 27001, ISO 42001, HIPAA, GDPR, APP, PIPEDA, NHS, Cyber Essentials+, UKCA, Swiss FDPA compliance
No clinician data used for AI model training
R1 RCM strategic partnership for US revenue cycle management

Semantic Vocabularies

Heidi Health Context

43 classes · 0 properties

JSON-LD

API Governance Rules

Heidi Health API Rules

8 rules · 3 errors 5 warnings

SPECTRAL

JSON Structure

Heidi Health Session Structure

0 properties

JSON STRUCTURE

Example Payloads

Heidi Health Get Jwt Example

5 fields

EXAMPLE

Resources

🔗
Website
Website
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
📝
Signup
Signup
🔗
Login
Login
💰
Pricing
Pricing
📰
Blog
Blog
📄
ChangeLog
ChangeLog
🟢
StatusPage
StatusPage
🔗
TrustCenter
TrustCenter
💬
Support
Support
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
AcceptableUse
AcceptableUse
🔗
Compliance
Compliance
🔗
Compliance
Compliance
🔗
Compliance
Compliance
🔗
Compliance
Compliance
🔗
Compliance
Compliance
🔗
Safety
Safety
🔗
Company
Company
🔗
Customers
Customers
🔗
Press
Press
🔗
Careers
Careers
🔗
Contact
Contact
🔗
Contact
Contact
🔗
Partners
Partners
🔗
Downloads
Downloads
🔗
SystemRequirements
SystemRequirements
🔗
Templates
Templates
🔗
ROICalculator
ROICalculator
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary
🔗
SpectralRules
SpectralRules

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Heidi Health API
  version: v2
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Exchange API Key For JWT
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/jwt
      params:
      - name: email
        value: ''
        type: query
      - name: third_party_internal_id
        value: ''
        type: query
      auth:
        type: apikey
        key: Heidi-Api-Key
        value: '{{Heidi-Api-Key}}'
        placement: header
    docs: Exchange a tenant Heidi API key for a short-lived bearer JWT bound to an EHR user.
- info:
    name: Templates
    type: folder
  items:
  - info:
      name: List Consult Note Templates
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/templates/document-templates
    docs: List Consult Note Templates
- info:
    name: Patient Profiles
    type: folder
  items:
  - info:
      name: List Patient Profiles
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles
      params:
      - name: ehr_patient_id
        value: ''
        type: query
      - name: provider
        value: ''
        type: query
    docs: List Patient Profiles
  - info:
      name: Create Patient Profile
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles
      body:
        type: json
        data: '{}'
    docs: Create Patient Profile
  - info:
      name: Get Patient Profile
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles/:patient_profile_id
      params:
      - name: patient_profile_id
        value: ''
        type: path
    docs: Get Patient Profile
  - info:
      name: Update Patient Profile
      type: http
    http:
      method: PATCH
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles/:patient_profile_id
      params:
      - name: patient_profile_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Patient Profile
  - info:
      name: Batch Delete Patient Profiles
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles:batch-delete
      body:
        type: json
        data: '{}'
    docs: Batch Delete Patient Profiles
  - info:
      name: Link Session To Patient Profile
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/patient-profiles/:patient_profile_id/sessions
      params:
      - name: patient_profile_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Link Session To Patient Profile
- info:
    name: Sessions
    type: folder
  items:
  - info:
      name: Create Session
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions
      body:
        type: json
        data: '{}'
    docs: Create Session
  - info:
      name: Get Session
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
    docs: Get Session
  - info:
      name: Update Session
      type: http
    http:
      method: PATCH
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Session
  - info:
      name: List Linked User Sessions
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/linked-user
      params:
      - name: page_size
        value: ''
        type: query
    docs: List Linked User Sessions
- info:
    name: Session Context
    type: folder
  items:
  - info:
      name: List Context Documents
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/context-documents
      params:
      - name: session_id
        value: ''
        type: path
    docs: List Context Documents
  - info:
      name: Upload Context Document
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/context-documents
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: multipart-form
        data:
        - name: file
          type: text
          value: ''
        - name: unstructured
          type: text
          value: ''
    docs: Upload Context Document
  - info:
      name: Delete Context Documents
      type: http
    http:
      method: DELETE
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/context-documents
      params:
      - name: session_id
        value: ''
        type: path
      - name: ids
        value: ''
        type: query
    docs: Delete Context Documents
- info:
    name: Transcription
    type: folder
  items:
  - info:
      name: Upload Session Audio
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/upload-audio
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: multipart-form
        data:
        - name: file
          type: text
          value: ''
    docs: Upload a full audio file (MP3 or OGG recommended) for lazy transcription.
  - info:
      name: Get Session Transcript
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/transcript
      params:
      - name: session_id
        value: ''
        type: path
    docs: Get Session Transcript
  - info:
      name: Get Live Session Transcript
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/transcript/live
      params:
      - name: session_id
        value: ''
        type: path
    docs: Chunked live transcript with per-chunk status and source.
- info:
    name: Consult Notes
    type: folder
  items:
  - info:
      name: Generate Consult Note
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/consult-note
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Stream a consult note generated from the session's transcript and context.
  - info:
      name: Generate Custom Template Consult Note
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/client-customised-template/response
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Generate a consult note against a client-supplied JSON template.
- info:
    name: Documents
    type: folder
  items:
  - info:
      name: List Session Documents
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/documents
      params:
      - name: session_id
        value: ''
        type: path
    docs: List Session Documents
  - info:
      name: Generate Document
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/documents
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Generate Document
- info:
    name: Clinical Coding
    type: folder
  items:
  - info:
      name: Get Clinical Codes
      type: http
    http:
      method: GET
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/clinical-codes
      params:
      - name: session_id
        value: ''
        type: path
      - name: coding_system
        value: ''
        type: query
    docs: Generate clinical codes for the session across the requested coding system.
- info:
    name: Ask Heidi
    type: folder
  items:
  - info:
      name: Ask Heidi
      type: http
    http:
      method: POST
      url: https://registrar.api.heidihealth.com/api/v2/ml-scribe/open-api/sessions/:session_id/ask-ai
      params:
      - name: session_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Stream an AI-assistant response scoped to the session.
bundled: true