ICANotes FHIR API  ·  For Integration Partners

Build on ICANotes: a FHIR API for integration partners

Connect your scheduling platform, patient portal, referral network, or telehealth product directly to ICANotes, the behavioral health EHR trusted by practices across the country.

or call 866-847-3590

Behavioral health practices increasingly rely on best-of-breed tools alongside their EHR: online scheduling widgets, patient engagement apps, referral networks, telehealth platforms. Those tools need to talk to the system where the clinical and scheduling data actually lives. The ICANotes FHIR API gives approved integration partners a standards-based, secure way to do exactly that: look up providers and locations, search and register patients, check real-time availability, and book appointments, without asking practices to duplicate data entry across systems.

What it is

What is the ICANotes FHIR API?

A partner-facing interface that exposes ICANotes clinical practice data using the HL7 FHIR R4 standard. It is built for server-to-server integrations, authenticated with OAuth2 client credentials, so your systems can exchange data with ICANotes programmatically, without routing through an end-user login.

Server-to-server, by design

Built for system integrations, not embedded in a partner's end-user login flow.

FHIR R4 wire format

Responses follow standard FHIR Bundle and resource conventions, so your existing FHIR client libraries work without custom parsing.

Scoped, multi-tenant access

Your partner credential sees only the practices explicitly linked to your account. There is no cross-partner data exposure.

Capabilities

What you can build with the ICANotes API

Six integration scenarios cover most of what partners need to connect a scheduling, engagement, or referral product to an ICANotes practice.

1

Provider Directory & Staff Lookup

Search and retrieve the complete roster of practitioners within your partnered practices: names, NPI numbers, specialties, credentials, and location assignments.

Use it to
  • Populate a "find a provider" experience in a patient portal or scheduling widget
  • Sync the provider directory into an external system (EHR, referral network, directory listing)
  • Filter providers by specialty, location, or active status
2

Facility & Location Discovery

Search physical and virtual (telehealth) practice locations, with addresses, hours of operation, services offered, and a telehealth flag.

Use it to
  • Show patients where they can be seen, in person or via telehealth
  • Filter locations by geography (city, state, zip)
  • Identify which locations offer a specific service
3

Patient Search & Registration

Search existing patients by demographics (name, date of birth, gender, chart number, phone, email) and create new patient records.

Use it to
  • Check whether a patient already exists before creating a new one in an intake workflow
  • Pre-register new patients from an external portal or intake form
  • Rely on built-in duplicate detection: the API returns candidate records when a likely duplicate is submitted, instead of silently creating a second chart
4

Real-Time Appointment Availability

Query available time slots for a specific provider, filtered by date range, location, service or visit type, and appointment type, computed in real time from the provider's configured availability.

Use it to
  • Build a "pick a time" calendar in an online scheduling widget
  • Show open appointments for a particular visit reason
  • Filter for telehealth-only availability
5

Appointment Booking

Book an appointment against a specific available slot. Booking is idempotent, so retries are safe and will not create duplicate appointments.

Use it to
  • Power end-to-end self-service scheduling: find provider, pick slot, book
  • Integrate with third-party scheduling platforms
  • Support booking from mobile apps or kiosks, where network retries are common
6

Reference Data & Terminology

Retrieve standardized code lists for visit reasons, appointment statuses, cancellation reasons, administrative genders, gender identities, telehealth place-of-service codes, and appointment types.

Use it to
  • Populate dropdowns and picker controls with the correct option set
  • Keep your system's terminology in sync with ICANotes
Partners

Who integrates with ICANotes

The API is built for the kinds of partners behavioral health practices already work with.

Patient scheduling & online booking platforms
Patient portal & engagement platforms
Referral networks & provider-directory services
Telehealth platforms coordinating with in-person care
EHR interoperability & health information exchange (HIE) partners
Practice management, intake & kiosk solutions
Built for integrators

Built with integrators in mind

A few characteristics of the API matter most once you are actually building against it.

Multi-tenant by design
A single API credential sees only the practices explicitly linked to your partner account, with no risk of cross-partner data exposure.
FHIR-standard wire format
Responses follow FHIR R4 Bundle and resource conventions, so existing FHIR client libraries work out of the box.
Paginated search
All list endpoints support _count / _offset pagination with next and previous links in the response.
Machine-readable errors
Every error returns a FHIR OperationOutcome with issue codes, not an opaque error string.
Idempotent booking
Appointment creation supports safe retries, so unreliable networks (mobile apps, kiosks) do not create duplicate bookings.
A growing write surface
Today's API is read-heavy, with Patient create and Appointment booking as the current write operations. Additional write operations (patient updates, appointment lifecycle management) are documented and in development.
How it works

A typical integration flow

Most partner integrations follow the same five steps.

1

Discover

Search providers, locations, and visit reasons to populate your UI.

2

Identify

Search for an existing patient, or create a new one.

3

Find availability

Query open slots for the chosen provider, location, and visit type.

4

Book

Submit an appointment referencing the chosen slot and patient.

5

Confirm

Receive the booked appointment's ID and status back.

FAQ

Questions from API partners

Is the ICANotes API standards-based?
Yes. The API exposes ICANotes practice data using the HL7 FHIR R4 standard, so responses follow standard Bundle and resource conventions. If your team already works with FHIR client libraries, they will work against this API without custom parsing.
How is my data kept separate from other partners' data?
The API is multi-tenant by design. Your partner credential only has access to the practices explicitly linked to your account, with no cross-partner data exposure.
What can partners actually search or retrieve through the API?
Six core scenarios: provider directory and staff lookup, facility and location discovery, patient search and registration, real-time appointment availability, appointment booking, and reference data and terminology (visit reasons, appointment types, and similar code lists). See "What you can build" above for details on each.
Can partners book appointments through the API, or just view availability?
Both. You can query real-time availability for a provider, location, and visit type, then book directly against a specific open slot. Booking is idempotent, so a retried request will not create a duplicate appointment.
What happens if I try to register a patient who already exists?
The API includes built-in duplicate detection. If a new patient record looks like a likely match to an existing one, the API returns the matched candidate record(s) instead of silently creating a duplicate chart.
Is write access available beyond patient registration and appointment booking?
Not yet. The current API is read-heavy: Patient create and Appointment booking are the write operations available today. Additional write operations, including patient updates and appointment lifecycle management, are documented and in development.
Is ICANotes itself HIPAA-compliant?
Yes. ICANotes is a HIPAA-compliant EHR platform. Partner integrations should still be built and configured in line with your own HIPAA obligations as a business associate.
Get started

Request API access

Tell us about your platform and what you want to build. Our integrations team will follow up.

Ready to build

Ready to build on ICANotes?

If your platform needs to talk to the EHR where behavioral health practices actually keep their scheduling and patient data, the ICANotes FHIR API is built to make that connection straightforward: standards-based, scoped to your practices, and designed for real integration work, not screen-scraping.

Questions? Call 866-847-3590