CSV To Health

CSV to Health turns a simple spreadsheet into real entries in the Apple Health app. If you have health data trapped in another app, a scale, a lab report, or an old export, CSV to Health lets you bring it all into Health in one step — no account, no cloud, no fuss.

Just prepare a CSV file, pick it in the app, and every row is written straight to Health on your iPhone.

WHY YOU'LL LIKE IT

• Import historical data — Populate Health with months or years of past measurements, not just today's.

• Two flexible formats — Use a simple "type, value, date" layout, or paste in a wide export where each column is a measurement. The app detects which you're using.

• Built-in templates — Start from ready-made examples for steps, weight and body composition, sleep, workouts, nutrition, vitals and more. Edit them in any spreadsheet app and import.

• A clear summary — After each import you get a breakdown of exactly what was added, by type, plus any rows that were skipped and why.

CSV to Health

Support & Help Center

Everything you need to import your health data from a CSV file into the Apple Health app.

Version 1.0 Platform iPhone, Health app Data On-device only
Getting started

Import your first file

CSV to Health writes historical health data into Apple Health from a spreadsheet. Here's the whole flow.

  1. Grant Health accessOn first launch, tap Grant Health Access and allow the categories you want to write in the Health permission sheet. You can change this anytime in Settings › Privacy & Security › Health.
  2. Prepare your CSVStart from one of the built-in templates (tap View Templates), or export from another app. Fill in your data and save as CSV.
  3. Import the fileTap Import CSV File, pick your file, and the app parses and writes each row to Health.
  4. Review the summaryWhen it finishes you'll see how many samples imported, broken down by type — plus any rows that were skipped and why.
CSV format

How to lay out your file

The first row must be column headers. The app accepts two layouts and detects which you're using automatically.

1. One measurement per row

Best for typing data by hand or mixing many types in one file. Requires type, value, and a date column.

steps.csv
type,value,date
Steps,8532,2026-09-01 08:00:00
Steps,10245,2026-09-02 08:00:00
HeartRate,72,2026-09-01 08:00:00

2. One row per date (Apple Health export style)

Best for data exported from Health or a scale app. The first column is the date; every other column is a measurement, with its unit in parentheses.

body-composition.csv
Date,Weight (kg),Body Mass Index (count),Body Fat Percentage (%),Lean Body Mass (kg)
2026-08-13T08:17:02+01:00,74.3,21.55,9.3,67.4
2026-08-17T08:10:18+01:00,73.9,21.43,8.8,67.4

Empty cells are fine — leave a measurement blank and it's simply skipped for that date.

Columns you can use

typeRequired (layout 1)The kind of data, e.g. Steps, HeartRate, Weight.
valueRequired (layout 1)The numeric measurement. Percentages are entered as whole numbers — 20 means 20%.
dateRequiredWhen the measurement was taken. startDate works too.
unitOptionalOverrides the default unit — kg/lb, cm/in, celsius/fahrenheit, ml/floz.
endDateOptionalFor ranges like sleep and workouts.
sleepTypeOptionalSleep stage: InBed, AsleepCore, AsleepDeep, AsleepREM, Awake.
activityOptionalWorkout type, e.g. Running, Cycling, Yoga.
distanceOptionalWorkout distance in metres.

Accepted date formats

2026-09-01T08:00:00Z        ← ISO 8601
2026-09-01T07:14:30+01:00   ← ISO 8601 with time zone
2026-09-01 08:00:00         ← standard
2026-09-01                  ← date only
09/01/2026 08:00:00         ← US format
Supported data

What you can import

Use these names in the type column (they're not case-sensitive).

Activity & Fitness

  • Steps, Walking & Cycling Distance
  • Active & Resting Energy
  • VO₂ Max, Workouts

Vitals

  • Heart Rate, Resting HR, HRV
  • Blood Pressure, Oxygen Saturation
  • Body Temperature, Respiratory Rate

Body Measurements

  • Weight, BMI, Body Fat
  • Lean Body Mass, Height
  • Waist Circumference

Nutrition

  • Dietary Energy, Water
  • Protein, Carbohydrates, Fat
  • Fiber, Sugar

Sleep & Mindfulness

  • Sleep Analysis (all stages)
  • Mindful Sessions

Lab Results

  • Blood Glucose
Troubleshooting

Common issues

Most import problems come down to how the CSV is shaped. Here's how to fix the ones we see most.

The import says some rows were skipped

Every row must have the same number of columns as the header. If your header has 5 columns, each row needs 5 values — including empty ones. A trailing empty field still needs its comma.

The results screen lists the reason each row was skipped (bad date, unknown type, non-numeric value), so start there.

Nothing imported at all

Two usual causes: Health permissions are off, or the header names don't match.

Check Settings › Privacy & Security › Health › CSV to Health and turn on the categories you're importing. Then confirm your header uses type,value,date (layout 1) or a date column first (layout 2).

The first column isn't recognized

Some spreadsheet apps add a hidden marker to the start of the file. The app strips the common one automatically, but if the first column still won't match, re-export as “CSV UTF-8” (Numbers and Excel both offer this) rather than a legacy CSV encoding.

Percentages or dates look wrong

Percentages are whole numbers. For 20% body fat, enter 20, not 0.2.

Dates must be one of the accepted formats listed above. If a date is rejected, the most reliable choice is ISO 8601, e.g. 2026-09-01T08:00:00Z.

It imported, but I don't see it in Health

Open the Health app › Browse and find the data type. Your samples are dated when they happened, so if you imported historical data you may need to scroll back to that period. You can also tap a type, then Show All Data, and filter by the “CSV to Health” source.

I imported the same file twice

Each import adds new samples — it doesn't replace previous ones, so importing twice creates duplicates. To remove them, open the data type in the Health app, choose Show All Data, and delete the entries, or delete everything from the CSV to Health source under that type's Data Sources & Access.

Privacy

Your data stays yours

  • Everything happens on your iPhone. Your CSV is read on the device and written straight to Apple Health.
  • No account, no tracking, and nothing is sent to any server.
  • The app only ever writes to Health. It does not read your existing health data.
  • You control access per category in Settings, and HealthKit data is encrypted by iOS.
FAQ

Frequently asked

Does it need an internet connection?

No. The app works fully offline — it only reads a local file and writes to Apple Health.

Can I undo an import?

The app can't remove data after it's written, but you can delete it in the Health app under the data type's Show All Data, or by removing the CSV to Health source.

Which apps' exports can I use?

Any app that exports a CSV. If the columns don't line up with a supported type, open it in a spreadsheet and rename the headers to match, or rearrange into one of the two layouts above.

Can I edit the templates?

Yes — that's the idea. Download a template from View Templates, open it in Numbers, Excel, or any spreadsheet app, replace the sample rows with your data, and export as CSV.

Contact

Still stuck?

If your question isn't answered here, get in touch and include the file you're trying to import (with any private values removed) plus a screenshot of the results screen — that's usually enough to spot the problem.