Solutions

The wearable data API for health apps.

Pull WHOOP, Oura, Apple Health, Google Health Connect, and Garmin data through one interface. Get back normalized HRV, sleep staging, recovery scores, and strain metrics — over REST and MCP.

7.3
HRV · RMSSD
WHOOPOuraApple HealthGarmin

What the wearable data API handles

Device-agnostic normalization

WHOOP reports HRV as RMSSD. Oura reports it as rMSSD with different scaling. The API normalizes all of it into one schema with consistent units, so your app never has to care which device the data came from.

Sleep staging and efficiency

Deep, REM, light, and awake time — normalized across devices. Sleep efficiency scores, latency, and consistency trends computed automatically. Compare sleep quality week over week.

Recovery and readiness

Every device has its own recovery score. The API normalizes them into a common readiness metric and correlates them against HRV, resting heart rate, and sleep data so you can surface what's driving recovery up or down.

Strain and activity

Daily strain, workout load, steps, and active minutes — normalized across WHOOP, Oura, Apple Health, and Garmin. Longitudinal trends with week-over-week deltas included in every response.

OAuth-managed connections

Users connect WHOOP and Oura once through OAuth. The API manages token refresh, revocation, and scoping. You call a single sync endpoint; we handle the rest.

Multimodal correlation

The real power: correlate wearable recovery trends with lab biomarker results and genetic variants in one analysis call. See that falling HRV alongside rising triglycerides, with your APOE genotype in context.

How the pipeline works

From OAuth connection to normalized metrics in four steps. Built on the open-wearables library — same pipeline runs self-hosted.

1

Connect

Your user authorizes WHOOP or Oura via OAuth. Or they upload an Apple Health or Garmin export. One endpoint per modality.

2

Normalize

The open-wearables pipeline normalizes every metric into a common schema: HRV as RMSSD/SDNN, sleep as time-in-stage, activity as strain.

3

Sync and trend

Call the sync endpoint to pull the latest data. Longitudinal trends, deltas, and week-over-week changes are computed automatically.

4

Cross-reference

Run multimodal analysis to correlate wearable trends with lab results and genetics. Everything in one call over REST or MCP.

Combine with

Genomics API →

Ingest VCF, WGS, 23andMe, and AncestryDNA exports. ClinVar annotation, polygenic risk scores, pharmacogenomics. Correlate genetic risk with real-time wearable data.

Biomarker API →

Send a CSV or JSON lab panel. Get back normalized biomarkers, domain scores, derived metrics, and longitudinal trends. Correlate lab results with real-time wearable data.

Questions about the wearable data API

Which wearables do you support?

WHOOP and Oura via OAuth, plus Apple Health and Google Health Connect exports. Garmin data can be uploaded as an export file. We add new integrations based on developer demand.

How does the normalization work?

Every wearable reports HRV, sleep, and activity differently. The API normalizes all of it into a common schema: HRV as RMSSD and SDNN, sleep as time-in-stage with efficiency scores, and activity as strain and recovery. Your app gets one consistent data model regardless of the source device.

Can I combine wearables with other data?

Yes. This is the key advantage. Run a multimodal analysis that correlates wearable recovery trends with lab biomarker results or genetic variants. The pipeline cross-references all three modalities automatically.

How often does data sync?

OAuth-connected devices sync on demand when you call the sync endpoint. The free tier includes 10 syncs per month. Paid plans increase the allowance. You control when syncs happen — no background polling you didn't ask for.

Is the wearable pipeline open source?

Yes. The open-wearables normalization library is on GitHub and runs identically self-hosted or on the hosted API. The hosted version adds OAuth token management and EU infrastructure.

Aggregate wearable data across providers without building a separate integration for each one.

Try with your agentSee pricing