HealthSync app icon

HealthSync

A daily snapshot of your Apple Health data,
in a folder you own.

HealthSync reads your Apple Health data on your iPhone and writes one JSON file per day to a destination you choose — a folder on your phone, iCloud Drive, a network share, or your Google Drive. It does this on its own, without you opening it.

Apple Health data exists only on the iPhone. There is no cloud API for it, and nothing on the internet can reach it. So the only way to get a standing export is an app on the phone itself, which is what this is.

What it exports

Everything HealthKit exposes to third-party apps. The list of types is generated from the iOS SDK's own headers rather than hand-picked, so it is the framework's full inventory:

CategoryWhat that covers
121 quantity typesSteps, distance, active and basal energy, heart rate, HRV, resting and walking heart rate, VO₂ max, blood oxygen, respiratory rate, blood pressure, glucose, body measurements, running, cycling and walking metrics, audio exposure, and the full nutrition set
72 category typesSleep stages, stand hours, mindful sessions, heart-rate events, reproductive health, and the full symptom list
WorkoutsActivity type, duration, events, and per-workout statistics
Activity summaryThe three rings, with their goals
ECGClassification, average heart rate, symptom status
State of MindValence, labels, associations (iOS 18+)
CharacteristicsDate of birth, biological sex, blood type, skin type, wheelchair use

Every sample keeps its own identifier, start and end time, the app and device that recorded it, and its metadata. Category values keep the raw number and gain a readable label, so a sleep stage reads asleepREM rather than 5.

What a day looks like

{
  "schemaVersion": 1,
  "day": "2026-09-19",
  "timeZoneIdentifier": "America/Los_Angeles",
  "summary": {
    "HKQuantityTypeIdentifierStepCount":  { "unit": "count",     "sum": 2094 },
    "HKQuantityTypeIdentifierHeartRate":  { "unit": "count/min", "average": 82,
                                            "minimum": 48, "maximum": 151 }
  },
  "activitySummary": { "activeEnergyBurnedKcal": 2032, "exerciseTimeMinutes": 276 },
  "categorySamples": {
    "HKCategoryTypeIdentifierSleepAnalysis": [
      { "start": "…", "end": "…", "value": 3, "label": "asleepCore" }
    ]
  },
  "workouts": [ … ],
  "notes": [ ]
}

A few choices worth knowing if you intend to analyse this:

Where it writes

DestinationWhat it needs
A folder on this iPhone, iCloud Drive, or a network shareNothing. Pick the folder once and it keeps writing there.
Google DriveSigning in to Google. The app gets access to the files it creates and nothing else in your Drive.

Google Drive cannot be chosen as a folder. When iOS restricts its file picker to folders, it greys out every cloud provider that has not adopted a newer file-provider API — Drive, OneDrive and others. Apple's documentation says otherwise, but it has behaved this way since iOS 13. Reaching Google Drive therefore means signing in, which is why both routes exist.

How it runs on its own

Two triggers, because neither is reliable alone. iOS launches the app when new Health data arrives, even if the app has been closed; and a scheduled background task in the small hours catches days when nothing new landed.

You choose how often it actually uploads — as data arrives, daily, or weekly. A weekly run writes the whole week's files in one go. If the phone was off, offline, or the run was late, the next one fills the gap; before deciding what to send, the app reads the destination folder to see what is already there.

What it does not do

Privacy, briefly

There is no server, no account and no analytics. Your health data goes from your iPhone to the destination you picked, and nowhere else. The privacy policy says exactly what is read, where it can go, and what the Google sign-in can and cannot see.