Releasesv0.1.0

Supported and planned sources

Every source, its status, integration path, data types and tracking issue.

A connector teaches Open Health Sync one source. Thirteen are available: Apple Health, Health Connect, Withings, Oura, WHOOP, Strava, Polar, Fitbit, Suunto, Ultrahuman, intervals.icu, Dexcom and OMRON. Xiaomi is on main for the next release. Every other source below is planned: it is not built yet, and no code for it runs today. To build one, start with writing a connector.

Status:

  • Available: ships in this release.
  • Next release: on main, ships in the next release.
  • Planned: on the roadmap, not built yet.
  • Via Health Connect: no server-side path we intend to use; the data comes through Android's Health Connect upload, from your Android app.
  • No public API: the vendor publishes no official API we can build on.

Integration paths, as checked in October 2026 (vendors change their programs, so check the linked tracking issue or the vendor's developer site before you start):

  • Cloud API, OAuth: the server pulls from the vendor's cloud with the user's consent, and may receive webhooks. A self-hosted instance needs its own developer app with the vendor.
  • Partner program: a cloud API, but only for companies the vendor approves.
  • On-device: the data lives on the phone (HealthKit on iOS, Health Connect or a vendor SDK on Android). A mobile app has to read it and upload it.
ProviderStatusIntegration pathData typesNotesTracking
Apple HealthAvailableOn-device (HealthKit). Your iOS app uploads gzip NDJSON parts to POST /v1/ingest/apple-healthQuantities, categories, sleep, workouts and routes, nutrition; ECG and heartbeat series storedThe Swift SDK reads HealthKit and uploads it, or your app implements the upload contract itself. ohs import apple-health loads a Health app export, history included. Data that other apps and devices write to HealthKit arrives this way too
WithingsAvailableCloud API, OAuth 2.0, scheduled pulls and push notificationsBody measurements, activity, sleep, workouts, ECGBring your own Withings developer app (guide)
OuraAvailableCloud API v2, OAuth 2.0, scheduled pulls, optional webhooks (updates and deletions)Sleep and stages, sleep score, readiness, daily activity, stress, heart rate, SpO2, VO2 max, workouts, meditation and breathing sessionsBring your own Oura API application (guide). Personal access tokens were retired at the end of 2025. Gen3 and later rings need an active Oura Membership for API access. An app needs Oura's approval past its first 10 users#5
WhoopAvailableCloud API v2, OAuth 2.0, scheduled pulls and webhooks (recovery, sleep, workout)Cycles (strain), recovery (score, resting heart rate, HRV as RMSSD, SpO2, skin temperature), sleep with stage durations, workouts, body measurementsBring your own app from the WHOOP Developer Dashboard (guide). The public API has no raw heart rate series, no hypnogram and no ECG#6
UltrahumanAvailablePartnership API, OAuth 2.0, scheduled daily pulls (no webhooks)Sleep with stages, heart rate, HRV (RMSSD), skin temperature and deviation, steps, resting heart rate, VO2 max; glucose with the M1 CGMNot self-serve: Partnership API keys come through Ultrahuman partner onboarding (guide). The personal-token API is not supported yet. Recovery, movement and metabolic scores stay raw only
GarminPlannedPartner program (Garmin Connect Developer Program: Health and Activity APIs), OAuth 2.0 with PKCE, Garmin pushes notifications (ping/pull or push)Daily summaries, sleep, stress, heart rate, activitiesFor approved business developers only; some data needs a commercial license fee. New access requests have been paused since spring 2026, per Garmin's replies to applicants; no public announcement or reopening date. Not usable by individuals self-hosting (research notes)#9
FitbitAvailableCloud API (Google Health API v4), Google OAuth 2.0 (restricted scopes), scheduled pulls and signed webhook notificationsActivity (steps, distance, floors, active energy), heart rate, resting heart rate, HRV (RMSSD), SpO2, respiratory rate, sleep with stages, workouts, weight, body fat, height, VO2 max, blood glucose, temperatureGoogle is not onboarding new Google Health API projects yet. Bring your own Google Cloud project and OAuth client (guide). Unverified apps: 100 users, 7 day refresh tokens while in Testing. The legacy Fitbit Web API (off 2026-10-30) is not used. Deletions are not propagated yet#9
PolarAvailableCloud API (AccessLink v3), OAuth 2.0, scheduled pulls and webhooksExercises, daily activity, sleep with hypnogram, Nightly Recharge, continuous heart rate, physical infoSelf-serve: bring your own AccessLink client from admin.polaraccesslink.com (guide); each user is registered after consent. The API only serves recent data (28 to 30 days for most types)#8
StravaAvailableCloud API v3, OAuth 2.0, scheduled pulls and webhook eventsActivities as workouts (summary figures; no streams or routes yet)Bring your own Strava API application (guide). A new app serves 1 athlete, 10 after a self-upgrade, more after Strava's review. The 2026 API terms forbid AI training on API data and restrict intermediary platforms; third parties report a paid Strava subscription is now needed for API access#7
intervals.icuAvailableCloud API v1, OAuth 2.0, scheduled pulls and webhooks (activity, wellness)Activities as workouts, keeping their upstream source (Garmin, Wahoo, Zwift, Coros, Suunto, Polar, uploads); daily wellness: weight, resting heart rate, HRV (RMSSD and SDNN), sleep score, steps, SpO2, respiration, body fat, VO2 max, blood pressureApply for an OAuth app at intervals.icu; the intervals.icu developer approves it (guide). No refresh tokens: a revoked token means reconnecting. Activities synced from Strava are not available through the API
CorosPlannedCloud API, OAuth 2.0; a partner API with webhooks for established platformsActivities, health metrics, fitness assessmentsPartner access is requested from COROS (api@coros.com); full docs are shared after registration
SuuntoAvailablePartner program (Suunto Cloud API), OAuth 2.0 with an API Zone subscription key, scheduled pulls and signed notificationsWorkouts (summary figures); 24/7 sleep, recovery and daily activity stored raw onlyCompanies and organizations apply to Suunto's partner program and sign its API agreement; not for personal use. Bring your own API Zone app and subscription key (guide). No FIT samples, laps or routes yet
DexcomAvailableCloud API v3, OAuth 2.0 (scope offline_access), scheduled pullsEstimated glucose values (EGVs) as blood_glucose, coded as interstitial glucose in FHIRBring your own app from developer.dexcom.com (guide). Free sandbox; production use needs Dexcom's approval. One region per instance (US, EU, Japan). Readings reach the API 1 hour late in the US, 3 hours elsewhere. Events, calibrations and alerts are not pulled yet
OMRONAvailablePartner API (OMRON Wellness API), OAuth 2.0, scheduled pullsBlood pressure (paired systolic and diastolic, pulse, possible AFib flag), weight and body compositionApply at omronhealthcare.com/api; staging credentials first, production after OMRON's approval (guide). Its upload notifications are not received yet (format not public)
FreeStyle LibreNo public APIThrough Health Connect (Android) or Apple Health (iPhone), when the Libre app writes thereGlucoseAbbott publishes no developer API; LibreView integrations are by agreement only. We will not use the unofficial LibreLinkUp app API (research notes)
Health ConnectAvailable on the serverOn-device (Android). Your Android app uploads gzip NDJSON parts to POST /v1/ingest/health-connectSteps, heart rate, resting heart rate, HRV, SpO2, respiratory rate, temperature, blood pressure, blood glucose, weight, height, body fat, active energy, distance, sleep with stages, exercise sessions, deletionsYour app implements the upload contract; the Kotlin SDK that does it is being built. By default an app reads back only 30 days before its first permission grant; older data needs the history permission. Many Android apps write here, which is how Samsung Health, Fitbit, Zepp and CGM apps can reach it
Samsung HealthVia Health ConnectOn-device only: the Samsung Health Data SDK (partner approval needed to distribute), or Health Connect, which Samsung Health writes toActivity, sleep, heart rate, skin temperatureThe older Samsung Health SDK for Android was deprecated on 2025-07-31. We plan to read Samsung Health data through Health Connect, which needs no Samsung partnership
Google FitDeprecated by Google, use Health Connect (planned Kotlin SDK)None to build onGoogle closed sign-ups on 2024-05-01 and supports the Fit APIs only until the end of 2026. It points Android apps to Health Connect and cloud apps to the Google Health API
XiaomiNext releaseData copy from the Xiaomi account privacy center, imported with ohs import mi-fitness to POST /v1/ingest/xiaomi; ongoing data through Health Connect (Android) or Apple Health (iPhone)Heart rate, resting heart rate, SpO2, steps, distance, active energy, weight, body fat, VO2 max, sleep with stages, workoutsXiaomi publishes no health API. The Mi Fitness data copy holds the full history; Mi Fitness, Mi Health and Zepp Life records in Health Connect get the source slug xiaomi (guide). No private Xiaomi API is used
Zepp / AmazfitVia Health ConnectOn-device: the Zepp app writes to Health Connect on Android and to Apple Health on iOS. Zepp Health also runs a partner Web API (OAuth 2.0, api-open.huami.com) for approved companiesSteps, heart rate, sleep, workouts, caloriesHealth Connect records from the Zepp app (com.huami.watch.hmwatchmanager) get the source slug zepp. The partner API is open to companies only, by application to Zepp Health; there is no connector for it yet. On iPhone, what the Zepp app writes to HealthKit is ordinary Apple Health data
RingConnVia Health ConnectOn-device: the RingConn app writes to Health Connect on Android and to Apple Health on iOSSteps, active and resting energy, sleep with stages, resting and average heart rate, SpO2, weight, heightRingConn publishes no developer API or data export. Health Connect records from the RingConn app (com.gdjztech.ringconn) get the source slug ringconn. HRV is not shared with Health Connect
Health records (EHR): Epic, Oracle Health and other certified EHRsPlanned, after the SDKsSMART on FHIR patient access (OAuth 2.0), FHIR R4Lab results, vital signs, conditions, medications, allergies, immunizationsUS first, where certified EHRs must offer patient access APIs. Each operator registers its own app with each EHR vendor, and each health system activates it. The health records found in Apple Health exports are planned too
Eight SleepNo public APINoneEight Sleep publishes no official developer API. Community clients call the private app API, which is unsupported and can change without notice; we will not build on it

Contributing a connector

The open connector issues are labeled connector, and the smaller ones good first issue. Read writing a connector first, and use the connector request form for a source that is not listed. Tests use recorded fixtures with invented values and a fake of the provider API; no test calls a real provider.

Edit on GitHub

On this page