Spookwerk
English ▾
← Blog

How to export your heart-rate history from Apple Health

Vitadatum exports your Apple Health heart-rate history to JSON or CSV files on your iPhone, so you can open them in a spreadsheet or paste them into ChatGPT or Claude instead of digging through Apple's giant XML export.

The free version exports the last 7 days as JSON. CSV files and anything older than 7 days come with Vitadatum Premium, a €4.99 one-time purchase with no subscription. Better you hear that now than at the paywall.

Download Vitadatum on the App Store

Why Apple's own export doesn't give you heart rate on its own

Apple does hand you your data. In the Health app, tap your profile picture, scroll to the bottom and tap Export All Health Data. A while later you have export.zip, and inside it export.xml. That file holds almost every record, in a format written for software to read. ECG recordings come as separate CSV files in an electrocardiograms folder, and workout routes as GPX files.

So your ECGs do come out on their own. Your heart rate doesn't. It sits in export.xml between your steps, your sleep and everything else your phone and watch ever logged, and there's no option to ask for heart rate alone.

The file also gets big. Someone on Apple's support forum wanted to count high heart-rate readings at night by the hour, to see whether a medication made a difference. Windows listed the two XML files inside as Microsoft Edge HTML documents, and they wrote:

"The two Microsoft Edge HTML documents are 277 MB and 173 MB respectively ..." "However, I can't open them."

That's one person's export, not a rule. A few years of Apple Watch data can come out smaller or a lot bigger.

To be fair to Apple, the export is free and it's thorough. It isn't a heart-rate file. I built Vitadatum because I wanted files I could open.

Step by step: heart-rate history out of Apple Health with Vitadatum

  1. Install it and give it Health access. Open Vitadatum and tap Get Started. iOS shows its Health permission sheet. On iOS 27, Health also asks how much history to share. Choose All Recorded Data and Future Data. With the 30-day option, Vitadatum can only read the last 30 days, and no export can reach further back than the window you grant. You can widen it later in Settings › Privacy & Security › Health › Vitadatum › Change Access. Once you have Premium, run Full Export (Reset) after widening it, so the older data gets picked up.
  2. Pick your categories. Export Categories lists 14 health categories. Keep Heart on and switch off what you don't need. Fewer categories means a faster export and fewer files. The Heart category holds more than heart rate alone, and with detail CSVs on, each of its metrics gets its own file.
  3. Free: export a week as JSON. Without Premium, tap Export My Health Data and you get the last 7 days as JSON. That's enough to see what's there.
  4. Premium: turn on CSV. In Vitadatum's settings, Also Export as CSV carries a lock on the free version. Tapping it opens the €4.99 unlock. Then switch on Also Export as CSV, and Include Detailed CSVs. The detail files are where heart rate gets its own file. Do this before your first export. If you switch it on later, run Full Export (Reset) once, or tap Generate Summary + Detail CSVs, to get detail files for your older data. ECG traces only come with an export started in the app, so for older recordings use Full Export (Reset).
  5. Choose where the files go. By default they land in Vitadatum's HealthExports folder under On My iPhone in the Files app. With Premium, Choose Export Folder lets you pick iCloud Drive or any other folder in Files, and Vitadatum puts a HealthExports folder there. iCloud Drive is the easiest way to get the files onto a computer.
  6. Export. Tap Export My Health Data and keep the app open with the screen on while it runs. A first export of years of data can take several minutes. When it's done, Open in Files takes you to the folder.

What you get

The CSV export writes summary.csv, with one row per day, plus a csv folder with one detail file per metric. Heart rate and HRV land in separate files there, HeartRate.csv and HeartRateVariabilitySDNN.csv.

Both files have the same seven columns. date is your local day. start_date and end_date are the reading's start and end time, written in UTC. Then come value, unit, and source_name and device, which tell you which app and which watch or phone recorded it. Each row is one HealthKit sample, usually a single reading. Heart rate is in beats per minute, HRV in milliseconds.

If you have ECG recordings from an Apple Watch, an export you start in the app can include them too, with Also Export as CSV and Include Detailed CSVs on. Each recording gets its own file in csv/ECG with the full voltage trace, one row per sample, and ecg.csv lists every recording with its classification and average heart rate. Background Exports and Generate Summary + Detail CSVs don't write the traces. The free JSON holds each recording's details without the trace.

Using the numbers

The CSV files open in Excel, Numbers and Google Sheets. Excel set to a Dutch, German or other European region has a habit of dumping a comma-separated file into column A, and there's a decimal-point trap too. How to get your Apple Health data into Excel or Google Sheets walks through both. If you're still wondering why Health has no CSV button at all, start with How to export Apple Health data to CSV.

Once HeartRate.csv is in a sheet, that forum question becomes a pivot table. start_date is UTC text like 2026-03-14T02:15:00Z, so add an hour column first:

=MOD(VALUE(MID(B2,12,2))+1,24)

That takes the hour from the UTC text and adds one for Central European winter time. Use +2 for readings between the last Sunday of March and the last Sunday of October, or your own offset. Without it your nights land on the wrong hours. Keep start_date as text when you import; if Excel or Numbers turned it into a date, the formula returns an error. If your Excel uses a European region, write semicolons between the arguments instead of commas. Then count the rows above your threshold per hour with COUNTIFS, or add a column like =D2>100 and build a pivot table on the hour and that column. Google Sheets and Numbers take the same functions.

JSON doesn't open well in a spreadsheet, but it's easy to hand to ChatGPT or Claude. The free export writes one JSON file per day, with every category you left on. Switch off everything but Heart, then attach the day files to a chat and ask about trends in your heart rate. Vitadatum has no AI inside it. It writes the files, and what reads them is your choice.

Keeping it current

With Premium, Background Exports run on their own once your first export with Premium is done. There's no switch for them. When new data arrives in Health, Vitadatum adds it to the export folder without you opening the app, but only while your iPhone is unlocked and not while Vitadatum itself is open. iOS decides when background work runs, so the update can lag behind your watch by a while.

That ends the weekly ritual of exporting by hand. A spreadsheet you imported is still a copy, though, so import the file again when you want fresh numbers in it.

The free version is the honest way to check before you pay. Export a week, open the folder, and see whether your heart-rate readings are there.

Download Vitadatum on the App Store, or read more on the Vitadatum page.

FAQ

Can I export only my heart-rate data from Apple Health?

Apple's own export always puts everything in one XML file. Vitadatum lets you choose which of its 14 health categories to export. With Include Detailed CSVs on, heart rate and HRV each get their own CSV file.

Can I export heart-rate data for free?

Yes, for the last 7 days. Vitadatum's free version exports them as JSON. Older data and CSV files come with Vitadatum Premium, a €4.99 one-time purchase with no subscription.

How far back does the export go?

As far back as Apple Health lets the app read. On iOS 27 you choose that window when you grant access. Picking 'All Recorded Data and Future Data' lets Vitadatum read beyond the last 30 days. The free version exports the last 7 days.

Is my heart-rate data uploaded anywhere?

No. Vitadatum uploads nothing and has no account. By default the files stay in Vitadatum's HealthExports folder under On My iPhone. With Premium you can pick an iCloud Drive folder or another folder in Files. If you pick iCloud Drive, iCloud syncs those files itself, like any other file there.

Does it export HRV and ECG too?

Yes. With Include Detailed CSVs on, HRV gets its own file next to heart rate, and ECG recordings from an Apple Watch come with their full voltage trace, one file per recording, when you run the export in the app.

Spookwerk