Choose JSON when you can
When both formats exist, JSON is usually the better choice: it is more complete and supports linked or derived metrics.
Health Migrate imports your Fitbit history, and other supported Google Health data, from your Google Health export files into Apple Health. Analyze, review, and run a free Dry Run, so you see exactly what will be written before anything changes.
Version 1.2 · Available now · Free to download

Watch Health Migrate load a Google Health sleep export, analyze it, review every session, run the free Dry Run, and import the approved records into Apple Health.
Real Health Migrate screens using a synthetic sample export (no personal health data). No sound.
Every metric uses the same guided flow. JSON exports cover all 15 metrics; CSV exports cover the six marked below.
JSON From JSON export filesCSV From CSV export files
Health Migrate reads the specific file layouts used in Google Health exports for these metrics. It is not a general-purpose CSV importer, and other files in your export are not imported. The in-app Resources tab lists every supported file.

Every importer follows the same five guided steps. Nothing is written to Apple Health until you approve it, and the first four steps are free.
Pick the CSV or JSON files from your extracted Google Health export. They are read on your device.

See what your files contain: record counts, date range, duplicates inside the export, and rows that could not be read, with the reason.

Every record or session is a row you can keep or deselect. Records that will be skipped are marked, with the reason.

See exactly what will be imported and what will be skipped, and why. Save, share, or print the full report before you import.

Only the records you approved are written to Apple Health. Long imports show progress and can be stopped; run Dry Run again to continue.

Shown: the Sleep JSON importer on iPhone with a synthetic sample export.
Analyze, review, and Dry Run your own export for free.
Download on theApp StoreYour Fitbit history is included in your Google Health data. Google provides downloadable health archives through Google Takeout; these are the steps the app's Export Guide gives:
When both formats exist, JSON is usually the better choice: it is more complete and supports linked or derived metrics.
Depending on when your data was recorded and exported, files may still use Fitbit-era naming inside the archive. That's expected.
Select the metric-specific CSV or JSON files from the extracted folders. The Resources tab and CSV/JSON templates show exactly what each importer reads.
Google controls its export process and menu names, which can change. Health Migrate does not sign in to Google or Fitbit.


Your export files are read and processed on your iPhone or iPad. Health Migrate has no account or login, and your health data is never sent to HELM Coders.
Health Migrate is free to download. Everything up to the import is free, so you can check your whole export before paying anything.
An import uses one token only when it writes at least one record to Apple Health. An import that writes nothing is not charged.
If you stop an import after records were written and continue later, that counts as two imports. Records already written are skipped, so nothing is duplicated.
If the app closes mid-import and the result can't be confirmed, that one token is held, never charged twice or released automatically. Your other tokens keep working; contact support with the copied details.
US prices. The App Store shows prices in your currency. Token packs are consumable; Unlimited can be restored with Restore Purchases.
The same guided workflow on iPhone, iPad, and iPhone Duo. Requires iOS or iPadOS 17.6 or later.








iPhone and iPad with iOS or iPadOS 17.6 or later, including iPhone Duo. It writes to Apple Health on the device you use, so the Health app must be available there.
No. There is no Fitbit or Google sign-in and no account sync. Health Migrate reads the export files you download from Google and imports them on your device.
No. Health Migrate reads the specific file layouts used in Google Health exports, including Fitbit history, for the metrics listed above. It is not a general-purpose CSV importer, and other files in your export are not imported.
Request a Google Health export (Google provides downloadable health archives through Google Takeout), download the ZIP archive, and extract it. Then load the metric's CSV or JSON files in Health Migrate. The in-app Resources tab walks through each step and lists every supported file.
Use JSON whenever both formats are available. JSON exports are generally more complete and support linked or derived metrics that older CSV files cannot. CSV remains available for Weight, Body Fat %, Steps, Sleep, Hydration, and Resting Heart Rate.
No. Depending on when the data was recorded and exported, files inside the archive may still use Fitbit-era naming. Health Migrate reads them as long as they are one of the supported layouts.
Write access for the categories you import. Read access lets duplicate checks see data from your Apple Watch, iPhone, or other apps; without it, Apple Health shows Health Migrate only the records it wrote itself, and each Dry Run tells you when that may apply.
Apple controls the Health permission sheet and may not show it again after you have decided. Open the Health app, then Profile › Privacy › Apps › Health Migrate, and turn on the categories you need. Return to Health Migrate and refresh the status.
Yes. The same duplicate checks run each time, so records Health Migrate can see in Apple Health are skipped, and tapping Import again does not write them a second time.
Dense metrics such as Energy, Heart Rate, Resting Heart Rate, Distance, VO₂ Max, and Height use day-level protection: if Apple Health already has that metric on a day, the day is skipped. A day left incomplete by an interrupted Health Migrate import of Energy, Heart Rate, or Distance is completed with just the missing samples. Sleep and workouts use overlap checks instead.
No. Imports only add the records you approved. The one exception is the optional Weight cleanup, which you start yourself and which can remove only weight records Health Migrate wrote.
When an import writes at least one record to Apple Health. Loading, Analysis, Review, and Dry Run are free, and an import that writes nothing (for example because everything is already in Apple Health) is not charged.
Two: one for the import you stopped (it wrote records) and one for the import that finished the job, if it wrote anything. Records already written are skipped, so nothing is duplicated.
When Health Migrate starts again it checks Apple Health for records from that import. If it finds them, the token is used as normal. If it cannot confirm whether anything was written, that one token stays held and is not included in your balance; it is never released or charged again automatically. Your other tokens and purchases keep working. Use Copy Support Details on the token card and contact support.
No. Unlimited turns off token tracking. Health Migrate confirms Unlimited with the App Store when the app starts.
Yes. Purchase and token records (no health data) are kept in your private iCloud database, so your balance follows your Apple Account across your devices.
The selected files may contain no supported records, Apple Health may already contain the data, or write access may be missing. Analysis, Review, and Dry Run show the exact reason for each record.
Some export files list clock times without a time zone. Choose the time zone you were in when the data was recorded (your device's zone by default), then load the files again before importing.
Use the HELM Coders support form and include your app version and, if helpful, the Dry Run report or screenshots.
Tell us what happened and which version you're using, and attach screenshots or your Dry Run report if helpful.
Get Health Migrate support →Health data is processed on your device. Only purchase and token records sync, through your private iCloud database.
Read the privacy policy →A health-data utility with no mature content. The App Store age rating is set by Apple's questionnaire.
View age suitability →Move your Fitbit and Google Health history into Apple Health, and see exactly what will be written before you import.