Export your own health and fitness data
Recently re-verified:How to export your Apple Health data, and read the file (Nov 5),How to export your Health Connect data on Android (Nov 5),How to download your personal data from Samsung Health (Nov 5)
Every source at a glance
From each vendor’s help center or developer page, read 2026-11-05. “Could not verify” means the vendor’s page could not be read from where this was written, not that the feature is missing.
| Source | Official export | Format and gaps | API for your own data |
|---|---|---|---|
| Apple Health | iPhone Health app: Summary, your picture, Export All Health Data | XML (Apple's guide) | None for a person; HealthKit is read by apps on the device |
| Health Connect | Settings: Health Connect, Manage data, Backup and restore, Scheduled export (Android 14+) | A zip in your cloud storage, for restore; contents not documented | None for a person; read by apps on the device |
| Samsung Health | Samsung Health: More options, Settings, Download personal data | Files in My Files, Downloads, Samsung Health; format not stated | Developer route only |
| Garmin Connect | Could not verify: Garmin's export help could not be read | Personal API: activity JSON and FIT, health JSON | Garmin's Personal API: a key from Garmin Connect web, pull only |
| Fitbit / Google Health | Google Account: Google Takeout with Google Health selected. Fitbit login: Data Export, Request Data | Takeout zip or tgz; single GPS workouts as TCX | Fitbit Web API Personal app type: your own account, intraday included |
| Oura | Membership Hub: Export data, Request your data (any user, up to 10 days) | Durations in seconds; fields per the Oura API V2 docs | OAuth2 Oura API; personal access tokens deprecated |
| Polar | account.polar.com: Download your data (two weeks to download) | No activity or sleep summaries (derived data excluded) | AccessLink: any registered Polar Flow user can create a client |
| Strava | Strava.com: Settings, My Account, Download your account (website only) | Per activity: original (often FIT), TCX, GPX | New apps start in single-player mode (your account only) |
| Suunto | Suunto app, per workout: the three-dot menu | FIT (everything) or GPX (location, time, heart rate); no-GPS workouts FIT only | Not offered for personal use |
| COROS | Training Hub on a desktop: Activity List, Export Data; daily and sleep data by support request | FIT or TCX by email | Developer routes, compared in the integration guide |
| WHOOP | Could not verify: WHOOP's export help could not be read | Could not verify | WHOOP Developer Dashboard: create an App (up to 5), OAuth 2.0 |
| Withings | Could not verify: Withings's export help could not be read | Could not verify | Public API, which Withings says is designed for individuals and partners without a formal contract |
Sources for the WHOOP and Withings rows: WHOOP Developer Platform: Getting Started; Withings developer site. Every other row’s sources are listed on its page.
One page per source
- How to export your Apple Health data, and read the fileApple's steps for Export All Health Data on iPhone, what the XML archive is, and how to open export.xml in a browser or pandas without uploading it.UpdatedVerified November 5, 2026
- How to export your Health Connect data on AndroidHealth Connect scheduled export: Android 14 and up, a zip in your cloud storage, daily, weekly or monthly, import on another phone, and its limits.UpdatedVerified November 5, 2026
- How to download your personal data from Samsung HealthSamsung's steps to download your personal data from the Samsung Health app, where the files land on the phone, and how erasing data differs.UpdatedVerified November 5, 2026
- How to get your own data out of Garmin ConnectGarmin's Personal API for your own data (JSON and FIT, pull only), the account export we could not verify, and where garth and garminconnect stand.UpdatedVerified November 5, 2026
- How to export your Fitbit and Google Health dataFitbit export depends on how you sign in: Google Takeout for Google Accounts, Data Export for Fitbit logins, TCX for GPS workouts, and Personal apps.UpdatedVerified November 5, 2026
- How to export your Oura dataOura's Membership Hub export for every user, member or not: up to 10 days to prepare, durations in seconds, plus Shareable Reports and the API.UpdatedVerified November 5, 2026
- How to download all your data from Polar FlowPolar's account export at account.polar.com, the two-week download window, why activity and sleep are missing, and AccessLink for any Polar Flow user.UpdatedVerified November 5, 2026
- How to export your Strava data: one activity or your whole accountStrava's bulk account export, Export Original, the /export_tcx trick and GPX, all from the Strava website, plus the single-player mode of Strava's API.UpdatedVerified November 5, 2026
- How to export workouts from the Suunto app: FIT or GPXSuunto's own guidance: export a workout as FIT for everything, GPX for location, time and heart rate, routes as GPX, and why no-GPS workouts are FIT only.UpdatedVerified November 5, 2026
- How to bulk export your COROS dataCOROS's own steps: bulk export every activity as FIT or TCX from Training Hub on a desktop, single workouts from the app, daily data by support request.UpdatedVerified November 5, 2026
Look inside an Apple Health export
The Apple Health export explorer opens your export.zip or export.xml in the browser, in a background worker that reads it in chunks, and lists every record type with its count, first and last date, units and sources, with a daily chart and a CSV download per type. The file never leaves your computer. A synthetic sample is one click away if you want to try it first.
Analysis notebooks
Three Jupyter notebooks that use only pandas and matplotlib. Each one was run against this site’s synthetic samples before publishing, so the outputs you see on GitHub are real runs. The samples are generated data, labeled synthetic in their first line, and the CSVs use column names chosen here, not any vendor’s layout: point the notebook at your own file and adjust the column names it lists at the top.
Apple Health export.zip to pandas
Reads export.zip or export.xml from the iPhone Health app; streams the Record elements into a DataFrame, counts every type, and charts daily steps, resting heart rate and nightly sleep.
A daily-summary CSV: trends and a weekly view
Reads a one-row-per-day CSV (steps, sleep, resting heart rate, weight); parses dates, adds 7-day rolling means, compares sleep with next-morning resting heart rate, and resamples by week.
An activity-list CSV: weekly training volume
Reads a one-row-per-workout CSV (start time, type, duration, distance, heart rate); sums minutes and distance per week and activity type, and charts the stacked weekly volume.
Synthetic inputs: apple-health-export-synthetic.zip, daily-summary-synthetic.csv, activities-synthetic.csv. Generated by scripts/build-own-data-samples.mjs from a fixed seed; not anyone’s data.
Python libraries
The Python packages this site tracks are clients for vendors’ web APIs. Registry facts as read on 2026-10-03; each links to its page with license, repository activity and caveats. The full comparison is Python libraries for fitness APIs.
- garminconnect 0.3.17 (2026-09-29): Python 3 API wrapper for Garmin Connect
- garth 0.8.0 (2026-03-28): Garmin SSO auth + Connect client
- stravalib 2.6.0 (2026-08-27): A Python package that makes it easy to access and download data from the Strava V3 REST API.
- oura-ring 1.0.1 (2026-06-22): Python client for the Oura API v2 with OAuth2 support.
- oura 1.3.0 (2024-04-23): Oura API client
- fitbit 0.3.1 (2019-05-24): Fitbit API Wrapper.
- withings-api 2.4.0 (2022-02-08): Library for the Withings API
Frequently asked questions
Which fitness platforms let me download all of my own data myself?
From the vendors' own help pages read on November 5, 2026: Apple Health (Export All Health Data on the iPhone), Health Connect (a scheduled zip export on Android 14 and up, for restoring), Samsung Health (Download personal data), Fitbit and Google Health (Google Takeout or Fitbit's Data Export), Oura (Membership Hub, for any user), Polar (account.polar.com, without derived activity and sleep), Strava (Download your account, on the website) and COROS (Training Hub, activities as FIT or TCX). Suunto documents per-workout FIT and GPX export. Garmin's, WHOOP's and Withings's export help could not be read for this page.
Which wearables offer an API for a person's own data without a company contract?
As their developer pages read on November 5, 2026 put it: Garmin's Personal API gives an individual a key from Garmin Connect web; the Fitbit Web API's Personal app type reads only the developer's own account; Strava apps start in single-player mode, limited to your own account, and need a Strava subscription; any registered Polar Flow user can create an AccessLink client; Withings describes its Public API as designed for individuals and partners without a formal contract. Oura's API works through OAuth2 now that personal access tokens are deprecated. Suunto does not offer its API for personal use.
What is the easiest way to analyze a wearable data export in Python?
Read the export into pandas, parse the dates, and roll up by day or week before charting. The notebooks on this page do that with pandas and matplotlib only: one streams an Apple Health export.zip with iterparse, one handles a one-row-per-day summary CSV, and one a one-row-per-workout CSV. They run on synthetic samples, so swap in your own file's path and column names.
Independent comparison, last reviewed November 5, 2026. Pricing, rate limits, and feature availability change often — confirm current details in each provider’s official documentation before you commit. Product and company names are trademarks of their respective owners; AIFitnessAPI is not affiliated with, endorsed by, or sponsored by any product listed here.