Head to head · FHIR servers · October 2026 research run

Medplum vs Zus Health

Medplum scores 68.7 (B) on agent readiness against Zus Health's 56.6 (C), and leads in every scored category. Both do fhir servers.

Best health record and wellness data APIs for AI agents · All 63 health comparisons

Which one, for what

Medplum B

Best for An agent working inside a digital health company's own FHIR store, reading and writing patients, observations and appointments under a BAA.

Ahead on

  • Reliability, 75 against 66
  • Schema & documentation, 82 against 77
  • Agent ergonomics, 73 against 67
  • Security & auth, 74 against 49
  • Payments & pricing, 25 against 5
  • Maintenance & community, 93 against 64
  • Transparency & trust, 72 against 59

Also in its favour

  • A hosted endpoint, with nothing to install
  • Open source

Watch for

The MCP fhir-request tool can delete or overwrite any resource the token allows, with no readOnlyHint or destructiveHint

Zus Health C

Best for US care organisations and digital health builders that want a shared, continuously refreshed patient profile in FHIR with EHR embedding.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No public prices, and the sandbox is requested through a Google Form

Score by category

CategoryWeight this runMedplumZus HealthEdge
Reliability16%207566Medplum +9
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28277Medplum +5
Agent ergonomics13%16.27367Medplum +6
Security & auth14%17.57449Medplum +25
Payments & pricing10%12.5255Medplum +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.89364Medplum +29
Transparency & trust7%8.87259Medplum +13
Negative events≤15-20
TotalB 68.7/100C 56.6/100

Facts side by side

FactMedplumZus Health
KindHTTP APIHTTP API
VendorOrangebot, Inc. (dba Medplum)Zus Health, Inc.
Hosted endpointhttps://api.medplum.com/mcp/streamno (local only)
TransportsHTTP, Streamable HTTP, SSE (legacy)HTTP
AuthOAuthOAuth
PricingFreemiumPaid
x402nono
LicenceApache 2.0 for the server, SDKs and apps in medplum/medplum. The hosted service at api.medplum.com runs under Medplum's terms of serviceProprietary service under the Zus Builder Terms of Service (last updated 11 March 2025), the Developer Sandbox Terms and the Zus Business Associate Addendum
Tools exposed3none
Read-only variant documentedyesno
llms.txtyesyes
MCP registrycom.medplum/mcpnot listed
Last release2026-10-082026-10-14
Terms last updated2023-04-112025-03-11
Privacy policy last updated2022-04-052026-06-24
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waiveryesnot found in the text
Popularity2.7k stars, 270k npm/wknone

Verdicts

Medplum

Graded on the hosted FHIR API at api.medplum.com. Rate limits, a RateLimit header and a 99.99 per cent SLA are published, AccessPolicy resources allow read-only clients, and an official MCP server sits in the registry. Its main tool can delete records with no annotation, the status page could not be read, and the privacy policy dates from 2022.

Zus Health

FHIR R4 over an aggregated patient profile drawn from CommonWell, Carequality, Surescripts, Quest and ADT networks, with published rate limits, a 99.5 per cent SLA and a dated changelog. Accounts and sandboxes are provisioned by Zus on request, with no public prices, no named security certification and no SDK.

Before you call either

Medplum

  1. Use a ClientApplication with an AccessPolicy limited to the resources the task needs, and set readonly where no writes are needed
  2. Read the RateLimit header and wait for the reset time after a 429. Writes cost 100 quota points, searches 20 and reads 1
  3. Create patients with conditional create (If-None-Exist) or upsert on an identifier so a retry doesn't make a duplicate
  4. Pass paths to fhir-request relative to the FHIR R4 base, with no leading slash or /fhir/R4 prefix
  5. Use Prefer: respond-async for large bundles. Operations inside the background job don't count against the quota

Zus Health

  1. Cache the access token for its hour. More than 200 token requests an hour per App Client returns 429
  2. Request Patient History at most once per patient per 24 hours, and poll the job status endpoint
  3. Use conditional create by identifier so a retried write doesn't duplicate a resource
  4. Send Zus-If-Match with the resource's ETag on PUT and PATCH
  5. Set _count up to 500 on searches, since the default page is 10

Questions

Which is better for AI agents, Medplum or Zus Health?

Medplum scores 68.7 (B) on agent readiness against Zus Health's 56.6 (C), and leads in every scored category.

Do Medplum and Zus Health need an API key?

Both use an OAuth sign-in.

Can an agent call Medplum and Zus Health without installing anything?

Medplum has a hosted endpoint at https://api.medplum.com/mcp/stream. No hosted endpoint is listed for Zus Health.

Are Medplum and Zus Health open source?

Medplum is open source (Apache 2.0 for the server, SDKs and apps in medplum/medplum. The hosted service at api.medplum.com runs under Medplum's terms of service). No open-source release is listed for Zus Health.

Other comparisons with Medplum or Zus Health

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.