Skip to main content
Open source ยท Apache-2.0 ยท Self-hosted

The Headless EHR, Built for AI Agents

Haste Health normalizes Epic, Cerner, HL7v2, and any FHIR-compatible system into one API, giving you a headless layer to power your apps and AI agents.

Haste Health
$ haste-health api search-type Patient "name=chen&_count=1"

{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "entry": [{
    "resource": {
      "resourceType": "Patient",
      "id": "xufn84vpa69b_998c1",
      "name": [{ "family": "Chen", "given": ["Maya"] }]
    }
  }]
}
Headless by design

Every Data Source In. Every Application Out.

Point EHRs, HL7v2 interfaces, and other FHIR servers at Haste Health. What comes out is one normalized FHIR R4 API that powers patient and provider apps, analytics, partner integrations, and AI agents alike.

Haste HealthHeadless FHIR R4 API
For builders

What You Don't Have to Build Yourself

The plumbing most healthcare startups end up writing from scratch, shipped as part of the platform.

See it

This Is What Headless Looks Like

An agent asks a plain-English question. Haste Health answers over MCP or the same auto-generated OpenAPI spec, with spec-conformant FHIR data and clear, actionable errors in the event of failure.

MCP ยท fhir_r4_search

Agent asks

"Find this patient's blood pressure readings from the last 30 days."

{
  "tool": "fhir_r4_search",
  "arguments": {
    "resourceType": "Observation",
    "code": "85354-9",
    "date": "ge2026-07-19",
    "patient": "xufn84vpa69bโ€ฆ998c1"
  }
}

Haste Health responds

{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "entry": [{
    "resource": {
      "resourceType": "Observation",
      "id": "bp-8f2a1c",
      "meta": { "profile": [
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure"
      ] },
      "status": "final",
      "category": [{ "coding": [
        { "system": ".../observation-category", "code": "vital-signs" }
      ] }],
      "code": { "coding": [
        { "system": "http://loinc.org", "code": "85354-9" }
      ] },
      "subject": { "reference": "Patient/xufn84vpa69bโ€ฆ998c1" },
      "effectiveDateTime": "2026-08-12T09:14:00Z",
      "component": [
        {
          "code": { "coding": [
            { "system": "http://loinc.org", "code": "8480-6" }
          ] },
          "valueQuantity": {
            "value": 128, "unit": "mmHg",
            "system": "http://unitsofmeasure.org", "code": "mm[Hg]"
          }
        }
        // + 1 more item: diastolic (LOINC 8462-4), same shape
      ]
    }
  }]
}

Performance for Real Clinical Workloads

A Rust core built to keep latency low and throughput high without oversized infrastructure.

<10ms

Create and update latency

>25k/s

Writes per second, 10 threads

<50ms

Typical search response

<100MB

Memory footprint per instance

Benchmarked on a single machine with Postgres 18 and a Synthea-generated dataset, 10 threads.

Who it's for

Built for Teams Moving Fast on Healthcare Data

Secure by Default โ€” Even for Autonomous Agents

TOTP-based MFA, argon2 password hashing, and CSRF-protected auth flows. Scoped OAuth clients for every agent. Attribute-based access policies. Immutable, versioned resource history. The controls a HIPAA review actually asks for, not a checkbox.