Does Apple Health have an API?
Not one you can call from a server. Apple's developer API for health data is HealthKit, a framework for apps running on your devices. Your iPhone and your Apple Watch each keep their own HealthKit store (so do iPad, from iPadOS 17, and Apple Vision Pro), and an app reads it on the device after you allow it, one type of data at a time.
So a script, a spreadsheet or an AI tool on another computer can't ask Apple for your steps. An app on your iPhone has to read them from HealthKit and send them somewhere you can query. That is what HealthAPI does.
How HealthAPI works
Install HealthAPI and allow Apple Health
The app asks for read access to Apple Health. In Sync Settings you choose which categories to sync and how much history to import.
It syncs to your account
HealthAPI uploads your data to your own private account when you open it and in the background as iOS allows, and adds daily totals and averages as it goes.Read it with your key
Copy your API key in the app (Connect, then Other tools) and send it as a Bearer token. The app's Here's your data screen shows a real response from your own account.

Your first request
The base URL is:
https://healthapi.app/api/v1Check your key first. GET /usage returns your plan and today's requests, and doesn't count toward them:
export KEY=<your API key>
curl "https://healthapi.app/api/v1/usage" \
-H "Authorization: Bearer $KEY"Then read a day. Dates are local to your timezone unless you pass tz:
curl "https://healthapi.app/api/v1/health/daily-summary?date=2026-10-12" \
-H "Authorization: Bearer $KEY"{
"totals": {
"steps": 11284,
"distance_m": 8600,
"active_energy_kcal": 684,
"basal_energy_kcal": 1633,
"flights_climbed": 9,
"exercise_time_min": 52
},
"averages": {
"heart_rate_bpm": 62,
"resting_heart_rate_bpm": 54,
"hrv_ms": 68,
"spo2_pct": 98,
"respiratory_rate_bpm": 14
},
"sleep": { "total_hours": 7.7, "session_count": 13 },
"workouts": { "count": 1, "total_duration_seconds": 2490, "total_calories_kcal": 386.4 },
"data_coverage_pct": 100,
…
}The full response, with its flat aliases and their units, is in the API reference.
Endpoints
Every endpoint takes your key as Authorization: Bearer <key> and returns JSON. Each links to its parameters and an example in the reference.
| Endpoint | Returns |
|---|---|
GET /usage | Your plan and today’s requests left. It never counts toward them. |
GET /query/daily-summary | One day’s steps, average heart rate and workouts. |
GET /health/daily-summary | One day in full: activity, energy, heart, sleep and workouts. |
GET /health/weekly-summary | A Monday-to-Sunday week, totalled and averaged. |
GET /query/trends | One metric day by day, for up to 365 days. |
GET /health/samples | Individual readings, newest first, with paging. |
GET /health/workouts | Workouts with type, duration, distance and energy. |
GET /health/latest | The newest reading of every metric, in one call. |
GET /gdpr/export | Everything in your account as one JSON file. |
POST /account/regenerate-key | A new key. The old one stops working at once. |
What you can read
50 Apple Health metrics plus workouts: steps, distance, active and resting energy, heart rate, resting heart rate, HRV, VO2 max, blood oxygen, respiratory rate, sleep stages, weight and body measurements, walking and running form, blood pressure, glucose and more. Each metric's API name is its HealthKit name, such as stepCount or restingHeartRate. See all 50, with units.
Things that add up (steps, energy, distance) are summed per day without counting iPhone and Apple Watch twice, so totals match the Health app. Readings (heart rate, HRV, weight) are averaged per day with a low and a high. Sleep is counted per night, the way the Health app counts it.
Use it from GPT Actions, n8n, Zapier and Make
The whole API is described in an OpenAPI 3.1 spec at https://healthapi.app/openapi.json, and llms.txt sums it up for AI agents.
| Tool | Setup |
|---|---|
| Custom GPT | Configure, Actions, Import from URL: the spec's address. Authentication: API Key, Bearer, your key. Privacy policy: https://healthapi.app/privacy. |
| n8n, Make, Zapier | An HTTP request to an endpoint with the header Authorization: Bearer <key>, or import the OpenAPI spec where the tool supports it. |
| Your own code | Any HTTP client. Generate a typed client from the OpenAPI spec if you like. |
For ChatGPT, Claude or other AI tools that support MCP, you don't need the key at all: add HealthAPI as a connector and approve it on your iPhone. See the Apple Health MCP server.
Limits and plans
Requests are counted per account, per day, and the count resets at 00:00 UTC. Only health reads (/health/* and /query/*) and connector tool calls count. Syncing from your iPhone, /usage and the export don't.
| Plan | Requests a day | Price |
|---|---|---|
| Free preview | 25 | 2 days, no card |
| Pro | 100 | $4.99 a month, after a 7-day free trial |
| Developer | 1,000 | $9.99 a month, after a 7-day free trial |
The plans differ only in requests per day; both read the same data. The trial is for new subscribers, through the App Store, and plans are bought in the iPhone app (annual plans too). Past the limit, health reads return 429 with a Retry-After header. The rate limits and errors are in the reference.
Your key and your data
- The key is the identity. Anyone with it can read everything you've synced, so give it only to tools you trust.
- Regenerate it anytime in the app or with
POST /account/regenerate-key. The old key stops working at once, and every connected AI app is disconnected. - Take it with you.
GET /gdpr/exportdownloads everything as JSON. More on exporting. - Delete it. Deleting your account gives you 30 days to change your mind;
DELETE /gdpr/accounterases it at once. See the privacy policy.
Questions
Does Apple Health have an API?
Not one you can call over the web. HealthKit is a framework for apps running on your devices: each iPhone and Apple Watch keeps its own HealthKit store, and an app reads it on the device once you allow it. HealthAPI is that app on your iPhone, plus a REST API for the data it syncs.
Do I need a Mac, Xcode or an Apple developer account?
No. You need an iPhone with the HealthAPI app. The API is plain HTTPS with a Bearer key, so curl, Python, JavaScript, a spreadsheet script or an automation tool all work.
Can I write data to Apple Health through the API?
No. HealthAPI only reads from Apple Health, and its health endpoints only read from your account. Nothing you call changes what is on your iPhone.
How current is the data?
As current as the last sync from your iPhone. HealthAPI syncs when you open it and in the background as iOS allows. GET /health/latest shows when each metric was last recorded.
Does it work with Android or Google Health Connect?
No. HealthAPI reads Apple Health, and the app is for iPhone, iOS 15 or later.
How much does it cost?
Every account starts with a 2-day free preview with no card (25 requests a day). New subscribers then get a 7-day free trial through the App Store. After that it is Pro ($4.99 a month, 100 requests a day) or Developer ($9.99 a month, 1,000 requests a day). The plans differ only in requests per day.
