Skip to content
Health Migrate app icon
Health MigrateFitbit & Google Health → Apple Health

Move Your Fitbit History to Apple Health

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

  • 15 health metrics
  • CSV & JSON exports
  • Free Dry Run
  • Processed on your device
Health Migrate on iPad showing the JSON Import overview with 10 import workflows, and on iPhone reviewing sleep sessions selected for import.
  1. Your Fitbit historyRecorded with Fitbit devices and the Fitbit app
  2. Google Health exportCSV and JSON files you download
  3. Health MigrateAnalyze, review, Dry Run, on your device
  4. Apple HealthOnly the records you approve
See it in action

A complete migration, start to finish.

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.

15 supported health metrics

Sleep, steps, heart rate, weight, workouts and more.

Every metric uses the same guided flow. JSON exports cover all 15 metrics; CSV exports cover the six marked below.

  • Weight
    CSVJSON
  • BMI
    JSON
  • Body Fat %
    CSVJSON
  • Lean Body MassCalculated from weight and body fat
    JSON
  • Hydration
    CSV
  • Steps
    CSVJSON
  • SleepIncluding sleep stages
    CSVJSON
  • WorkoutsWith GPS routes when your export includes them
    JSON
  • Active EnergyDerived from exported calories
    JSON
  • Resting EnergyDerived from exported calories
    JSON
  • Heart Rate
    JSON
  • Resting Heart Rate
    CSVJSON
  • VO₂ Max
    JSON
  • Height
    JSON
  • Distance
    JSON

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.

The in-app Supported Metrics table listing 15 metrics with CSV and JSON support and the recommended format for each.
How it works

Load. Analyze. Review. Dry Run. Import.

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.

  1. Load

    Pick the CSV or JSON files from your extracted Google Health export. They are read on your device.

    The Files picker with two sleep JSON files from a Google Health export selected.
  2. AnalyzeFREE

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

    Sleep JSON after loading: 39 sessions loaded from 2 files, 33 after removing duplicates, and 3 stage rows not loaded with the reasons.
  3. ReviewFREE

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

    Review Sleep Sessions with 33 of 33 importable sessions selected and Select All and Deselect All controls.
  4. Free Dry Run

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

    Dry Run result: will import 31 sessions and 663 samples, will skip 2 sessions, with a notice about Apple Health read access.
  5. 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.

    Import complete: 31 sessions and 663 samples written to Apple Health, 663 of 663 progress.

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 Store
Before you start

Get your Google Health export.

Your 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:

  1. Open Google Health.
  2. Open your profile.
  3. Tap Your data in Google Health.
  4. Tap Export your data.
  5. Confirm Google Health is selected.
  6. Tap Next step.
  7. Choose destination, frequency, ZIP format, and file size.
  8. Tap Create export.
  9. Download and extract the ZIP archive.
  10. Load the extracted files into Health Migrate.

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.

Fitbit-era file names

Depending on when your data was recorded and exported, files may still use Fitbit-era naming inside the archive. That's expected.

Find the right files

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.

Duplicate protection · Review · Free Dry Run

Nothing written twice. Nothing written without you.

  • Matching records are skippedBefore writing, Health Migrate checks Apple Health for matching records and skips them, including records from an earlier Health Migrate import. Import re-checks just before writing.
  • Overlaps are caughtSleep and workouts use overlap checks. When two sleep sessions in your export overlap, only one is written: the main sleep, otherwise the longer session.
  • You choose what to keepReview lists every record or session. Deselect anything you don't want; skipped records show why.
  • Interrupted imports finish cleanlyRun Dry Run again to continue: records already written are skipped and only the missing ones are imported.
  • Clear about its limitsDuplicate checks can only compare against data Apple Health lets Health Migrate see. Its own earlier imports are always visible; data from your Apple Watch, iPhone, or other apps needs read access, and each Dry Run tells you when it can't see older data.
Dry Run report rows: sessions marked IMPORT, and two naps marked SKIP because they overlap another sleep session, naming the session that was kept.
Each skip names its reason and the record that was kept.
The in-app Privacy screen: Health Migrate processes all health data entirely on your device, with the commitments listed beside it.
Private by design

Your health data stays on your device.

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.

  • No uploads, no trackingNever uploads or transmits your health data, never performs analytics or tracking, and never sells or shares your health data.
  • No accountsHealth Migrate never creates user accounts and never stores copies of your imported health data outside Apple Health.
  • Only what's neededIt asks only for the Apple Health permissions required to import the data you approve, and never changes or deletes existing Apple Health data, except through the optional Weight cleanup you start yourself, which only removes weight records Health Migrate wrote.
  • Purchases sync privatelyPurchase and token records sync through your private iCloud database. They contain no health values, samples, export files, or filenames.

Read the full privacy policy →

Pay only when you import

Free to try. Tokens only for imports.

Health Migrate is free to download. Everything up to the import is free, so you can check your whole export before paying anything.

  • Load · free
  • Analysis · free
  • Review · free
  • Dry Run · free
20importsStarter Pack$1.99
50importsValue Pack$2.99
100importsPower Pack$4.99
500importsMega Pack$9.99
∞no token trackingUnlimited Imports$19.99 one-time

One token per import that writes

An import uses one token only when it writes at least one record to Apple Health. An import that writes nothing is not charged.

Stopped and continued

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.

Interrupted imports

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.

iPhone · iPad · iPhone Duo

Made for every screen.

The same guided workflow on iPhone, iPad, and iPhone Duo. Requires iOS or iPadOS 17.6 or later.

iPad App Store screenshot: Move Fitbit history to Apple Health, the JSON Import overview on iPad.
iPad
iPhone Duo App Store screenshot: the JSON Import overview on the unfolded display.
iPhone Duo, unfolded
FAQ

Questions, answered.

Compatibility

Which devices does Health Migrate run on?

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.

Does Health Migrate connect to my Fitbit or Google account?

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.

Can it import data from other apps or watches?

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.

Export files

How do I get my files?

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.

JSON or CSV?

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.

My files have Fitbit names. Is that a problem?

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.

Permissions

Which Apple Health permissions are needed?

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.

Why doesn't the permission request appear again?

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.

Duplicates

Can I import the same files twice?

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.

Why was a whole day skipped?

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.

Does Health Migrate change or delete my Apple Health data?

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.

Pricing and tokens

When is a token used?

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.

I stopped an import and continued it later. How many tokens did that use?

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.

The app closed during an import. What happens to the token?

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.

Does Unlimited use tokens?

No. Unlimited turns off token tracking. Health Migrate confirms Unlimited with the App Store when the app starts.

Do my tokens work on my other devices?

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.

Troubleshooting

Why didn't anything import?

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.

My sleep or other times look shifted. What can I do?

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.

Where can I get help?

Use the HELM Coders support form and include your app version and, if helpful, the Dry Run report or screenshots.

Privacy

Health data is processed on your device. Only purchase and token records sync, through your private iCloud database.

Read the privacy policy →

Age suitability

A health-data utility with no mature content. The App Store age rating is set by Apple's questionnaire.

View age suitability →
Health Migrate app icon

Bring your history with you.

Move your Fitbit and Google Health history into Apple Health, and see exactly what will be written before you import.