contact us

What is Epic on FHIR Integration | Introductory Guide 101

Get the inside scoop on the latest healthcare trends and receive sneak peeks at new updates, exclusive content, and helpful tips.

Posted in EPIC

Last Updated | April 8, 2026

Epic on FHIR is a platform that consists of a set of tools from Epic Systems. It allows developers to build apps and integrations that interpret, write, and securely exchange patient data with Epic EHR systems (powering 42.3% of U.S. acute care hospitals) using standardized FHIR APIs. It supports SMART on FHIR for app launching and OAuth 2.0 for security. If you’re building anything that involves clinical data, Epic on FHIR integration is the layer you will have to integrate with, a standard path for accessing, exchanging, and using healthcare data inside real clinical settings.

What is Epic on FHIR Integration | Introductory Guide 101

Working with Epic on FHIR isn’t straightforward. The gap between sandbox demos and production deployments is where most teams struggle. Authentication flows get complex, data isn’t always consistent, and operational constraints start to surface. This guide breaks down how Epic on FHIR actually works in practice. It covers APIs, SMART on FHIR auth, real-world limitations, costs, and the challenges teams face when moving from initial integration to scalable, production-ready systems.

What FHIR Actually Is 

FHIR stands for Fast Healthcare Interoperability Resources. It’s an HL7 standard that does two things:

1. Defines what healthcare data objects “resources” should look like. 

A Patient resource has specific fields for name, date of birth, gender, address, and identifiers. A Condition resource has fields for diagnosis, onset date, clinical status, and the patient it belongs to. Every resource type follows a defined schema.

2. Defines how those resources get exchanged. 

FHIR integration uses standard REST conventions. You read a resource with a GET. You search using query parameters. You create with a POST. Responses come back as JSON. The whole thing feels like any other modern API because, structurally, it is.

The current version is FHIR R4. That’s what you should be building against for anything new. Earlier versions (DSTU2 and STU3) are still out there in older Epic instances, so it’s worth being aware of them, but R4 is where Epic’s most complete and up-to-date coverage lives.

Data Integration Gaps Before FHIR

For decades, healthcare data exchange ran on HL7 integration, particularly v2, a messaging protocol built in 1987; it barely worked. The problem was that every vendor implemented it a little differently, so two systems that both claimed to be “HL7 compliant” still needed custom translation logic to talk to each other. 

Building an integration with one hospital system didn’t mean your integration would work at the next one. Every new connection was essentially starting from scratch. 

Add to that the fact that EHR vendors had zero business incentive to make their data easy to move. Switching costs were high. Interoperability, for a long time, was the customer’s problem. That started changing with the 21st Century Cures Act and, eventually, with regulations making “information blocking” a compliance violation with real financial consequences.

FHIR is the standard that emerged from all of that, and it’s one that developers actually want to use because it’s built on the same patterns they already know: REST APIs, JSON, OAuth 2.0. If your team builds web services, you can pick up FHIR without a six-month crash course in healthcare IT.

What is Epic on FHIR? 

Epic on FHIR is Epic’s developer platform for accessing patient and clinical data through FHIR-based APIs. It’s free to sign up, and it’s designed for third-party developers building apps that connect to Epic’s systems.

The platform gives you three things: 

  • A sandbox environment: The Epic on FHIR sandbox, with realistic fake patient records you can query freely during development. 
  • Client registration: This is how you get your app an identity so it can authenticate against Epic’s APIs. 
  • The Epic on FHIR API documentation: a comprehensive API catalog that lists every FHIR resource Epic supports, organized by resource type, FHIR version, and supported operations (Read, Search, Create, Update).

Epic became one of the earliest and most committed supporters of FHIR. They participate in the HL7 standards development process and are members of both the Argonaut Project and the Da Vinci Project, industry coalitions specifically working to accelerate FHIR adoption. The practical result of that is an API catalog that’s genuinely broad and a platform that’s mature enough to build production software on.

Build Scalable Epic on FHIR Solutions That Are Production Ready

How the API Works

Every patient in Epic has a unique FHIR ID. A UUID that anchors all their data across API calls. Know that ID, and you can pull any resource the patient has, provided your app has the right permissions.

A basic patient lookup:

GET /api/FHIR/R4/Patient/{FHIR_ID}

Authorization: Bearer {access_token}

That returns a JSON object with the patient’s name, date of birth, sex, address, and identifiers.

From there, you can pull any other resource using the FHIR ID as a search parameter:

GET /api/FHIR/R4/Condition?patient={FHIR_ID}&clinical-status=active

Active diagnoses. Each Condition resource includes a diagnosis code, description, onset date, and status.

GET /api/FHIR/R4/MedicationRequest?patient={FHIR_ID}

Prescriptions — drug name, dosage, route, frequency, prescribing provider, status.

GET /api/FHIR/R4/Observation?patient={FHIR_ID}&category=laboratory

Lab results, with test name, result value, units, reference ranges, and result date.

GET /api/FHIR/R4/Goal?patient={FHIR_ID}

Patient health goals tied to care plans — description, target date, lifecycle status.

The pattern is consistent, which makes the API significantly more predictable to build against than older healthcare interfaces, where each endpoint worked differently.

SMART on FHIR: The Authorization Layer 

The API handles the data. Authentication is handled through SMART on FHIR, and this is the piece most teams underestimate before they start building.

SMART on FHIR is an authorization framework layered on top of OAuth 2.0. “SMART” stands for Substitutable Medical Applications, Reusable Technologies. The idea is that an app built to the SMART on FHIR spec can plug into any EHR that supports it. 

Meaning, smart on FHIR apps Epic users build don’t need to be completely rewritten for every hospital system they connect to.

Epic integration with Smart on FHIR works through two main patterns:

Patient-facing and EHR-embedded Apps 

  • They use the standard OAuth authorization code flow. Your app redirects the user to Epic’s authorization server. 
  • The user authenticates with their Epic credentials (their MyChart account, typically). Epic asks them to grant your app access to specific data types. 
  • If they agree, your app gets a scoped access token. 
  • The keyword here is “scoped”; the token only grants access to the specific resource types the user consented to, and only for that patient.

Epic Smart on FHIR also supports something called “EHR Launch,” where your app gets launched directly from inside the Epic EHR interface by a clinician. 

In this flow, Epic passes context to your app (the current patient, the current encounter, the currently logged-in user), so your app can open pre-loaded with the right information without the clinician having to search for anything. This is powerful for clinical workflow tools.

Backend Service Apps 

Analytics platforms, population health tools, and server-to-server integrations use a different authentication flow with no user interaction. 

  • The server generates a JWT (JSON Web Token) signed with your private key.
  • It then sends it to Epic’s token endpoint and gets back an access token. Epic verifies the JWT against your registered public key. 

This is the right pattern for any system that needs to access data across a patient population rather than on behalf of an individual user.

Access tokens are short-lived, typically for an hour. For user-facing apps, you’ll use refresh tokens to maintain sessions. For backend services, you re-authenticate using your JWT when the token expires.

Epic on FHIR support is not uniform across all resource types. Some resources are only accessible in patient-facing contexts. Others are only available to apps launched from within the EHR by a clinical user. Read the scope requirements on each resource spec in the epic on FHIR API documentation before you assume something is accessible.

The Epic on FHIR Sandbox

The sandbox includes a set of fictional test patients with fully populated medical histories: 

  • Active conditions
  • Current medications
  • Past procedures
  • Lab results
  • Upcoming appointments

Each one has a real FHIR ID that you can use to query the actual API endpoints, which behave exactly as they will in production. 

Your parsing logic, your data models, your API client code, all of it can be validated here before you write a line of production infrastructure.

A lot of teams skip the sandbox in the early stages and design their entire data model based on what they assume the API will return. Then they finally query real data and discover the actual response structure is different from what they imagined. 

Use the sandbox first. It saves you from building on wrong assumptions, and those wrong assumptions have a way of showing up at the worst possible time, usually right before a pilot.

EPIC on FHIR Data Flow

EPIC on FHIR Data Flow

Solutions You Can Build With Epic on FHIR

Patient-Facing Apps

  • Mobile or web apps that let patients view their health records, track medications, manage chronic conditions, or prepare for appointments. 
  • Smart on FHIR Epic supports the EHR Launch context; these apps can also be embedded directly inside MyChart (Epic’s patient portal).
  • This gives you distribution to a large installed base without having to build your own login and identity management from scratch.

Clinical Decision Support 

  • Tools that surface relevant patient information at the point of care, drug interaction alerts, care gap notifications, and risk scores. 
  • Epic supports CDS Hooks, a standard that lets your service receive a real-time hook from the EHR at specific workflow moments (like when a medication is being ordered) and return recommendation cards back to the clinician. 
  • Combined with smart on FHIR apps epic teams can build rich, workflow-integrated clinical tools without disrupting the clinician’s existing workflow.

Population Health Analytics

  • Epic’s Bulk Data API lets you export FHIR data for an entire patient population rather than querying one patient at a time. 
  • Use it to identify patients overdue for preventive screenings, diabetic patients without a recent HbA1c, or recently discharged patients at elevated readmission risk. 
  • This is where FHIR stops being about individual records and starts driving operational decisions at scale.

Care Coordination Platforms

  • Tools that track care plan progress, manage referrals, surface task lists for care managers, and coordinate care across a multidisciplinary team. 
  • The CareTeam, CarePlan, Goal, and Task resources are specifically built for this kind of use case.

Revenue Cycle & Prior Authorization Tools

  • Using the Coverage, ExplanationOfBenefit, and ServiceRequest (Prior Auth) resources to reduce manual back-and-forth between providers and payers.

Clinical Trial Recruitment

  • FHIR-based cohort identification,  using real clinical data to screen patients against trial eligibility criteria. Much faster and more accurate than manual chart review.

Epic Showroom & Connection Hub

Epic App Orchard, now referred to as the Showroom and Connection Hub, is Epic’s marketplace and certification program for third-party apps. It’s the channel through which Epic customers discover, evaluate, and adopt third-party applications that connect to their Epic instance.

To be listed on Epic Showroom, your app goes through a review process that includes security assessment, integration validation, and confirmation that it meets Epic’s technical and compliance requirements. 

Being listed on Epic Showroom significantly reduces your sales friction with health systems. Their Epic administrators and IT teams can see your app is already validated, understand its data access requirements, and approve it for their instance without starting from scratch on technical due diligence.

Launch EPIC integrated healthcare apps

Epic on FHIR API Documentation: Main Resources

To build a functional integration, developers must treat the Epic on FHIR API documentation as their primary source of truth. 

It is more than just a list of endpoints; it is a complex catalog that defines exactly how clinical data is mapped from Epic’s proprietary database into standardized FHIR resources. Within the documentation, you will find specific requirements for search parameters, mandatory “Must Support” fields, and the required OAuth scopes for every resource version. 

Understanding these specs early is critical because Epic’s implementation of FHIR R4 often includes specific extensions or constraints that differ from the base HL7 standard.

Below are the most critical resources defined in the documentation that anchor the majority of clinical applications:

  • Patient: Name, DOB, gender, contact info, identifiers. Your anchor for everything.
  • Condition: Diagnoses, problem list, health concerns. Multiple subtypes: Encounter Diagnosis, Problems, Medical History, Reason for Visit.
  • Observation: The richest resource type. Covers lab results, vital signs, social history, smoking status, and genomics.
  • MedicationRequest: Prescriptions and pharmacy fill status. Useful for medication adherence use cases.
  • AllergyIntolerance: Documented allergies with reaction type, severity, and current status.
  • BulkData: Asynchronous population-level export. Essential for any analytics or population health use case.

The Cost to Build on Epic’s Platform

Development Costs

  • A basic SMART on FHIR app, one that reads a limited set of patient data and presents it in a consumer-facing interface, can start somewhere in the $25,000 to $40,000 range. 
  • Once you add complex clinical workflows, multiple resource types, AI-driven features, or multi-system integrations, you’re looking at $70,000 and upward. 
  • Apps with deep EHR integration, real-time CDS Hooks, and population health capabilities are often in the six-figure range.

Epic Integration Costs 

  • Epic integration cost is usually in the range of $15,000 to $20,000 just to set up a basic production interface before you touch real patient data. 
  • Each round of production validation testing can cost $10,000 or more, and if your app doesn’t pass on the first submission, you go through the cycle again.

Ongoing Maintenance

  • Epic releases updates, the FHIR standard evolves, and health systems regularly upgrade their Epic versions, which can affect your integration. 
  • Budget $50,000 to $200,000 annually for ongoing workflow enhancements, security updates, and integration maintenance, depending on your app’s complexity.

Epic Showroom Listing 

  • $1,900 per year for the Vendor Services account.

Compliance

HIPAA security assessments, penetration testing, and audit readiness add $25,000 to $75,000 per year in direct costs, more for larger organizations.

Epic Smart on FHIR Support: Practical Considerations

A few things that don’t get enough attention in official documentation:

1. The sandbox is not production access.

Getting into the sandbox is easy, but getting a real health system to approve your app for their Epic instance is a separate process. It has its own timeline, IT and compliance reviews, and a lot of back-and-forth. Start that conversation early, before your app is finished, not after.

2. Scopes are health-system-specific. 

Your app needs to request the correct OAuth scopes. And each health system controls which scopes they’ll approve for which apps. Don’t assume that because a resource exists in the API catalog, you automatically have access to it in production.

3. API versions vary across Epic customers. 

Not all health systems are on the latest Epic version. Some may still be running STU3 APIs for certain resources. Build version detection into your client if you’re targeting a broad market.

4. Bulk Data is async by design. 

It’s not a synchronous request-response. You kick off a job, wait for it to complete (can be minutes or hours, depending on population size), then download the output files. Design your pipeline to handle this properly.

5. Authentication in production is more involved than in the sandbox. 

In the sandbox, generating a bearer token is a few clicks. In production, you’re managing RSA key pairs, JWT signing, token rotation, and error handling. Build authentication properly from the beginning; retrofitting it later is painful.

connect fitness and mental health apps to EPIC

Getting Started with Epic on FHIR

Step 1: Sign up at fhir.epic.com. Free. Immediate access to the sandbox and API documentation.

Step 2: Browse the API Specifications tab. Find the resources relevant to what you’re building. Read the endpoint structure, required parameters, supported search filters, and scope requirements.

Step 3: Pull test patient FHIR IDs from the Epic sandbox documentation. Start making real API calls.

Step 4: Use an HTTP client (Postman, Insomnia, whatever you prefer). Generate a sandbox bearer token and make your first Patient. Read call. Then pull a few more resource types.

Step 5: Register your application in the portal. Configure your OAuth credentials. For backend services, generate your RSA key pair and register your public key.

Step 6: Work through the OAuth flows. Epic’s OAuth 2.0 tutorial in the documentation section is comprehensive and worth reading end-to-end for your specific app type.

Step 7: If you’re targeting Showroom, review their submission requirements early. Understand what the review process checks for and make sure your security posture is solid before you submit.

Step 8: Talk to your target health system. Production access requires their approval. Start that conversation before you’re done building.

Closing Note 

The true measure of success when it comes to Epic on FHIR isn’t just establishing a connection; it’s navigating the operational realities of the clinical environment. Epic on FHIR is not a developer feature but the interoperability backbone for the modern healthcare system. 

While the technical barrier to entry has lowered, thanks to RESTful patterns and the robust Epic Sandbox, the strategic barrier remains high. Building a production-ready system requires a “production-first” mindset that accounts for:

  • Workflow Symbiosis: Moving beyond data retrieval to active participation in the clinician’s day-to-day through tools like EHR Launch and CDS Hooks.
  • The “Last Mile” of Security: Transitioning from simple sandbox tokens to rigorous RSA key management and OAuth 2.0 flows that satisfy hospital compliance officers.
  • Version Resiliency: Engineering your application to handle the “fragmented” reality of different hospital systems running various versions of the FHIR standard (R4 vs. STU3).

Get Started With Epic on FHIR Solution Development with Folio3 Digital Health 

Whether you are just beginning to explore Epic on FHIR solutions or looking for someone to handle integration, having the right expertise, Folio3 Digital Health, will help you. Our EPIC integration services can help you assess your implementation timeline, avoid costly configuration mistakes, and keep your interfaces running smoothly as your organization grows and evolves.

10 Signs Your Hospital Is Ready for Epic Implementation

Frequently Asked Questions

What is Epic on FHIR, and who is it for? 

Epic on FHIR is Epic’s developer platform for building applications that access patient and clinical data through FHIR-based APIs. It’s designed for software developers, digital health companies, health IT teams, and enterprise organizations that need to integrate with Epic EHR systems. It’s free to use for development and testing, and it covers everything from API documentation to sandbox environments and client registration.

What is SMART on FHIR Epic, and how does it work? 

SMART on FHIR is an authorization framework built on top of OAuth 2.0 that allows apps to securely access EHR data. When you’re doing epic integration with Smart on FHIR, your app uses standardized OAuth flows to request patient data with the specific scopes it needs. Epic Smart on FHIR support covers both patient-facing apps (where the patient authorizes data access) and EHR-embedded apps (where the app launches from inside Epic’s interface in the context of a specific patient and clinician). This means smart on FHIR apps epic teams build can work inside clinical workflows without requiring separate logins or duplicate data entry.

What is the cost of building a custom smart on FHIR app epic integration? 

It varies quite a bit based on scope and complexity. A basic SMART on FHIR app that reads limited patient data starts somewhere in the $25,000 to $40,000 range. More complex apps with deep clinical integrations, CDS Hooks, population health features, or AI capabilities can reach $70,000 to well over $100,000 in development costs alone. On top of that, Epic-specific production setup costs around $15,000 to $20,000 before you touch real patient data, each validation testing round can add $10,000 or more, and ongoing maintenance runs $50,000 to $200,000 annually. Using middleware solutions or pre-built SMART on FHIR connectors instead of building raw integrations can reduce development cost and timeline significantly.

What is the Epic on FHIR sandbox, and how to use it? 

The epic on FHIR sandbox is a free testing environment with fictional but realistic patient records. You can query real FHIR API endpoints against these test patients without needing a live health system to sponsor your access. It’s where you should be doing all your development and testing before you ever touch production data. Epic provides test patient FHIR IDs in their documentation, and you can generate sandbox bearer tokens directly from the portal. Start here before you design your data models or commit to an integration architecture.

What ongoing support does Epic provide for SMART on FHIR developers? 

Epic smart on FHIR support is available through the Epic on FHIR developer portal, which includes full API documentation, OAuth tutorials, sandbox access, and a developer forum. For production integrations, Epic also provides a technical review process and testing support through the Connection Hub. Keep in mind that Epic releases regular updates to its platform, and changes can occasionally affect API behavior. Subscribing to Epic’s developer communications and staying current with the FHIR R4 spec is part of maintaining a healthy integration over time.

What are the common use cases for Smart on FHIR apps Epic?

The most effective smart on FHIR apps Epic supports fall into two categories: 

  • Patient-facing 
  • Provider-facing

Patient-facing apps allow users to securely sync their personal health data with mobile wellness tools. Provider-facing apps use the “EHR Launch” flow to embed directly within the Epic Hyperspace or Hyperdrive interface. This allows clinicians to access specialized tools, such as AI-driven risk calculators or genomic data visualizers, without leaving the patient’s chart, ensuring the app functions as a native part of the clinical workflow.

What is the technical workflow for an Epic integration with Smart on FHIR? 

An epic integration with Smart on FHIR relies on a standardized authorization handshake. After registering your client ID in the Epic portal, your app initiates an OAuth 2.0 flow. For user-facing apps, Epic authenticates the user and provides a scoped access token. For backend services (server-to-server), the integration uses Asymmetric JWT authentication, where your server signs a token with a private key that Epic validates against a registered public key. This ensures secure, HIPAA-compliant data access without manual user intervention for every request.

How to access Epic Smart on FHIR support

Developers can access Epic Smart on FHIR support through the official Epic on FHIR Developer Portal, which provides sandboxes, testing tools, and community forums. For teams moving toward production, support is transitioned through the Epic Showroom and Connection Hub teams. These entities provide the necessary technical reviews and security audits required to move an app from a “sandbox” environment to a live clinical setting. Staying updated via Epic’s developer newsletters is critical, as API availability and security requirements evolve with each quarterly Epic software release.

About the Author

Khowaja Saad

Khowaja Saad

Saad specializes in leveraging healthcare technology to enhance patient outcomes and streamline operations. With a background in healthcare software development, Saad has extensive experience implementing population health management platforms, data integration, and big data analytics for healthcare organizations. At Folio3 Digital Health, they collaborate with cross-functional teams to develop innovative digital health solutions that are compliant with HL7 and HIPAA standards, helping healthcare providers optimize patient care and reduce costs.

Gather Patient Vitals and Clinical Data Real Time

Folio3 integrates diverse IoT devices into your healthcare practice and ensure their interoperability with your existing healthcare systems.

Get In Touch