EHR IntegrationBehavioral HealthHealthcare Interoperability

Behavioral Health EHR APIs: Healthie, Tebra, Kipu + 7 (2026)

November 5, 202624 min readUpdated Nov 9, 2026
Written by
Jitendra Choudhary
Jitendra Choudhary

CTO & Co-Founder

CTO & Co-Founder at Nirmitee.io. Architects healthcare integrations across FHIR, SMART on FHIR, ABDM and NHCX, writing from production experience taking hospital software from sandbox to go-live.

Behavioral Health EHR APIs: Healthie, Tebra, Kipu + 7 (2026)

Behavioral health EHR integration is harder than general EHR integration because most behavioral health EHRs offer little or no open API, and the ones that do are usually read-only. We checked ten vendors' own documentation and the federal list of certified health software on November 9, 2026. Three of the ten publish no public API at all. Every certified FHIR API we found is read-only. Only Healthie, Tebra and Kipu document a way for an outside product to write data back. On top of that, therapy notes and substance use records carry their own privacy rules, so even a working API does not mean you may move every record.

This guide is for CTOs and product leads at measurement-based care, AI scribe, telepsychiatry, therapy marketplace, care coordination and behavioral health billing companies. It compares SimplePractice, Valant, Kipu, Netsmart myAvatar, Qualifacts (CareLogic, Credible and InSync), Healthie, TherapyNotes, Tebra, ICANotes and Osmind on what you can read, what you can write, how you get access and what it costs. It then covers psychotherapy notes, 42 CFR Part 2 for engineers, what to do when there is no API, the edge cases, testing, and what the real screens look like. Vendor facts come from each vendor's own pages. Certification status comes from the federal Certified Health IT Product List. Where a point comes from community discussion, we say so.

If you need a team to scope and build a behavioral health integration, see our behavioral health EHR integration services. If SimplePractice is your only target, our SimplePractice integration guide goes deeper on that one vendor.

Ten behavioral health EHRs and what each offers an outside product.

The short answer: what you can and cannot do

You can read patient data from Netsmart myAvatar, all three Qualifacts products, Healthie, Tebra and ICANotes partners through FHIR R4 (the standard web API for health data). You can write data through Healthie's GraphQL API, Tebra's SOAP API, Kipu's REST API and, for patient create and booking only, ICANotes' partner API. You cannot get a public API from SimplePractice, TherapyNotes or Osmind. Valant sells API access as a feature but publishes no documentation. Most write routes need a paid plan, a partner agreement or the practice's approval.

Jump to your situation: choosing which vendors to support first, see "The ten vendors at a glance". Writing notes back, see "Psychotherapy notes: what an integration must never move". Handling substance use records, see "42 CFR Part 2 for engineers". Vendor has no API, see "What to do when there is no API".

Who needs a behavioral health EHR integration? 10 use cases

Any product that has to read from, write to, or stay in step with the record a therapist, psychiatrist or treatment program keeps needs one. These are the cases we see most.

Use caseWhat it reads or writesHardest part
Measurement-based care platformsSends PHQ-9, GAD-7 and other scores into the chart, and reads diagnosesFew EHRs accept assessment data through an API. Certified FHIR APIs are read-only
AI scribes for therapy and psychiatryWrites a draft progress note after a sessionWrite access is rare, and psychotherapy notes must stay out of general flows
Telepsychiatry and virtual therapy groupsBooks visits, writes notes, reads medications and allergiesEach client practice may run a different EHR
Therapy marketplaces and referral networksReads availability, books first appointmentsScheduling APIs exist for only a few vendors
Collaborative care and primary care partnersShares behavioral health updates with a primary care teamConsent rules, and the Part 2 notice for substance use records
Substance use and opioid treatment programsReads and shares treatment records with other providersEvery disclosure is under 42 CFR Part 2
Behavioral health billing and RCMReads encounters and charges, writes claims statusCharges and claims often sit outside the certified FHIR scope
Payers, EAPs and care navigationReads availability and outcomes for a networkNetwork programs, such as SimpleConnect, are partner deals, not open APIs
Digital intake and consent toolsWrites new patients and signed formsForm data rarely has an open write route
Analytics and value-based care reportingReads patient data in bulkBulk export fees and scope differ by vendor

Why do behavioral health EHRs have fewer APIs?

Three reasons come up again and again, in vendor documentation and in practitioner discussion.

  • The incentive money went elsewhere. The federal program that paid hospitals and doctors to adopt certified EHRs from 2011 largely left behavioral health providers out. Practitioners in community discussions point to that carve-out as the reason many behavioral health vendors never built to the certification standards that now require a FHIR API.
  • Certification is optional for many. Much of behavioral health is cash pay or outside Medicare's quality programs, so a practice has less reason to demand a certified EHR, and a vendor has less reason to certify.
  • The data is more sensitive. Psychotherapy notes and substance use records have extra federal protection. Vendors are cautious about any route that could move them, and that caution shows up as closed or read-only APIs.

The result is a market where you cannot assume an API exists, and where the federal "certified" label tells you less than it does in general medicine.

What "ONC certified" does and does not tell you

The Office of the National Coordinator for Health IT (ONC) runs the certification program for EHRs, and lists certified products in the Certified Health IT Product List (CHPL). Certification is a set of criteria, and a product can meet some and not others. The one that matters most for integration is the standardized API criterion, numbered (g)(10). A product certified for (g)(10) must offer a FHIR R4 API that lets an outside app read a defined set of patient data.

Five checks before you plan an integration.
  • Certified does not mean it has the API. On November 9, 2026, Kipu 15 and ICANotes 11.6 were both active on CHPL, and neither met (g)(10).
  • The (g)(10) API is for reading. It is built to let apps read patient data. Every certified FHIR API we checked in this group was read-only.
  • A claim is not a listing. Osmind describes itself as "ONC-certified" on its own site. CHPL had no developer named Osmind on November 9, 2026. The product may be listed under another developer name, so ask the vendor for its CHPL ID.
  • Old listings can be retired. Valant's five CHPL listings were all retired, the latest from 2014.

Before you plan an integration, look the product up on CHPL, check for (g)(10), and open the API documentation link the listing provides. That link is the vendor's official public API documentation.

The ten vendors at a glance

This table is the core of the guide. It reflects each vendor's own public pages and the CHPL registry on November 9, 2026. "Not found" means no primary source we reached says so. It does not mean the feature is missing, so ask the vendor.

Read, write, sandbox, webhooks and certification, per vendor.
Vendor and productPublic APITypeCan you write?Sandbox(g)(10) on CHPL
SimplePracticeNo. Partner API in SimplePractice Enterprise onlyNone for practicesNot foundNot foundNo CHPL record
ValantSold as "EHR API Management". No public docsNot statedYes, per Valant: patient, charge and appointment data inNot foundNo. All listings retired
KipuYes, for clients and their developers, with API keysREST, plus an HL7 v2.5.1 outbound billing feedPatient data onlyNo public sandbox. A personal sandbox is a paid serviceNo. Kipu 15 is active without (g)(10)
Netsmart myAvatarYes, through CareConnect, after registrationFHIR R4 and STU3, SMARTNot foundNot foundYes. myAvatar Certified Edition 6
Qualifacts CareLogicYes, after registrationFHIR R4, SMART 2.0.0No. Read and search onlyYes, after registrationYes. CareLogic Enterprise S3
Qualifacts CredibleYes, after registrationFHIR R4, US Core 6.1.0, SMART 2.0.0No. Read and search onlyYesYes. Credible Behavioral Health Version 11
Qualifacts InSyncYes, after registrationFHIR R4, US Core 6.1.0, SMART 2.0.0No. Read and search onlyYesYes. InSync EMR/PM 10
HealthieYes, as a paid add-on for Enterprise and Group plansGraphQL, plus a certified FHIR APIYes, through GraphQLYes, on request by emailYes. Healthie Cures 1
TherapyNotesNo public API foundNoneNot foundNot foundNo CHPL record
TebraYesSOAP for practice management, FHIR R4 (US Core 3.1.1)SOAP: patients, appointments, encounters, payments. FHIR: read onlyYes, a FHIR sandbox in appSphereYes. Tebra EHR 5.1
ICANotesPartner-only FHIR R4 APIFHIR R4, OAuth client credentialsPatient create and appointment booking onlyNot foundNo. ICANotes 11.6 is active without (g)(10)
OsmindNo public API foundNoneNot foundNot foundNo CHPL developer record, though Osmind says it is "ONC-certified"

Read the table by your use case. If you only need to read patient data, the certified vendors cover you. If you need to write notes, scores or bookings, your choice narrows to Healthie, Tebra, Kipu (patients only) and ICANotes (patients and bookings), plus partner programs at the rest.

Vendor by vendor: what each one actually offers

SimplePractice

SimplePractice's help center is direct: "SimplePractice doesn't currently offer a public-facing API for integrations with other software or platforms." It does run SimpleConnect, a network for payers, EAPs and health systems, and SimplePractice Enterprise has announced a partner API for that network. That route is a partnership with SimplePractice, not something a developer can sign up for. SimplePractice has no record on CHPL.

  • What works today: calendar sync to personal calendars, data exports, and a SimpleConnect partnership if you are a payer or network.
  • What does not: reading or writing patient records through an open API.

Our SimplePractice integration guide covers each workaround in detail.

Valant

Valant markets "EHR API Management" as a feature. Its page says you can "send patient, charge, and appointment data directly into Valant from external systems," push Valant data out "for billing, scheduling, and reporting," and use a "Scheduling API" that lets patients "find and book available appointments directly within the Valant calendar." It names inbound and outbound charge APIs. It does not publish the API type, documentation or a sandbox, and the page links to plans and pricing. All five Valant listings on CHPL are retired, the latest from 2014.

  • What to ask Valant: which plan includes the API, the API type and docs, whether clinical notes and assessments are covered, and how partners get test access.

Kipu

Kipu, built for addiction treatment and behavioral health programs, has the most candid API FAQ of the group. Its key points, from Kipu's own help center:

  • Kipu offers "41 currently available" APIs, with GET, POST and PATCH.
  • Readable data includes utilization review, insurance, settings, users, appointments, consents, patients, census and occupancy. "Currently, only the Patient data can be modified using POST and PATCH."
  • API keys come through a request form. If a third-party developer is involved, "an API agreement may be required," which Kipu says is typically sent for signature within 3 to 5 business days.
  • "There is no public sandbox." Customers can request a personal sandbox, and "this is a paid service."
  • "Kipu does not offer professional API implementation services." The customer's developer builds and supports the integration.
  • "At this time, there is no rate limit on API calls."

Kipu also publishes an HL7 v2.5.1 outbound billing (DFT) implementation guide. Kipu 15 is active on CHPL but not certified for (g)(10). Kipu's API terms say developers "may be responsible for fees associated with custom programming," and that Kipu can withdraw or discontinue any API feature.

Because Kipu serves substance use programs, almost everything you read from it is likely covered by 42 CFR Part 2. Read that section before you design the data flow.

Netsmart myAvatar

Netsmart offers its APIs through CareConnect, which lists a "General Purpose R4 API" and a "General Purpose STU3 API." Netsmart says "registering your application enables secure access to the specific Netsmart solution," and that the platform supports SMART apps for patients and practitioners. myAvatar Certified Edition 6 is active on CHPL with (g)(10), certified on February 27, 2026, and Netsmart's myEvolv, myUnity, TheraOffice and GEHRIMED products also carry active (g)(10) listings. Netsmart's certification letter says a CareConnect FHIR subscription is required.

  • What to ask Netsmart: the cost of the CareConnect subscription, which resources support writes, and the sandbox route.

In community discussions, one practitioner called Netsmart the most open of the home health and behavioral health vendors "but still poor," and another described intake forms that write back to myEvolv through REST "interactions" as tedious to set up. Treat these as individual experiences.

Qualifacts: CareLogic, Credible and InSync

Qualifacts publishes the clearest FHIR documentation in the group, for all three of its products, at documentation.qualifacts.com.

CareLogicCredibleInSync
StandardFHIR R4.0.1, SMART 2.0.0FHIR R4.0.1, US Core 6.1.0, SMART 2.0.0FHIR R4.0.1, US Core 6.1.0, SMART 2.0.0
WritesNone. Read and search onlyNone. Read and search onlyNone. 26 resources, all read or search
SandboxAfter registration by emailAfter registration by emailAfter registration by email
Rate limit"each API key is limited to 1000 requests per minute and 100 requests per second"No number published. HTTP 429 documentedNot found
Production accessFor customers that licensed the FHIR API"the participating agency must also approve production access" for provider and bulk appsRegistration and agency approval
CHPL (g)(10)YesYesYes, certified September 17, 2026

Qualifacts' Credible documentation says "Credible FHIR APIs are only available to registered developers" and "production access is limited to Qualifacts customers that have licensed the Credible FHIR API functionality." On fees, it says "at this time, no additional fees will be assessed."

InSync's resource list includes QuestionnaireResponse, which can carry PHQ-9 or GAD-7 answers, and DocumentReference for notes, but only for reading. Qualifacts says "no fees are charged to access the API documentation." Its API terms require a BAA with Qualifacts and with each customer.

Healthie

Healthie has the fullest API in the group, and calls it "a closed API." It is GraphQL, and it is "an available add-on for members on our Enterprise and Group Plans." Sandbox access is by email request, and the sandbox cannot hold PHI.

  • Reads and writes: GraphQL mutations cover the objects in Healthie's webhook list: patients, appointments, form answers (forms and assessments), charting notes and addenda, documents, billing items and claims.
  • Webhooks: signed with "HMAC (Hash-Based Message Authentication Code) with SHA-256 hashing." Retries are opt-in, "for up 3 days based on an exponential backoff," and a webhook that keeps failing is disabled. Example events include appointment.created, form_answer_group.signed and charting_note_addendum.created.
  • Limits: "Maximum of 250 RPS (requests per second)" and "Maximum of 100 sign-ins per minute."
  • Auth: API keys tied to a user, which "can only be used to access data that they have access to."
  • Support: "5 hours of technical support each month."
  • Certification: Healthie Cures 1 is active on CHPL with (g)(10). On November 9, 2026, the documentation link on its CHPL listing opened only an admin portal, and its endpoint list held a single placeholder named "example-tenant".

Community members describe Healthie as the EHR teams pick "for API customisation," and also as one they "love to hate." One limit came up more than once: sharing a patient across Healthie sub-organizations, which matters to groups that offer therapy and psychiatry under different entities. Confirm how your organization structure maps before you build.

TherapyNotes

We found no public API or developer pages from TherapyNotes. Its calendar sync is one-way: "we do not allow these programs to push information into TherapyNotes." TherapyNotes does send encounter data to two state health information exchanges, HealthConnex in North Carolina and Connie in Connecticut, when notes are signed, and it has built-in payment, ePrescribe and clearinghouse connections. TherapyNotes has no record on CHPL. One directory claims a FHIR API exists, which we could not confirm from any TherapyNotes page.

Tebra (formerly Kareo)

Tebra runs two APIs, and the difference matters.

  • SOAP API for practice management. "Tebra's API is a SOAP-based web service." It can retrieve appointments, charges, encounters, patients, payments, providers and more. It can create appointments, patients, encounters and payments, update patients and delete appointments. Tebra says "we do not currently support HL7 messaging," and suggests polling at "5 to 15 minute intervals." It needs a customer key in addition to login credentials. Tebra's help center adds that the customer key "is not needed for Tebra EHR" and is "only needed for Tebra Practice Management paired with a partner EHR."
  • FHIR R4 API, certified. Built on US Core 3.1.1, run on SmileCDR, and "only available to registered developers" through appSphere, which includes a FHIR sandbox. Every FHIR resource in the guide is search and read, including DocumentReference for notes. Tebra says "there is no charge for usage of the read (GET) routes for USCDIv1 data for Patient APIs," while clinician-facing and bulk apps "require additional fees."

Tebra EHR 5.1 is active on CHPL with (g)(10).

ICANotes

ICANotes offers a partner-facing FHIR R4 API that "exposes ICANotes practice data using the HL7 FHIR R4 standard" for "approved integration partners." It uses OAuth client credentials, server to server. It supports reads of providers, locations, patient search and real-time availability, and two writes: "Patient create and Appointment booking." Patient update and appointment lifecycle are listed as in development. Booking is idempotent, which means a repeated request does not create a second appointment. ICANotes 11.6 is active on CHPL and meets two other API criteria, but not (g)(10). A practitioner in community discussions noted ICANotes is certified "but not for all base criteria."

Osmind

Osmind, used by psychiatry practices, lists integrations for labs, prescription monitoring, calendar sync, telehealth and SPRAVATO REMS. We found no public API. Osmind's credentialing page describes it as "ONC-certified," and CHPL had no developer named Osmind on November 9, 2026. In a 2023 community thread, Osmind said process-note sequestration was not built yet. Ask Osmind directly about API access and its CHPL ID.

Psychotherapy notes: what an integration must never move

HIPAA gives psychotherapy notes stronger protection than the rest of the record. The rule defines them as "notes recorded (in any medium) by a health care provider who is a mental health professional documenting or analyzing the contents of conversation during a private counseling session or a group, joint, or family counseling session and that are separated from the rest of the individual's medical record." The definition then excludes medication, session times, treatment types and frequencies, test results, and "any summary" of diagnosis, functional status, treatment plan, symptoms, prognosis and progress.

Progress notes can move. Psychotherapy notes stay put.

In practice there are two kinds of note.

Progress notePsychotherapy note
What it holdsDiagnosis, symptoms, plan, progress, session time and typeThe clinician's analysis of what was said in the session
Where it livesThe medical recordKept separate from the medical record
Who can see itTreatment, payment and operations, under HIPAA's usual rulesVery limited. Most uses need the patient's specific authorization
Can an integration carry it?Yes, within the vendor's API and the practice's approvalTreat as no, unless the clinician and patient have explicitly authorized it

No vendor documentation we read says whether its API excludes psychotherapy notes, and in the certified FHIR APIs, notes come through DocumentReference without a documented flag. Build the protection into your own product.

  • AI scribes: generate the progress note, and never send a psychotherapy note to the EHR as a progress note. If your scribe drafts both, keep them in separate fields and let the clinician decide where each goes.
  • Reading notes: only read note types you have mapped, and confirm with the vendor and practice which note types the API returns.
  • Logging: do not log note text. Log IDs and note types.

42 CFR Part 2 for engineers

42 CFR Part 2 protects the records of federally assisted substance use disorder (SUD) programs. HHS changed the rule in February 2024 to align it more closely with HIPAA, and, in HHS's words, "persons subject to the regulation must comply with the applicable requirements of the final rule by February 16, 2026." If your product touches records from a SUD program, such as many Kipu customers, these changes shape your data flow.

The Part 2 rules your data flow must carry.

What changed, from HHS's fact sheet

  • One consent for treatment, payment and operations. The rule "allows a single consent for all future uses and disclosures for treatment, payment, and health care operations."
  • Redisclosure under HIPAA. HIPAA covered entities and business associates that receive records under that consent may redisclose them "in accordance with the HIPAA regulations."
  • Segmentation is not required. The rule "adds an express statement that segregating or segmenting Part 2 records is not required."
  • SUD counseling notes are a new category. They are a clinician's notes analyzing a counseling session, kept separate from the record, and they "require specific consent" and "cannot be used or disclosed based on a broad TPO consent."
  • Every disclosure carries its consent. Each disclosure made with consent must "include a copy of the consent or a clear explanation of the scope of the consent."
  • Legal proceedings stay off limits. Records still cannot be used to investigate or prosecute the patient without written consent or a court order.
  • Breaches follow HIPAA. The HIPAA breach notification rule now applies to Part 2 records.

What that means for your build

The points below are our reading of the rule for system design, not legal advice. Have your counsel confirm them for your use case.

  1. Know which records are Part 2 records. Segmentation is no longer required, but you still need to know where a record came from, because the consent and the legal-proceedings limit travel with it. Tag records from Part 2 programs at the point they enter your system.
  2. Store the consent with the data. Keep the patient's consent, its scope and its date next to the records it covers, so every disclosure can include it, as the rule requires.
  3. Keep SUD counseling notes out of every general flow. They need their own consent. Treat them like psychotherapy notes: separate storage, no default sharing.
  4. Handle revocation. A patient can revoke consent in writing. Your system needs a way to stop future disclosures when that happens.
  5. Do not rely on the vendor's API to do this. None of the vendor documentation we read describes a Part 2 flag, a consent resource or a security label on its API. FHIR has the building blocks, such as the Consent resource and security labels in resource metadata, but you will likely have to apply them yourself.

What to do when there is no API

For SimplePractice, TherapyNotes, Osmind and, until you get access, Valant, you need another route. Here they are in the order we recommend trying them.

Routes to try when there is no API.
RouteHow it worksGood forWatch out for
Vendor partner programApply to the vendor's partner or network program, such as SimpleConnectPayers, networks and large partnersSelective, slow, and terms are private
Certified FHIR read plus manual writeRead through the certified API, and have staff or the clinician complete writes in the EHRMeasurement-based care and analytics that mostly readA human step for every write
HL7 or HIE feedsReceive data the EHR already sends, such as TherapyNotes' encounter feeds to state HIEs or Kipu's billing feedEncounter and billing dataLimited content, and only where the feed exists
Exports and calendar syncScheduled exports, or one-way calendar syncReporting and availabilityBatch timing, and no write-back
Patient-mediated accessThe patient connects their own record through a certified patient API, where one existsPatient-facing appsOnly where the vendor offers (g)(10), and only what the patient can see
Screen automationSoftware operates the EHR's screens on the practice's behalfLast resort, for a single practice that has asked for itVendor terms, breakage on every UI change, and security review
Unofficial access vendorsThird parties sell access built by reverse engineeringWe do not recommend itNo vendor agreement, and risk to the practice's contract and data

Whichever route you pick, write down what the practice agreed to, and keep that agreement with your integration settings. Our guide to EHR automation without an API covers screen automation in depth.

Measurement-based care: getting scores into the chart

Measurement-based care products collect PHQ-9 (depression), GAD-7 (anxiety) and similar scores between visits, and want them in front of the clinician. In FHIR, the answers are a QuestionnaireResponse and the scores are Observations. The trouble is the write side.

  • Certified FHIR APIs read, they do not write. InSync lists QuestionnaireResponse, for reading only.
  • Healthie can take form answers through GraphQL, and fires form_answer_group.signed webhooks when a form is signed.
  • Elsewhere, plan for a document or a manual step. A score report filed as a document, or entered by staff, is often the only route.

Store the instrument, its version, the answers, the score and the date together, so a clinician can trust what they see.

How to choose which behavioral health EHRs to support first

Most products cannot support ten EHRs at once. Pick the order with four questions, scored per vendor.

  1. How many of your customers use it? Count paying or pipeline customers per EHR. This matters more than market share.
  2. Does it support what your product must do? If your product writes notes or scores, a read-only API does not serve it, however good the docs.
  3. How hard is access? Self-serve sandbox (Tebra, Qualifacts after registration) is faster than a paid add-on (Healthie), a paid sandbox (Kipu) or a partner program (SimplePractice, ICANotes).
  4. What do the privacy rules add? A Kipu customer base likely means Part 2 work on day one. A therapy-only customer base means psychotherapy note controls first.

A common order for a product that reads and writes: Healthie or Tebra first, because they have documented write routes, then the certified read APIs (Qualifacts, Netsmart) with a manual write step, then partner programs. For a read-only analytics product, the certified FHIR vendors come first.

One integration layer across ten EHRs

Teams that support several behavioral health EHRs build one internal model and one adapter per vendor. Your product talks to the model. Each adapter translates to one vendor's API, and says plainly what that vendor cannot do.

// Illustrative design, not any vendor's SDK.
type Capability = "readPatient" | "writePatient" | "readAppointments" | "book"
                | "writeProgressNote" | "writeAssessment" | "webhooks";

interface BehavioralEhrAdapter {
  vendor: string;                       // "healthie", "qualifacts-credible", ...
  capabilities: Set<Capability>;        // what this vendor allows for this customer
  getPatient(id: string): Promise<Patient>;
  book?(req: BookingRequest): Promise<Appointment>;          // only if "book"
  writeProgressNote?(note: ProgressNote): Promise<NoteRef>; // never psychotherapy notes
  writeAssessment?(a: Assessment): Promise<AssessmentRef>;  // PHQ-9, GAD-7 ...
}

function route(adapter: BehavioralEhrAdapter, task: Task) {
  if (!adapter.capabilities.has(task.needs)) {
    return createStaffTask(task);       // manual step, logged, visible to the customer
  }
  return task.run(adapter);
}

Three rules make this work.

  • Capabilities are per customer, not per vendor. Healthie's API depends on the customer's plan. Credible's production access depends on the agency's approval. Store capabilities with each customer's settings.
  • Every missing capability has a visible fallback. A staff task, an export or a document, never a silent failure.
  • Privacy flags live in your model. Mark psychotherapy content, Part 2 origin and the consent that covers each record in your own data, because the vendor APIs do not.

Questions to ask each behavioral health EHR vendor

  1. Is there a public or partner API, and which plan or agreement includes it?
  2. Which resources or objects can we write, not just read?
  3. How do we get a sandbox, and does it cost anything?
  4. Do you offer webhooks or event feeds, or must we poll?
  5. What are the rate limits?
  6. Does the API return psychotherapy notes, and how are they excluded?
  7. Does the API mark records that fall under 42 CFR Part 2, or carry consent?
  8. What is your CHPL listing, and does it include (g)(10)?
  9. Do we need a BAA with you as well as with each practice? Qualifacts, for example, requires both.
  10. What fees apply for clinician-facing, bulk or write access?

Ask for the answers in writing, and keep them with each vendor adapter. Vendors change plans and APIs, and Kipu's terms, for example, allow it to discontinue API features.

Security and compliance checklist

  • BAAs. Sign a BAA with each practice, and with the vendor where its terms require it.
  • Least access. Request only the scopes and objects your product uses. Healthie's API keys see only what their user can see, so create a dedicated user with the right access.
  • Webhook security. Verify Healthie's HMAC SHA-256 signatures before you trust any event.
  • Secrets per practice. Tebra's SOAP API needs a customer key from each practice's administrator. Store keys per customer, and rotate them when staff change.
  • Logs without content. Log IDs, types and outcomes, never note text or session content.
  • Consent records. Keep consent, scope, date and revocation with the data they cover.

Edge cases specific to behavioral health

Edge cases that only behavioral health has.
Edge caseWhat happensWhat to build
Psychotherapy note sent as a progress noteProtected content enters the general recordSeparate fields for the two note kinds, and clinician review before any write
Part 2 record shared without its consentA disclosure that does not carry the required consent copyTag Part 2 records on entry and attach the consent to every disclosure
SUD counseling notes in a general feedNotes that need their own consent leave under a TPO consentExclude them by default, and require a separate consent record
Consent revokedYou keep sending after the patient revokesA revocation flag that blocks future disclosures
Group therapyOne session, several patientsWrite one record per patient, never one shared note
Minors and guardiansWho may consent and see records depends on age and state lawAgree the rules with the practice and their counsel before you build
Therapy and psychiatry under different entitiesA patient exists twice, or cannot be shared across sub-organizationsMap the organization structure first, especially in Healthie
Crisis language in a note or formA risk signal arrives through your product, not the EHRAn escalation path the practice owns, and no reliance on the EHR to notice
Payer masks sensitive diagnosesClaims data hides behavioral health codesDo not assume claims data is complete for these patients
Read-only API mistaken for writeYour product promises write-back the vendor does not allowCheck write routes per vendor before you sell the feature
Vendor discontinues an API featureKipu's terms allow it to withdraw API featuresMonitor failures per endpoint, and keep a manual fallback
Webhook disabled after failuresHealthie disables a webhook that keeps failingOpt in to retries, alert on failures, and reconcile with a periodic read

How do you test a behavioral health integration?

  1. Sandbox per vendor. Healthie by email, Tebra through appSphere, Qualifacts by registration, and a paid personal sandbox at Kipu. Record each vendor's real responses and errors.
  2. Note kinds. Prove a progress note writes where it should, and that a psychotherapy note never leaves your product without explicit authorization.
  3. Part 2 path. Send a synthetic Part 2 record through your flow and confirm the consent copy travels with every disclosure.
  4. Revocation. Revoke a synthetic consent and confirm the next disclosure is blocked.
  5. Assessments. Send a full PHQ-9 and GAD-7 and confirm instrument, version, score and date arrive intact.
  6. Rate limits. Stay under Healthie's 250 requests per second and CareLogic's 1,000 requests per minute in a load test.
  7. Webhooks. Fail your Healthie listener on purpose and confirm retries and reconciliation work.
  8. Minors. Run the guardian rules the practice agreed, with synthetic minors.
  9. Read-only routes. Confirm your product never attempts a write on a vendor that only allows reads.

Use synthetic patients only. For behavioral health, never use real session content in any test environment.

What does a behavioral health EHR integration cost?

VendorWhat the vendor says about cost
HealthieThe API is a paid add-on for Enterprise and Group plans. No price published
KipuA personal sandbox is a paid service. API terms say developers may pay for custom programming. No price published
TebraNo charge for patient read routes for USCDI v1 data. Clinician-facing and bulk apps need additional fees
QualifactsNo fee to access the documentation. Production access is tied to customer licensing
NetsmartA CareConnect FHIR subscription is required. No price published
ValantThe API page links to plans and pricing. No API price published
SimplePractice, TherapyNotes, OsmindNo public API, so no API price

Your own cost splits into a reusable layer, built once, and work per vendor and per practice: access, mapping, testing and the consent rules each practice sets. Under the federal information blocking rules, certified developers may only charge certain fees for API access. In community discussions, practitioners said bulk export fees vary widely and can be vague, so ask for them in writing.

How long does it take?

None of these vendors publishes a timeline. The phases are the same for each: get access, build against the sandbox, get the practice's approval and consent rules, test, then go live with one practice. Access is often the slowest step: a partner application, a paid plan upgrade, or an agreement such as Kipu's, which Kipu says is typically sent within 3 to 5 business days. One community member described a practice moving from Valant to another EHR in about a month in order to get API access. Treat that as one practice's experience.

What these behavioral health EHRs look like on screen

The vendor sections above describe what each API can and cannot do. These screens show the records those APIs expose, or do not expose, so you can point at them in a meeting with a practice. They come from the vendors' own public demo videos, product pages and help centers, credited under each image, and show demo or sample data.

SimplePractice: measures sit in the client record

SimplePractice keeps PHQ-9 and GAD-7 measures in the client file.

A SimplePractice client file lists PHQ-9 and GAD-7 measures next to forms and uploads, each marked completed with a date. That is exactly the data a measurement-based care product wants, and SimplePractice offers no public API to read or write it. Getting it out today means exports or a partnership.

SimplePractice: signing and locking a progress note

The clinician signs and locks the note.

Notes in SimplePractice are signed and locked by the clinician. Any AI scribe or note tool that targets an EHR like this must leave the final sign-off to the clinician, and must keep psychotherapy content out of the progress note.

TherapyNotes: appointments and missed-appointment notes

TherapyNotes appointments and missed-appointment notes.

TherapyNotes ties each appointment to a service code, location and clinician, and asks for a note when a client misses an appointment. Its calendar sync only sends data out, so an outside scheduler cannot write appointments back.

Healthie: calendar and availability

Healthie availability blocks and booked sessions.

Healthie's calendar shows provider availability blocks alongside booked sessions. Its GraphQL API covers appointments, which is why scheduling and telehealth products often pick Healthie first. Confirm which scheduling operations your plan includes.

Valant: documents and measures in a psychiatric chart

Valant keeps notes, forms and measures as chart documents.

A Valant chart keeps progress notes, intake notes, signed forms and GAD-7 measures as documents, with separate tabs for diagnoses, medications, measurements and lab requests. Valant's API page talks about patient, charge and appointment data. Ask Valant whether notes and measures are in scope for your use case.

Osmind: scores on the patient list

Osmind shows mood and PHQ-9 scores on the patient list.

Osmind shows mood and PHQ-9 scores with their dates right on the patient list, next to care team and tags. For measurement-based care, that is the ideal place for scores to land. We found no public API that lets an outside product put them there.

Qualifacts Credible: one record, mixed sensitivity

One Credible record mixes therapy and SUD services.

A Credible client record shows therapy, intake and SUD services side by side, with payer authorizations, diagnoses and warnings. For an integration, that mix is the point: one read can return records that fall under different privacy rules. Credible's certified FHIR API reads this data, and it does not write it.

Qualifacts Credible: what good public API documentation looks like

Credible's public FHIR documentation, November 9, 2026.

Qualifacts publishes sandbox and production endpoints, fees and restrictions on one open page. It is the clearest documentation in this group, and a useful model to show other vendors when you ask what their API offers.

Tebra: the customer key for the SOAP API

Tebra's SOAP API needs a customer key per practice.

Tebra's SOAP API needs a customer key from each practice's System Administrator, plus web services permission on the user. Tebra says the key applies to Tebra Practice Management paired with a partner EHR, not to Tebra EHR itself. Plan for a key per practice, and a person at each practice who can issue it.

Tebra: group appointments

Tebra group appointments for group sessions.

A Tebra group appointment holds up to 200 attendees in one session, with one provider and one room. For group therapy, the appointment is shared but the record is not: notes, charges and consent still belong to each attendee.

Kipu: charting and scheduling

Kipu's sample charting and scheduling screens.

Kipu's sample screens show charting and a scheduler built for treatment programs. Its API reads appointments, consents, census and occupancy, but only patient data can be written. Because Kipu serves addiction treatment, plan for 42 CFR Part 2 on almost every record.

Netsmart CareConnect: the developer portal

Netsmart's CareConnect developer portal.

Netsmart's CareConnect portal lays out three steps: review the documentation, register your application, and request authorization. It offers general purpose FHIR R4 and STU3 APIs with SMART apps for patients and practitioners.

ICANotes: a FHIR API for partners

ICANotes' FHIR API for integration partners.

ICANotes markets its FHIR R4 API to scheduling platforms, patient portals, referral networks and telehealth products. Access is for approved partners, and the writes are limited to creating patients and booking appointments.

Where to watch the full videos

  • SimplePractice, product demo (YouTube): calendar, intake, client portal, notes and payments.
  • TherapyNotes, scheduling walkthrough (YouTube).
  • Healthie, EHR demo (YouTube): calendar, billing and intake flows.
  • Valant, patient chart walkthrough (YouTube).
  • Osmind, mini demo (YouTube).
  • Qualifacts Credible EHR platform page and Credible FHIR documentation (qualifacts.com).
  • Tebra help center: Get Customer Key and New Group Appointment (helpme.tebra.com).
  • Kipu EMR product page (kipuhealth.com), Netsmart CareConnect (careconnect.netsmartcloud.com) and the ICANotes FHIR API page (icanotes.com).

Where Nirmitee fits

We build behavioral health integrations for digital health companies: read and write routes where vendors offer them, safe fallbacks where they do not, and the psychotherapy note and Part 2 controls described above, built into the product rather than left to the EHR.

What a behavioral health integration gap check gives you

Whether you support one behavioral health EHR or ten, this is the fixed-scope first step we offer. You get a written answer to "what can we read and write with each EHR our customers use, and what will it take".

You send usWe send back
The EHRs your customers use, ranked by how many customers use eachA read and write table for your use case, per vendor, like the one in this guide
Your product's data flow: notes, scores, bookings, billingThe route for each vendor: API, partner program, feed, export or manual step
Whether you handle substance use or psychotherapy recordsThe Part 2 and psychotherapy note controls your product needs, and the questions for your counsel
Any vendor emails or failed requestsThe access steps per vendor, with the documents to prepare
Your target launch dateA test plan per vendor and an effort and timeline estimate, with vendor-owned steps marked

It starts with a 30-minute call, where we confirm the scope and agree the fixed price and delivery date before any work begins. You keep everything we send, whether or not you work with us afterwards. Book a call to scope your behavioral health gap check.

Sources

  • Vendor pages, checked November 9, 2026: SimplePractice help center (plan comparison) and SimpleConnect; Valant EHR API Management; Kipu API page, API FAQ and API terms; Netsmart CareConnect and certification letter; Qualifacts FHIR documentation for CareLogic, Credible and InSync and API terms; Healthie help center, API docs, environments and webhooks; TherapyNotes help center; Tebra API help and FHIR API user guide; ICANotes FHIR API page; Osmind integrations and credentialing pages.
  • ONC Certified Health IT Product List (chpl.healthit.gov), queried November 9, 2026, for each vendor's listings and (g)(10) status.
  • HHS fact sheet on the 42 CFR Part 2 final rule (updated January 30, 2026) and the final rule in the Federal Register, February 16, 2024.
  • 45 CFR 164.501, definition of psychotherapy notes (eCFR).
  • Vendor demo videos on YouTube: SimplePractice, TherapyNotes, Healthie, Valant and Osmind.
  • Practitioner discussion in the Health Tech Nerds community, 2023 to 2026, anonymized.

Ready to scale?

Talk to our healthcare engineering team about building, integrating, and shipping faster.

Frequently Asked Questions

Does SimplePractice have an API?

Not a public one. SimplePractice says it does not currently offer a public-facing API. SimplePractice Enterprise has a partner API for its SimpleConnect network of payers, EAPs and health systems.

Does TherapyNotes have an API?

We found no public API or developer pages from TherapyNotes. Its calendar sync is one-way, and it sends encounter data to two state health information exchanges.

Does Valant have an API?

Valant sells API access as a feature called EHR API Management, covering patient, charge and appointment data and a scheduling API. It does not publish the API type, documentation or a sandbox.

Does Kipu have an API?

Yes. Kipu offers 41 APIs with API keys for clients and their developers. Only patient data can be modified. There is no public sandbox, and a personal sandbox is a paid service.

Does Healthie have an API?

Yes. Healthie's GraphQL API reads and writes, with signed webhooks. It is a paid add-on for Enterprise and Group plans, and sandbox access is by email request.

Does Netsmart myAvatar have a FHIR API?

Yes. Netsmart offers FHIR R4 and STU3 APIs through CareConnect after registration, and myAvatar Certified Edition 6 meets the (g)(10) standardized API criterion. Netsmart says a CareConnect FHIR subscription is required.

Do Qualifacts CareLogic, Credible and InSync have APIs?

Yes. All three have FHIR R4 APIs with SMART App Launch 2.0.0 and sandboxes after registration. All three are read and search only.

Does Tebra have an API?

Tebra has two. A SOAP API creates patients, appointments, encounters and payments. A certified FHIR R4 API reads US Core 3.1.1 data, with a sandbox in appSphere.

Does ICANotes have an API?

ICANotes offers a partner-only FHIR R4 API. It reads providers, locations, patients and availability, and writes only patient create and appointment booking.

Does Osmind have an API?

We found no public API from Osmind. Osmind describes itself as ONC-certified, but CHPL had no developer named Osmind on November 9, 2026. Ask Osmind for its CHPL ID.

Which behavioral health EHRs let you write data through an API?

Healthie through GraphQL, Tebra through SOAP, Kipu for patient data, and ICANotes partners for patient create and booking. Every certified FHIR API we checked in this group is read-only.

What does ONC (g)(10) certification mean for integration?

(g)(10) is the standardized API criterion. A product that meets it must offer a FHIR R4 API that lets outside apps read a defined set of patient data. It does not require write access.

Can an API share psychotherapy notes?

Treat the answer as no unless the clinician and patient have specifically authorized it. HIPAA protects psychotherapy notes kept separate from the record, and no vendor document we read describes how its API excludes them.

What is the difference between psychotherapy notes and progress notes?

Progress notes hold diagnosis, symptoms, plan, progress and session details, and are part of the record. Psychotherapy notes are a clinician's analysis of the session, kept separate, with stronger protection.

What changed in the 42 CFR Part 2 final rule?

A single consent can now cover treatment, payment and operations, recipients may redisclose under HIPAA, segmentation is not required, SUD counseling notes need their own consent, and each disclosure carries a copy or explanation of the consent.

When did the 42 CFR Part 2 final rule take effect?

The rule was effective April 16, 2024, and HHS says persons subject to it had to comply by February 16, 2026.

Do we need to segment Part 2 data in our integration?

HHS says segregating or segmenting Part 2 records is not required. You still need to know which records are Part 2 records, carry the consent with each disclosure, and keep SUD counseling notes out of general flows.

How do we get PHQ-9 and GAD-7 scores into a behavioral health EHR?

Certified FHIR APIs read QuestionnaireResponse and Observation data but do not write it. Healthie accepts form answers through GraphQL. Elsewhere, plan for a document or a manual step.

What can we do if a behavioral health EHR has no API?

Try a partner program, a certified read API with manual writes, HL7 or HIE feeds, exports, patient-mediated access, and only as a last resort, screen automation with the practice's consent.

How much do behavioral health EHR APIs cost?

Few vendors publish prices. Healthie's API is a paid add-on, Kipu's personal sandbox is paid, Tebra charges no fee for patient read routes on USCDI v1 data but charges for clinician and bulk apps, and Netsmart requires a CareConnect subscription.
Share