All integrations
Available in v0.1.0

Health Connect data, in your own stack.

Like Apple Health, Health Connect lives on the phone: your Android app reads it and uploads it to your Open Health Sync server, which turns it into the same model as every other source.

Source
On-device, Android
How the data arrives
On-device (Android). Your Android app uploads gzip NDJSON parts to POST /v1/ingest/health-connect.

What it collects.

Each record maps to the same model as every other source, with the provider, source and device it came from.

  • Steps, distance and active energy
  • Heart rate, resting heart rate and HRV
  • SpO2 and respiratory rate
  • Temperature
  • Blood pressure and blood glucose
  • Weight, height and body fat
  • Sleep with stages
  • Exercise sessions
  • Deletions

How it works.

  1. 01

    Your app reads the phone

    With the user's permission, your Android app reads Health Connect on the phone.

  2. 02

    It uploads to your server

    Gzip NDJSON parts go to POST /v1/ingest/health-connect, the same contract as Apple Health. A re-sent part is safe.

  3. 03

    You read one model

    Raw files are kept, records are normalized and served over REST, MCP and FHIR R4.

Before you start.

  • Your app reads Health Connect and sends the records in the format of the guide. The Kotlin SDK in the repository handles the API calls; it does not read Health Connect for you yet.
  • 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, Xiaomi, Zepp, RingConn and CGM apps can reach it. Each record keeps the app that wrote it.

Set it up.

Your app reads Health Connect and uploads the records in the format of the guide. The guide has every step.

Terminal
# What your Android app sends: one gzip NDJSON part per record typegzip -c records.ndjson | curl -s -X POST $OHS/v1/ingest/health-connect \  -H "Authorization: Bearer $USER_TOKEN" \  -H "X-OHS-Type: Steps" -H "X-OHS-Day: 2026-10-12" \  -H "X-OHS-Batch: run-1" -H "X-OHS-Part: 0" --data-binary @-# Read what came incurl -s "$OHS/v1/users/$USER_ID/samples?type=step_count" -H "Authorization: Bearer $KEY"

Questions.

Can I use Health Connect with Open Health Sync today?

Yes. The Health Connect connector ships in v0.1.0.

Do I need anything from Health Connect?

Your app reads Health Connect and sends the records in the format of the guide. The Kotlin SDK in the repository handles the API calls; it does not read Health Connect for you yet.

Where does the data go?

Only to the server you run. Open Health Sync is self-hosted software, not a service: no account with us and no call home. Each user can be deleted with one call, raw files included.