Epic FHIR API integration · United States

Epic FHIR API Integration Services

We connect health tech products to Epic's FHIR R4 APIs: the reads your features need, the write-back Epic actually supports, Bulk FHIR for population data and backend services that hold up under each health system's security review. Built against the Epic sandbox, activated site by site, monitored after go-live.

  • FHIR R4
  • US Core 6.1.0
  • USCDI v3
  • SMART v2 scopes
  • Backend Services
  • JWK Set URL
  • Bulk FHIR
  • HL7 v2 Bridges

One Epic API call carries four contracts
  1. 01Endpoint

    The health system's own FHIR base URL. Epic has no central endpoint.

  2. 02Identity

    Client ID, scopes and, for backend apps, a signed JWT checked against your JWK Set URL.

  3. 03Resource

    The Epic API, its supported search parameters and the US Core profile it returns.

  4. 04Behavior

    Pagination, write rules, throttling and the errors your product must survive.

The short answer

Epic FHIR API Integration Services, in Short

Epic FHIR API integration connects your product to the FHIR R4 APIs each Epic health system exposes. Nirmitee maps your features to specific Epic APIs, confirms which ones read and which ones write, registers the client on fhir.epic.com, builds the authorization, data mapping and error handling, and tests against the Epic sandbox before the first customer activates your client ID. Epic's USCDI APIs are read-only; write-back runs through a short list of dedicated create and update APIs, each with its own rules. We design around those rules from day one, so the integration that passes in the sandbox is the one that goes live at the hospital.

Who it is for
Digital health, AI, RPM, care management and payer technology companies whose customers run Epic, and health system teams connecting a new product.
What we build
Patient and clinician reads, supported write-back, backend services, Bulk FHIR export pipelines and the HL7 v2 feeds that fill the gaps FHIR leaves.
The outcome
A production integration activated at your first Epic customer, with a repeatable onboarding runbook for the next site.

Epic API catalog

Epic FHIR R4 APIs We Integrate, and What Each One Really Allows

Epic's public catalog lists 714 APIs, 636 of them FHIR. Each customer licenses and enables its own subset, so the specification names the exact Epic API, not just the FHIR resource.

API familyEpic APIsRead or writeWhat we design for
USCDI clinical dataPatient, Encounter, Condition, AllergyIntolerance, MedicationRequest, Observation (labs and vitals), DiagnosticReport, Immunization, Procedure, DocumentReferenceRead and search only. No USCDI-flagged Epic API is a create or update.Supported search parameters per resource, pagination, and change detection without _lastUpdated, which Epic does not support in R4.
Vital signsObservation.Create (Vital Signs) R4WriteAn Encounter FHIR ID on every reading, one reading per call, a LOINC that maps to exactly one flowsheet row, and no writes to closed encounters or future appointments.
Clinical notesDocumentReference.Create (Clinical Notes) R4WritePlain-text notes to open or closed encounters. Rich-text documents go through an HL7 v2 MDM interface instead.
Problems and allergiesCondition.Create (Problems), AllergyIntolerance.Create R4Write to a review queueEntries land in a holding area a clinician reconciles into the chart, so your product shows pending review rather than saved.
Patient registrationPatient.Create R4WriteMatch-or-create logic against identifiers, demographics and the EMPI. Backend and clinician scopes only.
Population dataBulk Data 1.0.1 Group $exportAsynchronous readGroup export only, no _since, one export per group per client every 24 hours by default, and files kept for 14 days.
Payer and prior authorizationCMS-0057-F incoming and outgoing APIs, MedicationRequest.Update and ServiceRequest.Update (Prior Auth)Read and writeDa Vinci CRD, DTR and PAS flows scoped with the payer side. Epic has published more than 50 APIs and playbooks for CMS-0057-F.

Catalog facts from fhir.epic.com Specifications, checked 25 September 2026. We confirm each API against the customer's Epic version and /metadata before architecture sign-off.

What we build

Epic FHIR API Integrations We Build

Each integration type carries different authorization, data and activation work. We scope it before the first estimate.

01

Patient and Clinician Data Reads

The clinical data behind your feature, mapped to your product model with source identifiers, status and dates preserved.

Patient · Encounter · Condition · Observation · MedicationRequest · DiagnosticReport · US Core 6.1.0 · USCDI v3

Epic SMART on FHIR app development →
02

Supported Write-back

Vitals, plain-text notes, problems, allergies and registrations filed through the Epic APIs built for them, with duplicate and rejection handling.

Observation.Create (Vital Signs) · DocumentReference.Create (Clinical Notes) · Condition.Create · Patient.Create

HL7 integration services →
03

Backend Services

Server-to-server access for sync jobs, analytics and AI pipelines, with key rotation and per-customer credentials.

SMART Backend Services · client_credentials · signed JWT (RS384) · JWK Set URL · separate prod and non-prod keys

FHIR integration services →
04

Bulk FHIR and Population Pipelines

Group exports for registries, quality programs and value-based care, landed in a warehouse with reconciliation.

Group/$export · _type · _typeFilter · includeAssociatedData · NDJSON

FHIR data platforms →
05

HL7 V2 Alongside FHIR

Real-time admissions, results, documents and scheduling that Epic delivers as HL7 v2 through Bridges, merged with your FHIR data.

ADT^A01 to A08 · ORU^R01 · MDM^T02 · SIU^S12 · Epic Bridges

Mirth Connect integration services →
06

Multi-site Onboarding and Monitoring

One codebase, many health systems: per-site configuration, activation checklists and alerts when a customer's endpoint or credentials change.

479 R4 endpoints in Epic's public directory · non-prod then prod activation · 12-hour license sync

Integration monitoring and support →

Buyer decisions

Epic FHIR API, HL7 V2, Bulk FHIR or Middleware: Which Fits Your Product

Most Epic integrations combine two of these. The choice follows the data freshness, volume and write path your feature needs.

OptionBest forWatch forWho owns the work
Epic FHIR R4 APIs (direct)On-demand patient and clinician reads, supported writes, app launchesNo _lastUpdated, write rules per API, the health system's review of every API you listYour team or ours, with per-site activation by the health system
HL7 v2 through Epic BridgesReal-time event feeds: admissions, results, orders, documents, schedulingInterfaces licensed per interface by the health system and built by its interface teamThe hospital interface team plus your listener and mapping
Bulk FHIR exportOne-time loads, monthly cohorts, registries around 1,000 patients or fewerGroup export only, no incremental _since, one export per group per day by defaultYour data team, with group setup by the health system
CDS HooksDecision support at patient-view, order-select and order-signCard latency inside the clinician workflow and unsigned-order suggestions onlyYour service, configured by the health system
Middleware or aggregatorMany EHRs behind one API, or a team without integration engineersCoverage of the exact Epic APIs and writes you need, platform fees and exit costThe platform vendor, or Interoply, our own integration platform

Planning a clinician-facing app on top of these APIs? See Epic SMART on FHIR app development. Budgeting the whole program? See Epic Integration Cost Planning.

Integration boundaries

Where Epic FHIR API Integration Ends and the Health System Begins

These dependencies sit with Epic or the health system. We name them in the plan and drive them from the first week.

Every health system is its own endpoint

Each Epic customer runs an independent instance and decides which apps connect. We collect the production FHIR base URL, Epic version and enabled APIs for every site.

The customer licenses the APIs

Epic licenses its USCDI FHIR APIs to each health system under an open.epic API Subscription Agreement, priced in tiers by the organization's size. Public and standards-based APIs cost app developers nothing. These are the health system's fees and we list them as a customer dependency.

Ready for Production is final

Once an app is marked Ready for Production, only redirect URIs and JWK Set URLs can change. We freeze the API list only when it matches production use, because every listed API is reviewed by each customer.

Backend apps need a JWK Set URL

Starting with the May 2026 Epic version, backend OAuth 2.0 apps must publish a JWK Set URL instead of a static public key, with separate URLs for production and non-production. From August 2026 customers may alternatively upload a static key.

Throughput is shared with clinicians

Epic publishes no per-second rate limit. Its developer guidelines ask apps to stay under 1% of operational database resources at peak hours and 5% off-peak, and to be able to throttle. We build the throttle in.

Customers upgrade on their own schedule

Epic ships quarterly versions in February, May, August and November, and customers often upgrade 3 to 12 months later. We check each API against the site's version, not the sandbox's.

Deliverables

Epic FHIR API Integration Deliverables

Once paid, everything below is yours and lives in your repository, along with all of your data. We keep our reusable tools and open-source parts.

01

API and scope matrix

Each product feature mapped to the Epic API, operation, scope and US Core profile it needs, with the customer licensing it depends on.

02

Client registration package

The fhir.epic.com app record, production and non-production client IDs, redirect URIs, JWK Set URLs and the API list justified line by line.

03

Integration code and tests

Authorization, API clients, retries and throttling with automated tests against the Epic sandbox and recorded fixtures for its weekly reset.

04

Data mapping specification

Resource-to-model mapping with terminology (LOINC, SNOMED CT, RxNorm, ICD-10-CM), identifiers and the handling for data Epic does not return.

05

Site activation runbook

The steps for each new health system: endpoint, client download, key provisioning, non-production validation and production cutover.

06

Monitoring and support handover

Alerts for token failures, 4xx and 5xx rates and stalled exports, plus the escalation path with each health system's integration team.

Delivery phases

Epic FHIR API Integration Timeline

Engineering milestones are ours to hit. The first production site adds the health system's security review, build queue and change window, which we track as named dependencies.

  1. 01

    Discovery and API feasibility

    Weeks 1 to 3

    Feature-to-API matrix, write-back feasibility, customer dependency list and a fixed scope for the build.

  2. 02

    Build against the Epic sandbox

    Weeks 3 to 10

    Working reads, writes and backend access against fhir.epic.com, with fixtures reseeded after the Sunday sandbox refresh.

  3. 03

    First customer activation

    Weeks 8 to 16, paced by the health system

    Client download, key provisioning, non-production validation, security review answers and production cutover.

  4. 04

    Next sites and operations

    After the first go-live

    A per-site checklist, monitoring and API change tracking as customers move to new Epic versions.

Cost drivers

What Drives Epic FHIR API Integration Cost

We give a fixed scope after discovery. These are the factors that move it.

Number of APIs and operations

A read-only feature on five USCDI APIs is a smaller build than one that also files vitals, notes and problems through separate write APIs.

Authorization model

Patient-facing apps, clinician apps and backend services each need their own flows, key management and customer review.

Number of health systems

Each site adds activation, credentials and validation. Reusable configuration keeps the second site smaller than the first.

Data volume and freshness

Bulk exports, polling without _lastUpdated and HL7 v2 feeds for real-time events each add pipeline and reconciliation work.

Mapping depth

Mapping into an existing product model with terminology normalization costs more than storing FHIR resources as they arrive.

Third-party fees

The health system's API subscription, any Epic Vendor Services membership and middleware fees are separate from our engineering and listed in the estimate.

Book a call ↗

Proof

Epic FHIR API Engineering You Can Check

Client names are withheld; each item is a real engagement or a public repository you can inspect.

Internal engineering · Epic and Oracle Health developer environments

One SMART on FHIR App, Epic and Oracle Health in One Session

Our multi-EHR SMART app runs discovery, PKCE and token exchange against both vendors from one code path, reads the chart and files a vital-sign Observation that returns 201 and reads back. It records what differs: Epic granted the scopes on the registration (we asked for openid fhirUser and received 84), Oracle Health granted only the intersection, and Oracle access tokens lasted about 570 seconds.

Open source · Public repository

Open-source Headless EHR on FHIR R4

A FHIR R4 server with SMART App Launch that passed 47 of 47 ONC (g)(10) SMART standalone patient tests in Inferno. It is the same authorization and launch contract Epic and Oracle Health implement.

View the repository on GitHub →

Open source · Public repositories

Da Vinci CRD, DTR and PAS Servers

Coverage Requirements Discovery over CDS Hooks, Documentation Templates and Rules, and Prior Authorization Support, tested with the Inferno kits. These are the flows behind Epic's CMS-0057-F payer APIs.

View the CRD server on GitHub →

Build · Working MVP

FHIR-native Provider Platform

Scheduling, charts, care plans and billing on a FHIR R4 server with no private database. Clinicians sign in through a PKCE OAuth 2.0 flow and an OAuth token exchange bridges the organization's single sign-on to the FHIR server.

Security

ISO 27001:2022 Certified, BAAs Signed

We are ISO 27001:2022 certified and sign Business Associate Agreements for work that touches patient data.

FAQ

Epic FHIR API Integration Questions

What Is Epic FHIR API Integration?

It is connecting your product to the FHIR R4 APIs an Epic health system exposes, so your software can read patient and clinician data and, where Epic supports it, write data back. The work covers app registration on fhir.epic.com, OAuth 2.0 authorization, the specific Epic APIs your features call, data mapping and activation at each customer.

Does Epic charge for FHIR API access?

Epic makes its public and standards-based APIs available to app developers at no cost through open.epic and fhir.epic.com. Health systems license the USCDI FHIR APIs under an open.epic API Subscription Agreement priced in tiers by organization size. Epic Vendor Services is an optional paid annual membership that adds testing tools, a private API catalog and support.

How Much Does Epic FHIR API Integration Cost?

Cost follows the number of Epic APIs and write operations, the authorization model, the number of health systems and how the data must be mapped. We give a fixed scope after a short discovery and list health-system fees and any Vendor Services membership separately from engineering.

How Long Does Epic FHIR API Integration Take?

A focused read integration is usually built and tested against the Epic sandbox in 6 to 10 weeks. The first production site then runs on the health system's timetable for security review, client activation and change windows, commonly several months. Later sites are faster because the code and runbook are reused.

Can we write data back to Epic through FHIR?

Yes, through specific APIs: Observation.Create for vital signs, DocumentReference.Create for plain-text clinical notes, Condition.Create and AllergyIntolerance.Create into a clinician review queue, and Patient.Create for registration. Each has its own rules, such as an Encounter reference and one reading per call for vitals. Anything outside that list goes through HL7 v2 or CDS Hooks.

How do we get an Epic FHIR endpoint for a customer?

Epic publishes customer R4 endpoints in its public directory, which listed 479 on 25 September 2026, but the production base URL is confirmed with the health system. Its staff download your client ID, you provision keys for backend and confidential clients, and the app is activated in non-production before production.

What changed for Epic backend apps in 2026?

From the May 2026 Epic version, backend OAuth 2.0 apps must use a JWK Set URL instead of a static public key, with different URLs for production and non-production. From August 2026 a customer may upload a static key instead. Key changes can take up to 12 hours to reach a health system, so rotation is planned rather than rushed.

Does Epic support Bulk FHIR and incremental exports?

Epic supports Bulk Data 1.0.1 Group export for R4 with _type, _typeFilter and includeAssociatedData. It does not support _since, allows one export per group per client every 24 hours by default and keeps files for 14 days. It suits one-time loads and monthly cohorts; ongoing warehouse sync needs a different design.

Where is Epic's API documentation?

The API catalog, specifications and tutorials are on fhir.epic.com, and open.epic.com covers HL7 v2, X12 and other interface specifications plus the customer endpoint directory. Vendor Services members also get a self-service private API catalog. We read the specification for every API we plan to call, including its scopes and write rules.

Do we need Epic Vendor Services or a Showroom listing to connect?

No. Epic states that no special relationship is required to develop or deploy an app. Vendor Services adds tooling and support. Showroom listings are optional; the Connection Hub tier needs your product live with at least one Epic customer and carries an annual listing fee.

Should we use FHIR or HL7 v2 with Epic?

Use FHIR for on-demand reads and the supported writes, and HL7 v2 through Epic Bridges for real-time events such as admissions, results and documents. Many products need both. We design the two paths to share identifiers and reconcile against each other.

Do you sign a BAA and how is PHI protected?

Yes. We sign Business Associate Agreements and are ISO 27001:2022 certified. Integrations keep PHI out of logs and support tickets, encrypt it in transit and at rest, and use per-customer credentials stored in a secrets manager.

Next step

Scope Your Epic FHIR API Integration

In 30 minutes we map your features to Epic APIs, flag the write-back and licensing questions and outline the path to your first Epic customer.

Define the next step

Which Epic Data Does Your Product Need?

Tell us the feature, the data it reads or writes and the health systems you are selling to. We reply with the Epic APIs involved and the next practical step.

  • Your workflow and target health systems
  • The data you read and write
  • What is built today and what is blocked

Please do not include patient data or credentials.

Please exclude patient data and credentials. We use these details to respond to your inquiry. Privacy policy

Thank you. Your inquiry has been received. Our team will review your requirements.

Epic, MyChart and Hyperspace are trademarks of Epic Systems Corporation.