Last updated
September 2, 2026
14 min read

Headless EHRs: a deep dive into the technical and market landscape

Flávio Juvenal
Founder & Chief Technology Officer
Summarize with ChatGPT
Table of Contents

    TL;DR

    A headless EHR decouples the clinical data backend (FHIR-native storage, APIs, business logic) from the presentation layer, so teams build their own UI instead of inheriting a vendor's screens. It's built for CTOs, digital health startups, and care-management teams who need a custom clinical workflow that a monolithic EHR can't give them without heavy customization fees.

    Core benefits: architectural flexibility (pick the right tool per domain instead of one vendor's stack), native interoperability (FHIR as the data model, not a bolt-on), independent scaling and caching for high-traffic services, a security posture built on OAuth 2.0/SMART on FHIR at every API boundary, and incremental rollout, since you can replace one clinical workflow at a time instead of a full system cutover.

    Core challenges: distributed-systems complexity (data consistency across microservices needs patterns like Saga and CQRS), API governance (versioning and backward compatibility as a discipline, not an afterthought), the DevOps maturity a multi-service architecture demands, a larger security surface area with more service boundaries to defend, and the scarcity of engineers who've actually done this in a regulated environment.

    Five platforms in this landscape: 

    1. Medplum, open-source and self-hostable with a full FHIR R4 surface and no licensing lock-in. 
    2. Oystehr, a hosted FHIR R4/R5 platform bundling eRx, labs, fax, and billing for urgent-care and telehealth builds. 
    3. Canvas Medical, an ONC-certified EMR with a Python plugin SDK for running custom logic inside the platform itself. 
    4. Healthie, an API-first platform combining scheduling, telehealth, and charting for digital health startups, with a separate FHIR API as an Enterprise add-on. 
    5. Elation Health, a primary-care-focused EMR with AI-assisted charting and a large pre-built integration marketplace.

    The decision isn't "headless vs. monolithic" in the abstract. It's whether your team has (or can build) the engineering maturity to run a distributed system, in exchange for the flexibility to ship a clinical product a vendor's off-the-shelf UI was never going to let you build.

    Key takeaways

    • A headless EHR separates FHIR-native clinical data and business logic from the UI, exposed through REST/GraphQL/webhook APIs.
    • It's built for CTOs, digital health founders, and care-management teams who need custom workflows monolithic EHRs can't support.
    • Core benefits: architectural flexibility, native interoperability, independent performance scaling, API-boundary security, incremental (not big-bang) rollout.
    • Core challenges: distributed-systems complexity, API governance overhead, required DevOps maturity, larger security surface area, scarce specialized talent.
    • Five named platforms: Medplum (open source), Oystehr (bundled services), Canvas Medical (plugin SDK), Healthie (API-first, with an ONC-certified FHIR add-on), Elation Health (AI charting plus integrations).
    • 70% of U.S. hospitals routinely engaged in all four interoperability domains (send, receive, find, integrate) as of 2023, up from prior years, per ONC.¹
    • Healthcare had 725+ large data breaches reported to HHS OCR in 2024 alone, the worst year on record for exposed records.²

    Understanding the limitations of monolithic EHRs

    While the healthcare industry is shifting toward headless EHRs for greater flexibility and interoperability, monolithic EHR architectures still constrain many organizations. These legacy systems, designed to centralize healthcare operations, now face real scalability, integration, and UI customization limits.

    Healthcare Modernization: Interested in upgrading your healthcare systems?
    Schedule a free consultation with our EHR specialists.

    A monolithic EHR tightly couples UI, business logic, and data storage in one non-modular system, so even a minor change touches the whole codebase. As healthcare technology advances (AI-powered decision support, remote patient monitoring, real-time analytics), organizations stuck on monolithic EHRs run into the same wall repeatedly: a UI change requires a backend deploy, a new integration requires vendor sign-off, and a new clinical workflow requires waiting for the vendor's roadmap.

    These architectural limitations directly impact system extensibility, operational efficiency, and data interoperability, preventing organizations from adapting to modern healthcare technology demands.

    The diagram below illustrates how a monolithic EHR encapsulates all core functionalities within a single, tightly coupled system:

    The key takeaway: any change to one layer risks the whole system, which is why customization and integration work in monolithic EHRs tends to be slow and expensive.

    Custom UI in a headless EHR

    Headless EHRs introduce a modular, API-driven approach that enables custom UI development and workflow optimization by decoupling frontend presentation from backend logic. Organizations design and scale interfaces independently of the clinical data layer underneath them.

    By building on FHIR-based APIs and modern frontend frameworks, headless EHRs enable:

    • Role-specific UI development: separate, purpose-built experiences for clinicians, administrators, and patients
    • Interoperability with AI-driven diagnostics, telehealth platforms, and third-party tools, since FHIR is the native format rather than an export format
    • Incremental feature deployment: ship one workflow at a time instead of a full-system release
    • Independent scaling: high-traffic services (like patient search) scale without redeploying the rest of the system
    The diagram shows multiple independent frontend clients all calling the same FHIR-native backend through APIs. The key takeaway: one backend can power several purpose-built frontends at once, each shipped and scaled on its own schedule.

    As Brendan Keeler (Health API Guy) has argued, traditional EHRs often force organizations to conform to the vendor's system structure instead of building software that matches how their teams actually work. A headless approach flips that: the provider owns the user experience, and the legacy constraints stay contained to the data layer. Organizations can upgrade progressively, swapping the UI while keeping the clinical data model, instead of a full rip-and-replace.

    Key components of a headless EHR

    Headless EHR systems run on a backend architecture built to manage clinical data and business logic independently of any UI. Clinical data sits on an FHIR-native data model that structures information according to the HL7 FHIR specification.

    The real power of the architecture is the API surface: REST, GraphQL, FHIR-compliant endpoints, WebSocket for real-time updates, and webhooks for event-driven workflows, all exposed with the same authentication and audit requirements a monolithic system would apply internally.

    Not every headless implementation adopts every layer below on day one, but production-grade builds typically include:

    1. Distributed infrastructure layer: Kubernetes-orchestrated microservices with separate control and data planes, network policies, pod security contexts, and mTLS. This supports HIPAA Technical Safeguards (45 CFR § 164.312) with configurable compliance boundaries for multi-tenant isolation.
    2. Identity management and zero-trust security: Token-based auth (commonly OAuth 2.0 with PKCE), short-lived access tokens with refresh rotation, RBAC/ABAC policy enforcement at the API gateway, often via a policy engine like OPA (Open Policy Agent).
    3. Standards-based clinical information model: FHIR R4 resources (145+ resource types are defined in the HL7 FHIR specification), with terminology bindings to SNOMED CT, LOINC, and RxNorm and runtime validation against ValueSet constraints.
    4. Asynchronous event architecture: a message broker (Kafka/RabbitMQ-style) with topics per clinical domain, supporting ordered processing and, where a transaction spans multiple services, the Saga pattern for compensating actions.
    5. Domain-driven clinical services: bounded-context microservices for core clinical workflows, each with its own API contract, documentation (commonly OpenAPI 3.0), and persistence layer optimized for its own query patterns.

    This decouples the clinical data infrastructure from presentation concerns, so teams compose purpose-built experiences on top of shared, enterprise-grade clinical data management, instead of rebuilding core functionality per product.

    Technical benefits of headless EHRs

    Architectural Flexibility and Composability

    Headless EHRs let technical teams take a best-of-breed approach: pick the specialized tool for each clinical workflow instead of inheriting one vendor's full stack. That means implementing distributed architectures for specific clinical domains and running independent frontends for different product lines, without one team's choices constraining another's.

    Composable, API-first architectures are consistently associated with faster feature delivery than monolithic ones in software engineering literature generally, largely because frontend and backend teams can build against a stable contract in parallel rather than waiting on each other's release cycles.

    Advanced Interoperability Capabilities

    Headless architectures address a real, well-documented gap in healthcare interoperability. As of 2023, 70% of U.S. non-federal acute care hospitals routinely engaged in all four domains of interoperable exchange (sending, receiving, finding, and integrating electronic health information from outside sources), according to the Office of the National Coordinator for Health IT (ONC).¹ That's real progress from prior years, but it also means roughly 3 in 10 hospitals still aren't there, and that gap shows up hardest exactly where headless architectures help most: telehealth-to-EHR connections, cross-system messaging, and device data ingestion.

    Standardized, API-driven exchange reduces duplicate data entry and administrative burden, and gives patients better access to and control over their own health information. Application areas where this matters most:

    1. Patient-provider interactions: e-prescribing with interaction checks, patient portals with scheduling and messaging, telehealth with remote monitoring, mobile apps syncing to the EHR
    2. Clinical system integration: cross-institutional messaging, real-time FHIR/HL7 data exchange, clinical decision support with external knowledge bases, automated critical-results notification
    3. Care coordination and population health: regional health information exchanges with consent management, risk-stratification analytics, public health reporting, social-determinants-of-health data integration
    4. Device and technology ecosystem: FDA-regulated devices, consumer wearables and IoT health devices, DICOM imaging, remote patient monitoring with threshold alerting
    5. Research and innovation networks: clinical trial data collection, genomic data exchange with privacy protections, AI/ML training data access, real-world evidence platforms

    Security and compliance architecture

    The decoupled nature of headless systems creates room for stronger security models at every service boundary, which matters in a highly regulated environment. FHIR's support for OAuth 2.0, SMART on FHIR, and fine-grained resource-level permissions is designed to keep PHI sharing compliant with HIPAA and similar frameworks, and a standardized API surface reduces the risk of the inconsistent, proprietary integrations that tend to introduce vulnerabilities.

    That security posture matters because the stakes are real and getting worse, not better. HHS OCR's breach portal shows 725 large healthcare data breaches (500+ records) reported in 2024, the worst year on record for exposed patient records, driven in large part by a single ransomware attack on a claims-processing vendor (Change Healthcare) that alone accounted for the majority of individuals affected that year.² 

    Healthcare has been the most expensive industry for data breaches for 14 consecutive years running, averaging $7.42 million per incident in 2025, according to IBM's Cost of a Data Breach Report.³ Robust security architecture at every API boundary isn't optional; it's the baseline cost of operating in this space.

    Technical implementations of headless EHR platforms

    Legacy open-source EHRs like OpenEMR (PHP-based) and OpenMRS (Java-based) remain widely deployed and actively maintained, but they weren't built around modern API-first practices, and organizations increasingly look to migrate off them toward modular, FHIR-native platforms. Below is a technical overview of eight platforms in this space, drawn from our own project experience, hands-on evaluation, and documentation research.

    Compare leading headless EHRs at a glance and find
    the right fit for your product.
    Download the PDF
    Vendor Licensing FHIR coverage Best for
    Medplum Open source (Apache 2.0) Full FHIR R4 surface Engineering-heavy teams that want a self-hostable, fully FHIR-native backend with no licensing lock-in
    Oystehr Proprietary hosted FHIR R4/R5, full read/write Urgent-care and telehealth builds needing FHIR plus bundled eRx, labs, fax, and billing
    Welkin Health Proprietary SaaS Not FHIR-native Care-management and behavioral-health teams prioritizing configurable workflows over deep FHIR interoperability
    Canvas Medical Proprietary, ONC-certified 37 resources, 21 write-enabled Teams wanting to run custom clinical logic inside the EHR via a plugin SDK
    Healthie Proprietary SaaS GraphQL primary API; separate ONC-certified FHIR R4 API as an Enterprise add-on Digital health startups wanting scheduling, telehealth, and charting in one API-first platform
    Elation Health Proprietary EMR FHIR R4, ONC-certified (g)(10) Primary-care practices wanting AI-assisted charting plus a large integration marketplace
    Akute Health Proprietary, modular Not confirmed FHIR-native Telehealth startups needing e-prescribing (EPCS) and lab ordering without building it themselves
    Avon Health Proprietary, low-code FHIR-compliant (per vendor) Organizations wanting low-code configuration on a FHIR-compliant core

    Medplum

    Who it's for: Engineering teams that want a fully open-source, self-hostable FHIR backend and zero licensing lock-in. 

    Standout capability: Apache 2.0-licensed, with a full FHIR R4 resource surface (REST and GraphQL), TypeScript SDK, and a React component library. It's the only platform here you can run entirely on your own infrastructure. 

    Known trade-off: Self-hosting shifts operational burden (uptime, scaling, patching) onto your own team; the hosted tier's pricing isn't publicly listed. 

    Typical integration pattern: OAuth 2.0/OpenID Connect with SMART on FHIR compliance, PostgreSQL/JSON-B storage, and serverless "Bots" for HL7v2-to-FHIR transformation and automation. 

    Proof point: Apache 2.0-licensed, HIPAA-eligible, SOC 2 Type II, and ONC-certified, per Medplum's own documentation and GitHub repository (checked Aug. 2026).⁴ Full technical breakdown: Vinta's Medplum overview.

    Oystehr

    Who it's for: Teams building urgent-care, telehealth, or multi-service healthcare products that want FHIR plus bundled clinical services. 

    Standout capability: A single hosted platform combining a full read/write FHIR R4/R5 API with eRx, lab ordering, fax, telehealth, and billing services, instead of stitching those together from separate vendors. 

    Known trade-off: Public documentation describes a REST-first FHIR API with custom serverless "Zambda" functions for extensibility, not the GraphQL-first, BPMN-driven architecture that some earlier third-party summaries (including a prior version of this article) described. Treat any specific uptime/throughput claims as unverified until confirmed directly with Oystehr, since none are currently published. 

    Typical integration pattern: OAuth2 with M2M clients and IAM roles; FHIR read/write plus Zambdas for business logic that doesn't map cleanly to a FHIR resource. 

    Proof point: Public developer docs at docs.oystehr.com confirm FHIR R4/R5 support and the Zambda extensibility model (checked Aug. 2026).⁵

    Welkin Health

    Who it's for: Care-management and behavioral-health teams that need configurable, HIPAA-compliant workflows more than deep FHIR interoperability.

    Standout capability: Attribute/role/geography-based access control (ABAC-style) with a strong focus on care-team workflows, scheduling, and secure messaging.

    Known trade-off: Not FHIR-native. It's a proprietary data model with point integrations (e.g., DrFirst for e-prescribing), and its public integration catalog is comparatively small. 

    Typical integration pattern: REST APIs plus workflow-automation connectors for third-party tools; SOC 2 Type II-certified security posture. 

    Proof point: SOC 2 Type II certification and the ABAC-style "geographical, role, and attribute-based security" model are documented on Welkin's own site (checked Aug. 2026).⁶

    Canvas Medical

    Who it's for: Practices that want to run custom clinical automation directly inside the EHR, not just call it from outside. 

    Standout capability: A Python plugin SDK that executes natively inside Canvas's infrastructure, plus a FHIR API covering 37 resources, 21 of which are write-enabled, and 650+ real-time clinical/operational events available via webhook. 

    Known trade-off: FHIR coverage is narrower than Medplum's full resource surface, and deep customization via plugins ties your logic to Canvas's own runtime. 

    Typical integration pattern: REST/FHIR API for data access, Python SDK plugins for in-platform logic, webhooks for event-driven automation. 

    Proof point: "37 resources (21 of which are writable)" and "650+ clinical and operational events," per Canvas Medical's developer documentation, updated Nov. 2025.⁷

    Healthie

    Who it's for: Digital health startups that want scheduling, telehealth, and charting in one API-first platform rather than three separate systems. 

    Standout capability: Healthie's core product runs on a GraphQL API with full feature parity to its own UI (anything the product team can build, an external developer can build too). Separately, Healthie also offers an ONC-certified FHIR R4 API, built on Aidbox, as an add-on layer on top of the main application. Vendor-reported: 2 billion+ API calls per month and 17 million+ patients on the platform, as of an April 2026 job posting.⁸ 

    Known trade-off: The GraphQL API (the one most integrations use) is not FHIR-native. The FHIR API is a separate, additional subscription, available only to Enterprise customers, on the production environment only (not staging/sandbox), and typically takes 4 to 6 weeks to set up.⁹ 

    Typical integration pattern: GraphQL queries/mutations for most integrations; the FHIR API for standards-based exchange with EHRs, HIEs, and partners like Zus; HIPAA/SOC 2/PIPEDA/GDPR/PCI compliance; extensibility via the Healthie Harbor marketplace (75+ integrations spanning labs, billing, wearables, and communications). 

    Proof point: "Healthie's ONC certified FHIR API works as an add-on layer on top of the main Healthie application... supported by Aidbox... FHIR API is only available to Enterprise level customers," per Healthie's own support documentation (checked Aug. 2026).⁹ Patient and API-call volume per a Healthie engineering job posting dated April 9, 2026.⁸

    Elation Health

    Who it's for: Independent primary care practices that want AI-assisted charting and a mature integration marketplace more than a blank-slate headless build.

    Standout capability: Note Assist, an AI-powered charting tool, plus a FHIR R4 API that's ONC-certified under the Standardized API criterion §170.315(g)(10) for patient and population services. 

    Known trade-off: Getting sandbox credentials requires registering as a "trusted developer" and signing API terms of service first; there's no fully self-serve, anonymous sandbox. 

    Typical integration pattern: REST/FHIR API, self-service credential management after developer approval, and a large integration marketplace (300+ per third-party estimates, not independently confirmed against a vendor-published count). 

    Proof point: ONC certification under §170.315(g)(10) and the developer-registration flow are documented in Elation's Help Center (checked Aug. 2026).¹⁰

    Akute Health

    Who it's for: Telehealth and virtual-care startups that need e-prescribing (including controlled substances) and lab ordering fast, without building those integrations themselves. 

    Standout capability: Modular APIs specializing in e-prescribing (including EPCS) and lab orders via Health Gorilla, plus real-time webhooks for clinical/operational events. 

    Known trade-off: Narrower scope than a full headless EHR; best understood as a specialized module you plug into a broader stack, not a system of record on its own. We could not independently verify vendor-specific authentication implementation details in public documentation. 

    Typical integration pattern: REST APIs for scheduling, medication sync, and lab orders; webhook-driven notifications for clinical events. 

    Proof point: E-prescribing (EPCS) and Health Gorilla-based lab ordering are described on Akute's own product pages (checked Aug. 2026).

    Avon Health

    Who it's for: Organizations, from small practices to larger networks, that want low-code configuration on top of a FHIR-compliant core rather than a heavy custom build. 

    Standout capability: Combines low-code/no-code customization with a REST API covering patient management, messaging, scheduling, clinical documentation, and billing. 

    Known trade-off: Smaller public developer ecosystem and less independently verifiable documentation than Medplum, Oystehr, or Canvas; treat vendor scale claims as unverified until confirmed directly. 

    Typical integration pattern: OAuth 2.0-based auth, REST plus webhooks and WebSocket for real-time updates. 

    Proof point: FHIR-compliant patient management and low-code configuration are described on Avon Health's own site (checked Aug. 2026); we recommend requesting a technical conformance statement directly before evaluating further.

    Advantages and disadvantages of headless EHR architecture

    Headless EHR architecture introduces a modular approach that enhances flexibility, scalability, and interoperability, but it also brings complexity that requires real engineering investment. Here's the honest trade-off.

    Advantages

    1. Architectural flexibility and extensibility: fine-grained control over the stack per layer (Node.js for real-time, Python for analytics, Go for high-throughput services), supporting domain-driven design so clinical modules evolve independently.
    2. API-first development paradigm: enforced separation of concerns and clear service contracts let frontend and backend teams build in parallel against a stable API instead of a shared, tangled codebase.
    3. Optimized performance characteristics: resource allocation matches actual demand; high-traffic services scale independently, and layered caching supports fast response times for frequent clinical queries.
    4. Durable technology investment: decoupling frontend and backend limits the blast radius of framework obsolescence; UI frameworks can be swapped without a backend rewrite.
    5. Interoperability as a design principle, not an add-on: FHIR is the native data model, not something retrofitted later, which tends to shorten integration timelines compared to systems where FHIR support was bolted on to meet certification requirements.

    Challenges

    1. Distributed systems complexity: data consistency, transaction coordination, and failure handling across microservices demand patterns like Saga, CQRS, and Event Sourcing, which require expertise most conventional healthcare IT teams haven't built yet.
    2. API governance requirements: versioning strategies, deprecation policies, and automated compatibility testing become mandatory; skip them and API evolution turns into integration fragility.
    3. DevOps sophistication: automated CI/CD, infrastructure-as-code, observability, and distributed tracing aren't optional extras for a multi-service architecture; they're the baseline for operating it safely.
    4. Security implementation complexity: every service boundary is a new attack surface; layered defense (service mesh encryption, zero-trust network policies, distributed identity) requires proactive threat modeling, not a one-time review.
    5. Specialized engineering expertise: the skill set (distributed systems plus healthcare regulatory constraints) is scarce and commands premium compensation, which is a real line item in any build-vs-buy decision.

    When to choose a headless EHR: decision tree

    Use this to map your situation to a recommended path:

    • Do you need a custom clinical UI (not just a themed version of a vendor's screens)? If no, a monolithic or configurable SaaS EHR (Healthie, Welkin, Elation) is probably sufficient. If yes, continue.
    • Do you need multi-tenant isolation (e.g., you're building a platform other organizations will use, not just your own clinic)? If yes, favor Medplum or Oystehr, built for this from the ground up. If no, a single-tenant headless build or a configurable platform (Canvas, Avon) may be enough.
    • Are you offloading a legacy monolithic EHR you already run? If yes, budget for a phased migration (see the Implementation Checklist below) rather than a big-bang cutover; headless architecture supports this well. If no, you may be starting greenfield: go straight to the build-vs-buy criteria below.
    • How complex is your regulatory footprint (EPCS, multi-state licensure, payer integrations)? If high, lean toward platforms with built-in regulatory tooling (Oystehr for bundled compliance, Akute for EPCS) rather than building every regulated workflow yourself. If low-to-moderate, a leaner build (Medplum) gives you more control at a similar or lower cost.
    • Is your engineering team's maturity there yet (distributed systems, API governance, observability)? If no, budget for either a partner/consultancy to build this with you, or a more configurable platform (Healthie, Welkin, Canvas) that absorbs more of that complexity for you. If yes, a from-scratch or Medplum-based headless build is a reasonable path.

    Build vs. buy: decision framework

    Work through these five dimensions in order; each one either clears you to keep evaluating a custom build or points you toward an existing platform.

    1. Engineering team maturity. Do you have engineers who've operated distributed systems and secure API design in production, ideally in a regulated environment? 

    Acceptance criteria: at least one engineer with prior experience running a service-mesh or microservices architecture in production, plus a security lead who can own OWASP-aligned reviews. If not met, discount custom build.

    1. Product validation before scale. Have you done structured discovery: clinical stakeholder interviews, user journey mapping, low-fidelity prototyping, competitive benchmarking?

    Acceptance criteria: a documented set of workflows validated with at least 3 to 5 real clinical users before writing production code.

    1. Need for advanced customization. Does your product require workflows, data models, or patient/provider interactions a conventional EHR genuinely can't support?

    Acceptance criteria: you can name the specific screen, workflow, or data relationship no evaluated vendor platform supports today.

    1. Acceleration via open-source platforms. Would adopting Medplum (or similar) get you 70 to 80% of the way there without full custom infrastructure?

    Acceptance criteria: your core resource model maps cleanly onto standard FHIR resources with minimal custom extensions.

    1. Legacy system offloading. Are you migrating off a monolithic system, and is that migration itself a strategic cost center?

    Acceptance criteria: you can quantify current IT capacity spent on legacy maintenance (a commonly cited range in industry surveys is 30 to 40% of IT capacity going to legacy-system upkeep) as a rough baseline to justify migration.¹¹

    For the full breakdown, see Vinta's in-depth article on headless EHR strategy.

    Implementation checklist

    Numbered, in dependency order. Each step has a concrete acceptance criterion so you know when it's actually done.

    1. Identity and auth
      • OAuth 2.0 / OpenID Connect implemented with PKCE for public/mobile clients
      • SMART on FHIR scopes defined per app (patient-level vs. user-level access)
      • Access tokens short-lived (≤15 min is a common baseline) with refresh-token rotation
      • Acceptance criteria: a third-party app can complete an OAuth2/PKCE flow end-to-end against your sandbox and receive a scoped token it can't use outside its granted resources.
    2. Data model / FHIR resources
      • Core resource types mapped (Patient, Encounter, Observation, Condition, MedicationRequest, at minimum)
      • US Core (or applicable regional) profile conformance validated
      • Terminology bindings in place for SNOMED CT, LOINC, RxNorm where applicable
      • Acceptance criteria: a FHIR validator run against your resource instances returns zero conformance errors for your chosen profile.
    3. Eventing
      • Message broker or FHIR Subscriptions configured for state changes that matter downstream
      • Saga (or equivalent compensating-action pattern) defined for any transaction spanning more than one service
      • Acceptance criteria: a failure injected mid-transaction in a test environment triggers the compensating action and leaves no orphaned state.
    4. Observability
      • Distributed tracing across service boundaries
      • Centralized, structured logging with no PHI in log payloads (use opaque record IDs, not names or DOBs)
      • Alerting on auth failures, latency spikes, and FHIR validation errors
      • Acceptance criteria: a single request can be traced end-to-end across every service it touches, and a log audit confirms zero raw PHI fields in log output.
    5. Governance
      • API versioning strategy documented (URL-based, header-based, or content-negotiation)
      • Deprecation policy with a minimum notice period for breaking changes
      • Automated compatibility tests running in CI against the previous API version
      • Acceptance criteria: a breaking change cannot merge to main without a corresponding version bump and a passing compatibility test suite.

    Example FHIR queries

    Fetch a patient's active conditions:

    GET /fhir/R4/Condition?patient=123&clinical-status=active

    Reverse-chain search, finding all patients with an active MedicationRequest for a given drug:

    GET /fhir/R4/Patient?_has:MedicationRequest:patient:medication.code=http://www.nlm.nih.gov/research/umls/rxnorm|860975

    Bulk export of all Observations for population-health analysis (FHIR Bulk Data / $export):

    GET /fhir/R4/Patient/$export?_type=Observation

    OAuth2/PKCE walkthrough (text)

    1. The client app generates a random code_verifier and derives a code_challenge from it (SHA-256, base64url-encoded).
    2. The app redirects the user to the authorization server with the code_challenge, requested scopes (e.g., patient/Observation.read), and a redirect_uri.
    3. The user authenticates and approves the requested scopes.
    4. The authorization server redirects back to the app with a short-lived authorization code.
    5. The app exchanges that code, along with the original code_verifier, for an access token at the token endpoint.
    6. The server verifies the code_verifier matches the code_challenge from step 2. This is what stops a stolen authorization code from being redeemed by anyone other than the app that started the flow, since only the original app holds the verifier.
    7. The app receives a short-lived access token (and, if requested, a refresh token) scoped exactly to what the user approved.

    OPA/Rego policy example

    A simple example enforcing that a user can only read Observation resources for patients within their assigned care team:

    package fhir.authz‍default allow = false‍allow {    input.method == "GET"    input.resource_type == "Observation"    input.user.care_team[_] == input.resource.patient_id}

    This runs at the API gateway as a policy-enforcement point: every request carries the user's care-team assignments and the resource's patient reference, and the policy engine evaluates the rule before the request reaches the FHIR store. Access is denied by default unless the rule explicitly allows it.

    What does the future hold?

    At Vinta, we've seen the transformative impact of headless EHRs firsthand: tailored solutions that meet each client's specific requirements rather than forcing their workflow into a vendor's template. 

    Using API-first architectures, we've helped organizations optimize clinical workflows, improve patient experiences, and integrate with a fast-changing healthcare technology ecosystem. The transition takes real planning, but the payoff (scalability, adaptability, and a better user experience) is a solid bet for the next decade of digital healthcare.

    Building on an EHR and need to move faster? Schedule a call with our healthcare architects

    Definitions

    Headless EHR: An electronic health record architecture where the clinical data store and business logic run as backend services, exposed via API, with no bundled UI. Teams build their own frontend on top. (Vinta Software, Aug. 2026)

    FHIR (Fast Healthcare Interoperability Resources): An HL7 data standard that defines healthcare information as discrete, linkable "resources" (Patient, Observation, MedicationRequest, etc.) exchanged over a REST API. (HL7 International, FHIR R4 spec)

    SMART on FHIR: An authorization profile built on OAuth 2.0 that lets third-party apps request scoped, patient- or user-level access to FHIR data, so an app can launch inside an EHR (or standalone) without broad, all-or-nothing credentials. (HL7 SMART App Launch IG)

    DDD (Domain-Driven Design): A software design approach that organizes a system around the business's actual domains (e.g., scheduling, billing, clinical documentation) as separate "bounded contexts," each with its own model and language. (Eric Evans, Domain-Driven Design, 2003)

    Saga: A pattern for managing a transaction that spans multiple services. Instead of one database transaction, each service does its local step and publishes an event; if a later step fails, compensating actions undo the earlier ones. (Chris Richardson, microservices.io)

    CQRS (Command Query Responsibility Segregation): Splitting the model used to write data (commands) from the model used to read data (queries), so each can be optimized and scaled independently. (Greg Young, 2010)

    Event Sourcing: Storing every change to application state as an immutable sequence of events, rather than just the current state, so the current state is always derivable by replaying the event log. (Martin Fowler, martinfowler.com)

    ABAC / RBAC: Two authorization models. RBAC (Role-Based Access Control) grants permissions based on a user's assigned role (e.g., "nurse," "billing admin"). ABAC (Attribute-Based Access Control) grants permissions based on a broader set of attributes (user, resource, and context), enabling finer-grained rules than role alone. (NIST SP 800-162, 2014)

    EPCS (Electronic Prescribing of Controlled Substances): A DEA-regulated capability requiring identity-proofing and two-factor authentication for prescribers, allowing Schedule II to V controlled substances to be prescribed electronically instead of on paper. (DEA, 21 CFR Part 1311)

    FAQ

    What is a headless EHR? A headless EHR is an electronic health record architecture that exposes clinical data and business logic through APIs (REST, GraphQL, FHIR, webhooks) with no bundled frontend. Teams build their own UI on top, instead of using the vendor's built-in screens.

    Headless vs. monolithic: when should you choose which? Choose headless when you need a custom clinical UI, multi-tenant isolation, or workflows a conventional EHR's screens can't support, and your team has (or can acquire) the distributed-systems maturity to run it. Choose a monolithic or configurable SaaS EHR when your workflows are largely standard, your team is small, or time-to-market matters more than deep customization.

    What are the top headless EHR options in 2026, and why? Medplum (open source, full FHIR R4 surface, no lock-in), Oystehr (hosted FHIR R4/R5 with bundled eRx/labs/fax/billing), Canvas Medical (ONC-certified with a plugin SDK for in-platform logic), Healthie (GraphQL API-first, with a separate FHIR add-on, strong for digital health startups), and Elation Health (AI-assisted charting plus a large integration marketplace). See the full comparison table above for the trade-offs between them.

    What does a security requirements checklist look like for a headless EHR? At minimum: OAuth 2.0/SMART on FHIR at every API boundary, HIPAA Technical Safeguards under 45 CFR §164.312 (access control, audit controls, integrity, transmission security), audit logging with no PHI in log payloads, encryption in transit and at rest, and a documented incident-response plan given HHS OCR's active enforcement posture.²

    What's a typical cost and timeline range for a headless EHR build? This varies enormously by scope, so treat any number as a rough planning input, not a quote. A narrow, single-workflow MVP on top of an existing open-source platform (like Medplum) is a materially different engagement than a full multi-service build from scratch. Get a scoped estimate from your engineering partner rather than anchoring on industry averages.

    How do you decide build vs. buy? Work through the five-dimension framework above: engineering team maturity, product validation before scale, need for advanced customization, whether an open-source platform gets you most of the way there, and whether you're offloading a costly legacy system. If most dimensions favor "buy," a configurable platform (Healthie, Welkin, Elation) is the lower-risk path; if most favor "build," Medplum-based custom development is worth the investment.

    How do you integrate telehealth and remote patient monitoring (RPM)? Telehealth integrates through FHIR-based APIs connecting video/scheduling services to the clinical record, typically via webhooks for real-time events (session start/end, no-shows) and FHIR Encounter/Appointment resources. RPM integrates device data as FHIR Observation resources, usually with a device-data ingestion pipeline that normalizes vendor-specific formats into standard FHIR before it reaches the clinical record.

    Which FHIR resources matter most for care management, e-prescribing, and RPM? Care management leans on CarePlan, CareTeam, Goal, and Task. E-prescribing depends on MedicationRequest, MedicationDispense, and terminology bindings to RxNorm, plus EPCS-specific identity-proofing outside the FHIR spec itself. RPM depends heavily on Observation (with device-specific code values), Device, and often Subscription for real-time threshold alerting.

    Do headless EHRs meet HIPAA requirements out of the box? No platform is "HIPAA compliant" by default. HIPAA compliance is a property of how a system is configured, operated, and governed, not a checkbox a vendor ships. A HIPAA-eligible or SOC 2-certified platform gives you the technical controls to build a compliant system, but your organization (or your Business Associate) still owns the risk analysis, policies, and operational safeguards required under 45 CFR §164.3xx.

    What's the biggest mistake teams make adopting a headless EHR? Underestimating the DevOps and API-governance investment. The architectural flexibility is real, but it isn't free. Teams that adopt headless without the observability, versioning discipline, and distributed-systems expertise to run it end up with the complexity and none of the benefits.

    Sources

    1. Gabriel MH, Richwine C, Strawley C, Barker W, Everson J. Interoperable Exchange of Patient Health Information Among U.S. Hospitals, 2023. ONC Data Brief No. 71, May 2024. https://www.healthit.gov/data/data-briefs. "70% of hospitals as of 2023" engaged in interoperable exchange; this article cites the subset "routinely" engaged in all four domains (send, receive, find, integrate).
    2. HIPAA Journal, 2024 Healthcare Data Breach Report, Jan. 30, 2025 (updated with later portal data). 725 large breaches (500+ records) reported to HHS OCR for 2024, the third consecutive year above 700. https://www.hipaajournal.com/2024-healthcare-data-breach-report/
    3. IBM Security, Cost of a Data Breach Report 2025. Healthcare averaged $7.42 million per breach in 2025, the most expensive industry for the 14th consecutive year (as cited via HIPAA Compliant Hosting's 2026 compilation, checked Aug. 2026). https://hipaacomplianthosting.com/blog/healthcare-data-breach-statistics
    4. Medplum, GitHub repository and product documentation, checked Aug. 2026. Apache 2.0 license, FHIR R4 REST/GraphQL API, HIPAA-eligible, SOC 2 Type II, ONC-certified. https://github.com/medplum/medplum
    5. Oystehr & Ottehr Documentation, checked Aug. 2026. FHIR R4/R5 REST API, Zambda serverless functions, IAM/M2M auth. https://docs.oystehr.com/
    6. Welkin Health, product and security pages, checked Aug. 2026. SOC 2 Type II certification, attribute/role/geography-based access control. https://welkinhealth.com/
    7. Canvas Medical Developer Docs, "Lesson 1: Overview," updated Nov. 13, 2025. "37 resources (21 of which are writable)," 650+ real-time events. https://docs.canvasmedical.com/learn/overview/
    8. Healthie, Techstars/Greenhouse job postings, Feb. to Apr. 2026. "Over 2 billion API calls... more than 17 million patients." https://jobs.techstars.com/companies/healthie/
    9. Healthie Software Support, "FHIR API / HL7 and Healthie," checked Aug. 2026. Confirms the FHIR API is ONC-certified, built on Aidbox, Enterprise-only, production-environment-only, with a typical 4 to 6 week implementation. https://help.gethealthie.com/article/1013-hl7-fhir-standards
    10. Elation Health, Help Center, "Getting started with the Elation FHIR API," checked Aug. 2026. ONC (g)(10) certification, trusted-developer registration flow. https://help.elationhealth.com/
    11. Industry-cited range for IT capacity spent on legacy EHR maintenance (30 to 40%). Treat as a directional estimate rather than a precise, single-source statistic, and verify against your own environment before using it in a business case.
    Ready to start your headless EHR journey?
    Get in touch with our experts for a consultation
    Table of Contents
      Building on an EHR and need to move faster?
      Patient apps, care workflows, and interoperable data.