To analyze Apple Health data in ChatGPT, export the dates and metrics you need as CSV from Health.md on your iPhone, then attach the files to a conversation. Begin with a synthetic sample so you can check the workflow before deciding whether to upload your own records.

This guide uses manual file uploads. It does not configure a live Apple Health connection, convert Apple's native XML archive, or set up a CLI/MCP integration. Each new export needs a new upload in this workflow.

Get Health.md for iPhone

Health.md includes 5 free export actions, followed by a single lifetime unlock. A manual iPhone export does not require a Mac. You also need access to ChatGPT with file uploads; available tools and limits can vary by account and workspace.

Before uploading: review the destination

The core local folder export reads authorized Apple Health data on your device and saves files to the folder you choose, with no Health.md server copy by default. If that folder syncs through another provider, its storage and privacy rules apply. Uploading a file to ChatGPT shares it with OpenAI under the policies and settings that apply to your account.

Review Settings → Data controls and any workspace policies before sharing personal records. OpenAI documents where to review ChatGPT data controls and, for ChatGPT Work workspaces, cloud handling and retention boundaries. Do not assume that personal and managed accounts have identical rules, or that removing a chat instantly removes every related file or derived copy. This guide makes no universal training or deletion guarantee.

The separate opt-in, single-owner Health.md Cloud pilot retains only API exports intentionally uploaded to it, has no public signup and no automatic device sync, and is not generally available. This folder-to-ChatGPT workflow does not upload to that pilot. See Health.md's privacy policy.

1. Export a small daily summary

  1. In Health.md on your iPhone, authorize the Apple Health categories you want to read. Select CSV and Summary for this exercise.
  2. Choose Steps or Sleep and one known date. Set the export date format to YYYY-MM-DD so the date labels are easy to inspect.
  3. Preview the output, then export to a writable folder in Files. Keep the original CSV as your reference and make it available on the device where you use ChatGPT.
  4. Follow your first iPhone export if authorization, destination, or preview is not ready.

A longer range creates one CSV per day, not a single workbook. Start with one file; once it checks out, try a short range. Keep overlapping re-exports, weekly/monthly rollups, and unrelated files out of the batch.

Summary gives daily projections. Detailed Time-Series can add samples and intervals; adding them to daily totals would double-count different representations. Lossless Health Records adds an Apple-only canonical archive and is unnecessary for this first exercise. See export formats and data detail.

2. Attach a sample in ChatGPT

Download the synthetic daily CSV sample. It contains fictional measurements and metadata generated by the exporter, not a person's health records.

  1. Start a new conversation in ChatGPT. A project is optional for this first file.
  2. Drag the saved CSV into the conversation, or use the file-attachment control available in your interface. Confirm the intended filename appears before sending the prompt below.
  3. Ask ChatGPT to inspect the uploaded file and report whether it can read all of it. If uploading or parsing is unavailable, use a smaller CSV or check the tools available to your account rather than assuming the file was processed.

OpenAI's file-context guidance describes attaching data exports, and its CSV preparation example shows a file-based analysis workflow. This guide does not depend on a particular model, paid tier, exact attachment icon, or fixed upload limit.

3. Verify the rows before calculating

Health.md's CSV header is Date,Category,Metric,Value,Unit,Timestamp. The Value column is mixed-type: it can include metadata, capture status, times, booleans, identifiers, and quoted JSON alongside measurements. Some summary rows omit the final Timestamp field. Use a CSV-aware reader that preserves quoted commas and newlines and leaves an omitted final field empty.

Paste this inspection prompt:

Inspect the uploaded daily Health.md CSV. Keep the original file unchanged.
List the filenames, export dates, schema metadata and units actually present.
Say whether you read every file completely; do not infer unread content.

Parse CSV with its quoting intact and allow an omitted final Timestamp field.
Do not treat the entire Value column as numeric.

Select only these daily summary rows:
- Category Activity, Metric Steps, Unit count
- Category Sleep, Metric Total Duration, Unit seconds

Show Date, Category, Metric, original Value, Unit and source filename.
Flag duplicate date/metric rows, missing values and conversion errors.
Exclude metadata, stage rows, samples and rollups from daily totals.
For sleep, show the arithmetic for converting seconds to hours.
Do not replace absent rows or failed conversions with zero.

For the synthetic sample, compare the answer with these source facts:

Date Daily metric Original value Unit Check
2026-03-15 Steps 12500 count 12500 steps
2026-03-15 Total Duration 27900.0 seconds 27900 ÷ 3600 = 7.75 hours

These are expected file values, not an executed ChatGPT result. If the answer differs, request the source row and calculation and compare them with the original file before proceeding. One day cannot demonstrate a weekly trend.

4. Ask for a weekly summary with coverage

After checking the sample, upload the intended daily files and replace the date placeholders in this prompt:

Use only the daily step-summary rows from the files I attached.
Analyze the inclusive calendar range [start date] through [end date].
First list the files and dates used. Resolve duplicate daily totals with me
before calculating; do not silently sum or discard conflicting versions.

Group by weeks beginning Monday. For each week, report recorded step total,
average over recorded numeric days, number of recorded days, and missing dates
within the requested range. Identify partial weeks. Missing is not zero.
Show the daily values and source filenames behind each weekly result.

If you create a chart, provide the underlying table and explain its units,
coverage, and missing-date handling. Do not imply complete coverage from a
line drawn across missing dates. State any files you could not fully read.

For sleep, substitute daily Sleep / Total Duration / seconds rows and ask for hours. A night is assigned to the local date it started: Monday-to-Tuesday sleep belongs to Monday. Read the sleep export guide if dates or stages look surprising.

Check both the daily table and the aggregate. Ask for calculation steps or generated code where available, and inspect any downloadable table or chart before using it. OpenAI's file review guidance explains reviewing generated outputs. An independent check is available through the Excel guide or Google Sheets guide.

Use the result to describe recorded values and gaps. AI can make extraction and arithmetic mistakes; these summaries do not establish a diagnosis, a cause, or a treatment recommendation.

If you prefer JSON

Health.md also exports a nested daily JSON object. Try the synthetic JSON sample if your ChatGPT interface accepts it; CSV is the starting path for this guide.

JSON has top-level date, schema, and schema_version, with sections such as activity, heart, and sleep when those have data. It does not use the CSV column layout. Ask ChatGPT to inspect the actual fields and units/time_context metadata, show each value's JSON path and source filename, and preserve missing fields separately from zero. Do not apply the CSV row filter literally to JSON or assume every file contains every section.

Reuse the analysis without duplicating days

For ongoing work, a ChatGPT project can organize related chats, files, and instructions. Review which project files and sources provide context and who can access them. A project organizes work; it does not make an upload local or remove the provider's retention rules.

When you export new dates, attach the new files and identify the complete intended date range again. If a day was re-exported, remove or explicitly exclude its superseded copy before recomputing. The phone's updated file does not replace an already uploaded snapshot automatically.

Review conversations, uploaded files, shared access, saved outputs, and any downloaded reports when cleaning up. Copies and generated summaries may need separate attention under the relevant account controls.

Troubleshooting and related guides

For Apple's native XML archive and the broader export choices, see how to export Apple Health data. For exact columns and spreadsheet imports, see Apple Health to CSV.