healthapi.dev
by maely.ai MIT licensed

The free healthcare
data API.

Normalized access to US public healthcare data — providers, facilities, plans, drugs, codes, and clinical guidance. Agent-ready. Free to use. No signup required.

Sources

45+

Signup

none

License

MIT

zsh — healthapi.dev live
~  curl "https://api.healthapi.dev/v1/providers/1234567893"
// HTTP/2 200 · 42ms · x-maely-source: cms.nppes
{
  "npi": "1234567893",
  "kind": "individual",
  "name": "Jane Smith, MD",
  "taxonomy": "Internal Medicine",
  "addresses": […3],
  "meta": {
    "source": "cms.nppes",
    "as_of": "2026-04-01",
    "confidence": 0.98
  }
}

01 / POSTURE

Free & open source

MIT-licensed. Self-hostable. Fork the ingest pipeline or run ours.

#OSS

02 / SHAPE

Agent-ready

Atomic resources. Provenance + confidence as first-class fields. Anthropic tool-spec at /tools.

#AGENT

03 / HISTORY

Point-in-time

Every ingest is an immutable snapshot. Query historical state with ?as_of=YYYY-MM-DD.

#TIME

— no signup, no header, no SDK —

One curl. You're on the network.

Anonymous tier is IP-rate-limited. Get an API key for higher limits.

sh anonymous tier
$ curl "https://api.healthapi.dev/v1/search?q=lisinopril" | jq '.results[0]'

— one API surface

Every healthcare primitive, normalized.

01 · Providers

Providers

Individual practitioners, keyed by NPI. Taxonomy, addresses, directory verification, participation confidence.

"npi": "1234567893"
"taxonomy": "Internal Medicine"
"confidence": 0.98
GET /v1/providers/{npi}
02 · Facilities

Facilities

Institutional providers by CCN. Hospital Compare quality, Care Compare measures.

"ccn": "010001"
"type": "acute_care"
"measures": […24]
GET /v1/facilities/{ccn}
03 · Plans

Plans

Issuers, plans, formularies. TiC MRFs normalized.

GET /v1/plans/{id}
04 · Drugs

Drugs

RxNorm concepts, NADAC pricing, formulary tiers.

GET /v1/drugs/{rxcui}
05 · Clinical

Clinical

USPSTF, MedDRA conditions, coverage recommendations.

GET /v1/clinical
06 · Codes

Codes

ICD-10, CPT, HCPCS. License-aware serving.

GET /v1/codes/{system}/{code}
07 · Resolve

Resolve

Free-text → canonical identifier. "lipitor 20mg" → RxCUI 617312.

POST /v1/resolve

— live playground

Hit the API right here.

01 / Endpoint

Look up an individual practitioner by NPI.

02 / Parameters

response
// press ⏎ run to send — the curl below shows what we'll do
curl "https://api.healthapi.dev/v1/providers/1234567893"

— built for agents

Tool specs.
Provenance.
Shipped by default.

Every endpoint returns meta.source, meta.as_of, and meta.confidence, so your LLM can reason about data freshness and cross-source agreement without guessing.

GET /v1/tools?format=anthropic
Every endpoint rendered as an Anthropic tool-spec. Paste and go.
meta.confidence_chain[]
Composite scoring across every source that contributed to the resolved entity.
error.suggested_action
Machine-readable next steps on 4xx — agents self-correct without a human in the loop.
tool-spec.json anthropic
{
  "name": "search_providers",
  "description": "Find US healthcare providers...",
  "input_schema": {
    "type": "object",
    "properties": {
      "q": { "type": "string" },
      "taxonomy": { "type": "string" },
      "state": { "type": "string", "pattern": "^[A-Z]{2}$" }
    },
    "required": ["q"]
  }
}

install

pnpm add @maely/sdk

Typed client for every endpoint — zero config.

claude skill

pnpm dlx @maely/cli skill install claude

Ships Maely for Claude with every endpoint pre-wired.

— open source

No vendor lock-in.
Just Postgres + S3.

45+ public data sources ingested. MIT-licensed glue code — the moat is the pipeline, not the ~5K lines of TS/SQL. Fork it, run it on your own infra, or use ours.

SOURCES INGESTED

CMS FDA HHS CDC HRSA Census AHRQ USPSTF NADAC NPPES NPI ICD-10 CPT HCPCS RxNorm MedDRA +29 more

INGEST INTEGRITY

license_class tracked per-row
snapshots immutable
as_of queryable

Start shipping.

Free forever on the anonymous tier. Higher limits are one signup away.