Quick Overview
| Capability | Apple | Garmin | Polar | Suunto | Oura | Whoop | Ultrahuman | Strava | Fitbit | Health Connect |
|---|---|---|---|---|---|---|---|---|---|---|
| OAuth | Not available | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available |
| Workouts | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Supported | Supported |
| Sleep | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Coming soon | Supported |
| 24/7 Data | Supported | Supported | Supported | Supported | Supported | Partial | Supported | Not available | Coming soon | Supported |
| Timeseries | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Partial | Coming soon | Supported |
| Health Scores | Not available | Supported | Supported | Not available | Supported | Supported | Not available | Not available | Not available | Not available |
| Women’s Health | Coming soon | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Coming soon |
Legend
Legend
Full support - fully implemented and collecting data Partial - limited data or only during certain contexts (e.g. workouts only) Coming soon - provider API supports this, processing not yet implemented Not available - provider does not support this or not applicable
Timeseries = Granular, timestamped data points (heart rate samples, step counts, HRV readings) available via the
/timeseries API endpoint.24/7 Data = Continuous health monitoring throughout the day (not just during workouts), including resting heart rate, HRV during sleep, SpO2 spot checks, and daily activity samples.Detailed Coverage Matrix
- Timeseries
- Workout
- Sleep
- Women's Health
- Meals
- Health Scores
| 134 rows | Apple | Fitbit | Garmin | Google Health | Health Connect | Oura | Polar | Samsung | Sensorbio | Strava | Suunto | Ultrahuman | Whoop | Withings |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Heart & Cardiovascular | ||||||||||||||
heart_ bpm | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Supported |
heart_ bpm | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
heart_ ms | Not available | Not available | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Supported | Supported | Supported | Supported |
heart_ ms | Supported | Not available | Supported | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
resting_ bpm | Supported | Not available | Supported | Supported | Supported | Supported | Not available | Not available | Supported | Not available | Supported | Supported | Supported | Supported |
walking_ bpm | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Blood & Respiratory | ||||||||||||||
blood_ mg_dl | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
blood_ mg_dl | Supported | Not available | Not available | Supported | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
blood_ mmHg | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
blood_ mmHg | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
breathing_ score | Not available | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
forced_ liters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
forced_ liters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
oxygen_ percent | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Supported | Supported |
peak_ L/min | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
peripheral_ score | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
respiratory_ brpm | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Not available |
sleeping_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Body Composition | ||||||||||||||
body_ kg | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
body_ percent | Supported | Not available | Supported | Supported | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
body_ kg_m2 | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
body_ celsius | Supported | Not available | Not available | Supported | Supported | Not available | Supported | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
body_ kg | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
bone_ kg | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
height cm | Supported | Not available | Not available | Not available | Supported | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Supported | Supported |
lean_ kg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
skeletal_ kg | Not available | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
skin_ celsius | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Supported | Supported | Supported |
skin_ celsius | Not available | Not available | Supported | Supported | Not available | Supported | Supported | Not available | Not available | Not available | Not available | Supported | Not available | Not available |
skin_ celsius | Not available | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
waist_ cm | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
weight kg | Supported | Not available | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Supported | Supported |
| Fitness Metrics | ||||||||||||||
cardiovascular_ years | Not available | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
six_ meters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
vo2_ ml_kg_min | Supported | Not available | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Not available | Not available | Supported | Not available | Supported |
| Activity - Basic | ||||||||||||||
active_ kcal | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Supported | Supported |
active_ minutes | Not available | Not available | Supported | Not available | Not available | Supported | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
average_ met | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
basal_ kcal | Supported | Not available | Not available | Supported | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Supported |
exercise_ minutes | Supported | Not available | Supported | Supported | Not available | Supported | Supported | Not available | Not available | Not available | Not available | Supported | Not available | Supported |
flights_ count | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
physical_ score | Supported | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
stand_ minutes | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
steps count | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Supported | Supported | Supported |
| Activity - Distance | ||||||||||||||
distance_ meters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
distance_ meters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
distance_ meters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
distance_ meters | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
distance_ meters | Supported | Not available | Supported | Supported | Supported | Supported | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Supported |
| Activity - Walking | ||||||||||||||
stair_ m_per_s | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
stair_ m_per_s | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
walking_ percent | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
walking_ percent | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
walking_ m_per_s | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
walking_ percent | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
walking_ cm | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Activity - Running | ||||||||||||||
running_ ms | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
running_ watts | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
running_ m_per_s | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
running_ cm | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
running_ cm | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Activity - Swimming | ||||||||||||||
swimming_ count | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Activity - Generic | ||||||||||||||
cadence rpm | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Supported | Not available | Supported | Not available | Not available | Not available | Not available |
estimated_ score | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
power watts | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available |
speed m_per_s | Supported | Not available | Supported | Not available | Supported | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available |
workout_ score | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Environmental | ||||||||||||||
air_ celsius | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
elevation meters | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
environmental_ dB | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
environmental_ dB | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
headphone_ dB | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
inhaler_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
latitude degrees | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
longitude degrees | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
time_ minutes | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
uv_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
water_ celsius | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
weather_ percent | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
weather_ celsius | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Provider-Specific | ||||||||||||||
garmin_ percent | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
garmin_ years | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
garmin_ score | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
withings_ years | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
withings_ m_per_s | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Supported |
| Nutrition | ||||||||||||||
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ kcal | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ kcal | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Not available | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ g | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mcg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
dietary_ mg | Supported | Not available | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
| Other | ||||||||||||||
atrial_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
electrodermal_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
hydration mL | Supported | Not available | Not available | Supported | Supported | Not available | Not available | Supported | Not available | Not available | Not available | Not available | Not available | Not available |
insulin_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
number_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
number_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
push_ count | Supported | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available | Not available |
supported not available
Provider Quirks
Key differences and limitations to be aware of when working with each provider:Apple Health
Apple Health
Integration Method: Push-based via SDK (no OAuth)
- Data arrives via client SDK push, not server-to-server sync
- Workouts (most metrics), sleep (stages, duration), and 100+ health record types via HealthKit SDK
- Most comprehensive data coverage (100+ metric types)
- Full sleep processing with stages (deep, light, REM, awake), duration, and time in bed
- Sleep biometrics (HR, HRV, SpO2 during sleep) not yet extracted as part of sleep records
- Some walking metrics require iPhone in pocket during activity
- HRV is measured as SDNN, typically during sleep or rest periods
Garmin
Garmin
Integration Method: OAuth 2.0 + Webhooks
- Webhooks push data for 16 data types: activities, sleep, dailies, epochs, body composition, HRV, stress, respiration, pulse ox, blood pressure, user metrics, skin temperature, health snapshots, activity details, Move IQ, and menstrual cycle tracking
- Full sleep processing with stages (deep, light, REM, awake), duration, efficiency score, and heart rate biometrics
- Continuous 24/7 timeseries data: heart rate, steps, energy, HRV (RMSSD, overnight sleep window), stress levels, body battery, respiratory rate, SpO2, and more
- Body composition from Garmin Index scale: weight, body fat %, BMI
- Garmin-specific metrics: stress level, body battery, fitness age, skin temperature
- 135+ workout type mappings to unified taxonomy
- Workout details include distance, calories, avg/max heart rate, elevation gain, and average speed
- Backfill orchestration for historical data retrieval (up to 5 years)
- Menstrual cycle tracking (MCT): cycle phase, day in cycle, cycle/period length, fertile window, and pregnancy snapshot via the
mctwebhook type
Polar
Polar
Integration Method: OAuth 2.0 (pull + webhook)
- Data synced via periodic polling; real-time webhook notifications for exercise, sleep, activity, nightly recharge, and Sleepwise events
- Webhooks are notify-only: Polar sends a lightweight event payload, Open Wearables acknowledges immediately and enqueues a targeted sync for the affected data type
- Full sleep processing with stages (deep, light, REM, awake), duration, time in bed, and stage timestamps from hypnogram; sleep efficiency not available in the API
- Sleep HR timeseries saved from per-night heart rate samples (not summarised avg/min on the sleep record)
- Continuous 24/7 heart rate sampled at ~5-min intervals via range endpoint (90-day lookback)
- Daily activity: steps, active calories, and walking/running distance from
/v3/users/activities - Health scores: sleep score, Nightly Recharge (recovery), Cardio Load (strain)
- Sleepwise Alertness and Circadian Bedtime scores require an active Polar Sleepwise subscription
- Body temperature, sleep skin temperature, SpO2, and wrist ECG (HRV RMSSD) require a Polar Elixir device
- HRV RMSSD available from Elixir SpO2 spot tests and wrist ECG measurements; not available from standard devices; SDNN not provided
- 75+ workout type mappings to unified taxonomy
- Exercises fetched from
/v3/exercises(all exercises in Polar Flow for the connected user; no date filter)
Suunto
Suunto
Integration Method: OAuth 2.0 + 24/7 Data API
- Most complete cloud-based provider (workouts + sleep + continuous data)
- Full sleep analysis with stages and biometrics (HR, HRV, SpO2)
- Activity samples include heart rate, steps, SpO2, energy, and HRV
- HRV measured as RMSSD, available during activity and sleep
- Daily activity statistics for aggregated steps and energy
- 121+ workout type mappings to unified taxonomy
- Recovery data: Balance score (0-100) mapped to recovery_score
Oura
Oura
Integration Method: OAuth 2.0 + Webhooks
- Webhooks push real-time notifications for: daily activity, daily readiness, daily sleep, daily SpO2, and workouts
- Full sleep processing with stages (deep, light, REM, awake), duration, time in bed, efficiency score, stage timestamps, and nap detection
- Sleep biometrics: lowest heart rate persisted as a daily
resting_heart_ratesample and average breathing rate persisted asrespiratory_rate; average HR and average HRV are available from the API but not yet persisted per sleep record - Continuous 24/7 timeseries: heart rate (5-min intervals), HRV (RMSSD, 5-min intervals), daily SpO2, steps, active calories, walking distance
- Recovery data from daily readiness: recovery score, skin temperature deviation, and skin temperature trend deviation
- Fitness metrics: VO2 max (daily estimate) and cardiovascular age — both require the
heart_healthOAuth scope - Personal info sync: height and weight from user profile
- Oura does not expose heart rate data during workouts via API; workout records include only duration, type, calories, and distance
temperature_deviationandtemperature_trend_deviationreflect skin temperature relative to baseline (not absolute body temperature)- Backfill defaults to 30 days when no date range is specified
Whoop
Whoop
Integration Method: OAuth 2.0 (pull + webhook)
- Data synced via periodic polling (default: every hour) and real-time webhook notifications for
workout,sleep, andrecoveryevents - Full workout support with 122 workout type mappings to unified taxonomy
- Workout types are matched on Whoop’s lowercase hyphenated
sport_nameslug (e.g.hiking-rucking), falling back to the deprecated numericsport_idfor unlisted slugs - Workout metrics include: avg/max heart rate, calories, distance, elevation gain, moving time
- Continuous heart rate data is not available via API (only during workouts)
- Daily step count from the cycle’s
step_count(null when there is no step data, e.g. the device was not worn) - Sleep data fully implemented with all stages and efficiency
- Recovery data fully implemented: recovery score, resting heart rate, HRV (RMSSD), SpO2, skin temperature
- Body measurements (height, weight) synced from user profile
- Strain scores: daily (from scored cycles) and per workout
Ultrahuman
Ultrahuman
Integration Method: OAuth 2.0 (pull-based polling)
- Data synced via periodic polling (default: every hour); Ultrahuman does not support webhooks
- Daily metrics endpoint returns all data types for a single day: sleep, HR, HRV, skin temperature, steps, VO2 max, recovery indices
- Full sleep processing with stages (deep, light, REM, awake), duration, time in bed, and efficiency score
- Continuous 24/7 timeseries: heart rate, HRV (RMSSD), skin temperature, steps
- VO2 max as a daily aggregate value
- Recovery metrics (recovery index, movement index, metabolic score) are normalized but not yet persisted
- No workout/activity data available via the Partnership API
- Skin temperature values are typically lower than core body temperature (~29-37°C)
- Backfill defaults to 30 days when no date range is specified
Strava
Strava
Integration Method: OAuth 2.0 + Webhooks
- Activity/workout platform only — no sleep, HRV, or continuous health data
- Real-time webhook notifications for new and updated activities
- 50+ sport type mappings to unified taxonomy (SportType) plus legacy ActivityType support
- Workout metrics include: avg/max heart rate, distance, avg/max speed, avg/max watts, elevation (gain/high/low), calories, moving time, device name
- Per-sample workout streams (heart rate, speed, cadence, power) ingested as
/timeseriesdata wheningest_workout_samplesis enabled — scoped to workouts only, not continuous 24/7 - Calories fall back to kilojoules when calorie data is not available from the API
- Only one webhook subscription allowed per application
- Webhook must respond with HTTP 200 within 2 seconds; retries up to 3 times on failure
Fitbit
Fitbit
Integration Method: OAuth 2.0 with PKCE (pull-based polling)
- Data synced via periodic polling only; the Fitbit Subscriptions API (webhooks) is not yet implemented
- Workout/activity data only today, fetched from the Activities List API with pagination; backfill defaults to 30 days
- Workout metrics populated: avg heart rate, calories, distance, steps, and device name; min/max heart rate, speed, and elevation are offered by the API but not yet processed; power is not available
- Workout distance is currently stored as the raw kilometer value from the API; conversion to the platform meter unit is pending
- Sleep, intraday heart rate, HRV, SpO2, breathing rate, skin temperature, and body measurements are available in the Fitbit Web API but processing is not yet implemented
- Intraday timeseries requires a Fitbit “Personal” app type or Fitbit approval for server applications
- 14 activity type ID mappings plus 25 name-based fallbacks to the unified taxonomy; unrecognized activities map to “other”
Health Connect (mobile SDK)
Health Connect (mobile SDK)
The
health_connect provider — data pushed from an Android device. Stored records carry the originating app’s name in source (e.g. the app that wrote to Health Connect). The Google Health API cloud path is the separate google_health provider, below.Integration Method: Push-based via Android SDK (no OAuth)- 25+ Health Connect record types mapped to unified series: heart rate, resting HR, HRV, SpO2, blood pressure, respiratory rate, body measurements, steps, calories, and distance
- Full sleep processing with stages (deep, light, REM, awake), duration, time in bed, efficiency score, and stage timestamps
- Workout sessions carry duration, type and start/end times, plus whatever aggregates the payload’s
statisticssupply (energy, heart rate, distance); workout field coverage is declared from the shared SDK field sets, so a session does not necessarily populate every field listed for it above - HRV is measured as RMSSD; SDNN is not available
- Body fat percentage arrives already in percent
- Blood glucose arrives in mmol/L; values are stored as received until unit conversion ships
- Health Connect basal metabolic rate is a kcal/day rate stored into the kcal
basal_energyseries - All Health Connect distance is stored as
distance_walking_runningregardless of activity type - No health scores; GPS routes and in-workout sample streams are accepted by the SDK payload but not yet processed
Google Health (cloud OAuth)
Google Health (cloud OAuth)
The
google_health provider — the Google Health API cloud path. Stored records carry the fixed marker source = "google_health_api". All endpoints are under https://health.googleapis.com/v4/users/me.Integration Method: OAuth 2.0 (cloud pull) + push webhooks (notify-only, trigger a windowed pull)- 24/7 metrics (heart rate, steps, calories, distance, SpO2, respiratory rate, body measurements, etc.) come from
dataTypes/{dataType}/dataPoints:reconcile(default) ordataTypes/{dataType}/dataPoints(list) at native resolution, ordataTypes/{dataType}/dataPoints:rollUpwhen an hourly/daily granularity is configured - reconcile merges and deduplicates datapoints across all contributing source apps to match what the native Google Health app shows; list returns raw per-source datapoints (carries
dataSource). Steered by theGOOGLE_USE_RECONCILEflag (reconcile is the default) - Sleep sessions come from
dataTypes/sleep/dataPoints, with full stages, duration, time in bed, and efficiency - Workouts come from
dataTypes/exercise/dataPoints; ~150Exercise.ExerciseTypevalues mapped to the unified workout taxonomy - Identity (
healthUserId) is read fromusers/me/identityand stored as the provider user id for webhook routing - Webhooks are registered per GCP project at
projects/{project}/subscribers; notifications are notify-only and only carry the changed window, which is then pulled via the operations above - Workout and sleep field coverage is declared from the shared SDK field sets, so the cloud path does not necessarily populate every field listed for it above

