HealthSave Get on App Store

To get Apple Health data into Grafana, HealthSave Pro background-syncs your HealthKit data to a self-hosted server, where it lands in TimescaleDB and the bundled Grafana dashboards visualize your full history. No cloud bridge sits in the middle, the data goes from your iPhone to your own Postgres, and Grafana queries it with SQL.

Why Grafana, and why this is the long-history view

The HealthSave app gives you a calm on-device dashboard with 7/30/90-day trends. But if you want to explore, overlay resting HR against sleep, zoom out to two years, write an ad-hoc query, you want Grafana over a real time-series database. Apple Health can't do that, and its XML export certainly can't. Once your data is in TimescaleDB, Grafana turns it into panels you control.

The pipeline

iPhone (Apple Health)
   └─ HealthSave Pro  ──(background sync, ~1–5 min)──▶  your server (FastAPI + TimescaleDB)
                                                          └─▶ Grafana dashboards (SQL over your history)

Step 1, Stand up the Observatory (it includes Grafana)

The optional companion, the open-core HealthSave Observatory (the datahub project), is a FastAPI + TimescaleDB stack you bring up with Docker. It ships Grafana dashboards out of the box. Run it on a laptop, NUC, Mac mini, Synology, or a Proxmox VM. The server core is source-available under Elastic License 2.0; the protocol and SDK layers are Apache-2.0.

Step 2, Point the app at it

In HealthSave: Settings → Server Sync, set the Server URL to your server (e.g. http://your-server-ip:8000, iOS won't sync to localhost), optionally add an API key, and enable background sync. Batches start flowing within a few minutes.

Step 3, Open Grafana

The bundled dashboards give you SQL-backed exploration immediately: resting heart rate over months, HRV trend lines, sleep duration, steps, blood oxygen, your real longitudinal record, not a rolling window. Because it's your Postgres, you can clone a panel and write your own query against the TimescaleDB hypertables.

What's free vs Pro

CapabilityTier
On-device dashboard, CSV/JSON exportFree
Background sync to your serverPro
Full history → Grafana / TimescaleDBPro
REST API accessPro

Pro is a one-time $24.99, Family Sharing included, no subscription.

Honest limits

Related

FAQ

Does HealthSave include Grafana?

The open-core HealthSave Observatory companion ships Grafana dashboards out of the box, on top of a FastAPI + TimescaleDB stack you bring up with Docker. The iOS app's job is to get your HealthKit data to that server; Grafana reads from the server's Postgres.

Can I write my own panels?

Yes. The data lands in TimescaleDB (PostgreSQL), so it's your database. Point any Grafana panel at it with plain SQL, resting heart rate over months, HRV trends, sleep duration, steps, anything you've synced.

How far back does the Grafana history go?

As far back as you backfill. Unlike the app's 90-day on-device trend view, Grafana queries your full server-side history, years of data if you run a 10-year backfill. It's SQL over your real longitudinal record.

Is there a hosted version?

No. There is no hosted backend, you run the Observatory and Grafana yourself, which is the point if you want your data on your own hardware.

What's the refresh latency?

Background sync is best-effort, roughly 1–5 minutes end to end. Grafana is great for trends and exploration; it is not a real-time monitor.

HealthSave is not a medical device. It is for informational purposes only and does not diagnose, treat, cure, or prevent any disease or condition. The accuracy of any health data depends on your wearable device and its sensors. Privacy claims of zero data collection apply to the iOS app; self-host sync sends your data to your own server.

Get HealthSave

Download free, try the export, then unlock background sync to your server with a one-time Pro purchase when you're ready to wire Apple Health into Grafana.

Download HealthSave on the App Store


HealthSave: Export Health Data, on iPhoneGet on the App Store