Releasesv0.1.0

Health data aggregators compared

Terra, Open Wearables, Junction, Thryve and the other ways to collect wearable and health data: what each one is, what it costs, and when to pick it.

A health data aggregator collects data from wearables and health apps (Apple Health, Health Connect, Oura, WHOOP, Garmin, Fitbit, Withings and others) and gives your product one API for all of them, instead of one integration per vendor. There are three ways to get one: a hosted API such as Terra or Junction, an open source aggregator you run yourself such as Open Health Sync or Open Wearables, or code you write and maintain.

This page compares the main options. Facts about other products come from their own sites, pricing pages and repositories, checked on 2026-10-17. Prices and integration counts change, so check their pages too.

The options

KindLicenseStarting priceSources it claims
Open Health SyncOpen source, self-hostedAGPL-3.0Free, you pay for your server13 available (list)
Open WearablesOpen source, self-hostedMITFree, custom Enterprise tier13 providers
TerraHosted APIProprietary$399 a month billed annually, $499 monthly500+ wearables and sources
Junction (formerly Vital)Hosted API, plus lab testingProprietary$300 a month for up to 500 users300+ devices
ThryveHosted API, hosted in EuropeProprietary499 EUR a month for up to 500 users500+ trackers
Spike APIHosted APIProprietaryFrom $450 a month40+ providers, 500+ devices
SahhaHosted API, with health scoresProprietaryFree for 30 days, then from $299 a month billed annually165 integrations
ROOKHosted API, with lab and EHR dataProprietary$399 a month for up to 750 users500+ devices
Shimmer (Open mHealth)Open source, self-hostedApache-2.0Free6 APIs. No commit since 2021, last release in 2017
Your own codeSelf-hostedYoursYour timeThe ones you build

Detailed comparisons:

Hosted, open source or your own code

Open Health SyncHosted wearables APIOther open source aggregatorsWriting it yourself
Where the data livesYour serverThe vendor's cloud, then yoursYour serverYour server
CostFree, plus hostingA monthly plan, priced per connected userFree, plus hostingYour time
Standard outputsFHIR R4, Open mHealth, CSV, Parquet, RESTMostly their own JSON. Some add FHIRUsually their own JSONWhat you build
AI agentsRead-only MCP server, stdio and HTTPSeveral ship an MCP serverSome ship an MCP serverWhat you build
Raw payloads keptAlwaysVariesVariesWhat you build
Runs on a Raspberry PiYes, one binaryNoUsually several servicesDepends
Vendor developer appsYou register your ownOften theirsYou register your ownYou register your own
GarminNext release, with your own Garmin appMost have itSome have itNeeds Garmin's approval
DashboardAdmin console, no end-user dashboardYesSome ship oneWhat you build

Pick a hosted API when you need Garmin or a long tail of devices today, do not want to run a server, or need your vendor's SOC 2 and HIPAA attestations. Pick an open source aggregator when the data has to stay on your infrastructure, per-user fees do not fit, or you want to read and change the code. Pick Open Health Sync among those when standard formats (FHIR R4, Open mHealth), kept raw payloads, several tenants on one instance, or a small footprint matter to you.

Common questions

Is there an open source alternative to Terra?

Yes. Open Health Sync and Open Wearables are both free, open source and self-hosted. Open Health Sync puts standards first (FHIR R4, Open mHealth, raw payloads kept) and runs as one Go binary; Open Wearables has the larger community, a dashboard and an MIT license. See Terra API alternative and Open Health Sync vs Open Wearables.

How much does a wearable data API cost?

Hosted APIs start between $300 and $500 a month and charge per connected user past what the plan includes, as in the table above. An open source aggregator costs nothing to use: you pay for the server, and for any vendor partner program that charges developers.

How do I get my Apple Health data into a database?

Run Open Health Sync, then load the export the Health app writes on your iPhone (Settings, Health, Export All Health Data) with ohs import apple-health. History included, it lands in Postgres as samples, sleep, workouts and daily summaries you can query over the REST API or with SQL. For continuous sync, an iOS app uploads new HealthKit data to the Apple Health connector, with the Swift SDK doing the reading. Step by step: Import Apple Health data into PostgreSQL.

How do I give Claude or another AI assistant access to my health data?

Open Health Sync includes an MCP server. Mint a read-only token for one person and add the server to Claude Desktop, Claude Code or any MCP client: the agent can read samples, sleep, workouts and daily summaries, and cannot write or delete anything. See the MCP server reference, or Connect Claude to your Apple Health data step by step.

How do I get wearable data as FHIR?

Open Health Sync serves FHIR R4 Observations (samples, blood pressure, sleep, workouts, daily summaries) with LOINC codes and UCUM units, plus the Patient, its Devices and Provenance, checked with the official HL7 validator. See FHIR R4, or Get Oura data as FHIR R4 for a worked example.

What happened to Open mHealth Shimmer?

Shimmer was the open source aggregator of the Open mHealth project: it read Fitbit, Withings and a few other APIs and wrote Open mHealth data points. Its repository has had no commit since May 2021 and no release since 2017, and several of the APIs it supported no longer exist. Open Health Sync writes the same Open mHealth data points, checked against the official schemas, from 13 current sources.

Which devices and apps does Open Health Sync support?

Thirteen sources are available: Apple Health, Health Connect (and through it Samsung Health and other Android apps), Withings, Oura, WHOOP, Strava, Polar, Fitbit, Suunto, Ultrahuman, intervals.icu, Dexcom and OMRON. Garmin, Xiaomi, FIT, GPX and TCX activity files, and standard Bluetooth health devices are on main for the next release. Others are planned. The connectors page lists the status and integration path of each.

Next

  • Quickstart: a running instance with synthetic data in a few minutes.
  • Architecture: the pipeline from raw payload to clean record.
Edit on GitHub

On this page