5 FHIR Servers With the Best Bulk Export Performance in 2026

Bulk export is where FHIR servers reveal their actual database engineering. The `$export` operation has to extract a population's worth of FHIR resources into NDJSON files, deliver them on a schedule the consumer can handle, and not crash the rest of the server while doing it. The five servers below have shown the best bulk export performance in 2026 production deployments, with sustained throughput in the tens of thousands of resources per second range. For more practical FHIR walkthroughs, the broader FHIR coverage walks through the surrounding topics.

Five Servers Worth Evaluating for Bulk Export

  1. Aidbox. Reported bulk export throughput in the 15,000 to 21,000 resources-per-second range on standard hardware. The architecture separates the export workload from transactional reads cleanly, which keeps the rest of the server responsive during a long-running export.
  1. Smile Digital Health CDR. Strong bulk export support built on top of HAPI with operational improvements specifically for the export workload. Picked by enterprise customers running nightly population-level extracts.
  1. HAPI FHIR with the bulk export module. The reference open-source implementation. Throughput depends heavily on the underlying database tuning, but well-tuned HAPI deployments hit acceptable bulk export performance for mid-size populations.
  1. Microsoft Azure API for FHIR. Managed bulk export with delivery directly to Azure Blob Storage, picked by teams that want the export output to land in a familiar Azure data lake.
  1. Google Cloud Healthcare API. Bulk export delivery to Google Cloud Storage, similar trade-offs to the Azure option, picked by teams on Google Cloud.

The five cover the realistic bulk export options a healthcare analytics team evaluates in 2026.

What Makes Bulk Export Performance Good

Bulk export performance has three components that matter independently. Raw throughput, measured in resources per second on a representative dataset. Memory behavior, because servers that build the entire export in memory before streaming start failing at population scale. And resource-graph traversal correctness, because population-level export has to follow the FHIR reference graph cleanly without missing related resources or producing duplicates.

A server that wins on raw throughput but stumbles on graph traversal produces fast garbage. A server that handles the graph correctly but takes 12 hours to extract a million patients fails the actual analytics use case. The servers above clear both bars under realistic 2026 workloads.

How to Test Bulk Export Before Committing

The reliable test is a representative export run, not a synthetic benchmark. Pick a realistic population (say, 100,000 patients with the full resource graph), run a group-level `$export` with the resource types the downstream analytics team actually needs, and measure end-to-end wall-clock time including the NDJSON file delivery. A server that runs the export in under an hour on that workload is unlikely to surprise the analytics team. A server that takes more than four hours signals that the architecture and the analytics use case are mismatched.

The FHIR server complete guide covers the broader server selection frame. The FHIR API tools roundup for EHR/EMR integrators covers the client-side tooling that consumes the exported NDJSON, and the subscription engine guide covers the streaming alternative that some analytics teams pick when batch export is the wrong shape.

Sources

Aaliyah Jenkins

Interoperability specialist in Indianapolis. Covers MLLP, HL7v2 transport, and the parts of healthcare integration that haven't changed in 20 years.