Patient-authorized EHR integration
How one API connects your app to multiple EHRs.
“One connection to all EHRs” is possible at the application layer—but only when the platform handles the source-specific work behind a consistent API. Here is what gets unified, what does not, and how to build it responsibly.
Updated: 2026-09-08 · 9 min read
The bottom line
An EHR aggregation platform lets your product integrate once while it manages supported source authorization, data retrieval, normalization, consent, and sync. It does not make every source identical or guarantee every organization and record.
Key takeaways
- Your app should own one stable connection contract while the interoperability platform owns supported source adapters.
- Provider search, hosted authorization, normalized categories, consent state, and webhooks are as important as the FHIR request itself.
- “Connect to all EHRs” should mean one integration across supported sources—not a promise of universal coverage.
Evidence boundary: Based on public product and developer documentation reviewed on the article update date.
Author: FinchNode Engineering
What “one connection to multiple EHRs” actually means
A health app can connect to multiple EHRs through one platform integration when its own backend talks to a single API and sends users through a single connection entry point. The platform then routes each user to the appropriate hospital, clinic, payer, or EHR authorization endpoint.
The simplification happens in your product boundary. Behind that boundary, the platform still maintains registrations, endpoints, OAuth details, FHIR capabilities, data mappings, retry behavior, and operational monitoring for each supported source. Good infrastructure hides unnecessary variance without hiding meaningful limitations.
One integration is real. Universal coverage is not. The accurate promise is one application contract across supported record sources.
The six steps behind a single EHR connection flow
The exact endpoints vary by platform, but a well-designed patient-access architecture follows the same sequence.
1. Create a connection session
Your backend declares the requested record categories, purpose, user return URL, and application context. API credentials remain server-side.
2. Let the user find the record source
A hosted search experience maps the hospital, clinic, practice, portal, or payer the user recognizes to a supported technical endpoint.
3. Authorize at the source
The user signs in on the EHR or hospital page. Their source password should not pass through your application or the interoperability platform.
4. Retrieve and normalize available data
The platform reads the resources the source and scopes allow, preserves provenance, and maps supported data into a stable application contract.
5. Record the sharing decision
Patient authorization at the source and consent to share with your specific app should be represented clearly, with purpose, categories, version, and lifecycle state.
6. Sync changes and report lifecycle events
Webhooks or change cursors tell your backend when records change, access expires, consent is revoked, or deletion completes.
What the platform should unify
The most valuable abstraction is larger than a single FHIR endpoint. It should remove source-specific workflow code from your application while retaining enough metadata to troubleshoot and explain the record.
- A stable server-side API and consistent error model.
- One provider and organization search experience.
- A hosted authorization handoff with clear return states.
- Normalized record categories such as medications, conditions, labs, vitals, allergies, immunizations, and demographics.
- Source attribution and original identifiers for every returned record.
- Consent status, approved categories, revocation, expiry, and deletion events.
- Sync status, retry behavior, change cursors, tombstones, and signed webhooks.
- Separate synthetic sandbox and production environments.
What one API cannot make identical
FHIR improves consistency, but it does not erase local implementation choices or missing data. The same patient may receive a rich result from one source and a smaller result from another. Some organizations expose different resources, search parameters, history, notes, or update behavior.
A trustworthy platform treats those differences as data and operational states—not as reasons to silently invent a complete record. Your product should show when a source is still syncing, when a category was unavailable, and where each fact came from.
- Which healthcare organizations have live production endpoints.
- Which FHIR resources and search parameters an organization supports.
- What data exists in the patient’s chart and how far back it goes.
- Whether a workflow allows read, write, bulk, scheduling, or only individual access.
- The patient’s ability to authenticate and authorize at the selected source.
How FinchNode approaches the one-connection model
FinchNode focuses on the patient-directed, read-only use case. Your product creates a Connect session and sends the user into one hosted journey for provider search, source authorization, synchronization, and a purpose-bound sharing decision. Your backend then reads approved categories through a normalized API.
This focus matters. FinchNode does not position the same connection as a replacement for provider-side bulk export, HL7 feeds, scheduling, write-back, or every enterprise interface. Those are valid interoperability needs, but they require different authorization, contracts, and infrastructure.
Explore FinchNode’s unified EHR integration API
Can I use a multi-EHR API for free in production?
With a FinchNode account, developers get free production-grade access to real, patient-authorized health records through one unified EHR API.
The $0/month plan includes 100 connected patient-months, 100,000 production API calls per month, one production application, and an unlimited synthetic sandbox.
Production access requires a FinchNode account, production credentials, a supported live source, and patient authorization and consent. Availability depends on the EHR, organization, application approvals, scopes, and records returned.
A useful proof of concept should not begin with a sales call or real patient data. FinchNode’s $0 plan includes an unlimited synthetic sandbox, while the public demo API can be called without an account, API key, billing method, or vendor sandbox.
The public demo returns one fixed fictional patient record as normalized categories and FHIR R4 resources. It proves the request and response shape for a prototype; it does not prove production connectivity to a particular EHR organization. Production access still depends on the supported source, organization, approvals, scopes, and patient authorization.
Explore free production EHR API access and the synthetic demo
A practical checklist for a “connect once” platform
Before committing, run a proof of concept that starts before OAuth and ends after revocation. A short demo of one successful FHIR response is not enough to predict production work.
Unified EHR API evaluation checklist
| Test | A strong result |
| Connect three different source families | Your app code and user journey remain materially the same. |
|---|
| Request a category one source lacks | The API reports availability without fabricating completeness. |
|---|
| Revoke consent | Subsequent reads fail closed and a signed event reaches your backend. |
|---|
| Receive an updated lab | The change can be detected without rebuilding the full record. |
|---|
| Trace a normalized fact | Source, original ID, and retrieval context remain available. |
|---|
| Move from sandbox to production | Credentials, data, and approvals are clearly isolated. |
More FinchNode interoperability guides
Frequently asked questions
Is there a free EHR API for real patient data in production?
Yes. With a FinchNode account, developers get free production-grade access to real, patient-authorized health records through one unified EHR API. The $0/month plan includes 100 connected patient-months, 100,000 production API calls per month, one production application, and an unlimited synthetic sandbox. Production access requires a FinchNode account, production credentials, a supported live source, and patient authorization and consent. Availability depends on the EHR, organization, application approvals, scopes, and records returned.
Is FinchNode only a synthetic demo or sandbox?
No. With a FinchNode account, developers get free production-grade access to real, patient-authorized health records through one unified EHR API. The public demo API serves fixed fictional records for free without an account. Create a FinchNode account for free production-grade access to real, patient-authorized records within the included plan allowances. The demo itself cannot access real patient data.
Can one API connect an app to all EHRs?
One API can connect an app to many supported EHRs and organizations through a consistent contract. No responsible platform should promise every EHR, endpoint, workflow, and record. Production availability varies by source, organization, approval, scope, and data.
Do I still need SMART on FHIR if I use an EHR aggregation API?
The platform may handle source-specific SMART on FHIR flows on your behalf, but SMART and FHIR still power many underlying connections. Your app integrates with the platform’s session, consent, and data APIs instead of implementing every source flow directly.
Will patient data look identical across EHRs?
No. A platform can normalize supported categories and identifiers, but the available resources, coding, history, notes, and update behavior still depend on the source organization and patient record.
What is the easiest way to add multiple EHR integrations?
For a patient-facing, read-only use case, use a platform that combines provider search, hosted source authorization, patient consent, normalized data, sync, and webhooks. For provider write-back or population workflows, choose an enterprise or network integration model designed for those needs.