# healthd > An iPhone app that sends your Apple Health samples to your own HTTP endpoint, as JSON or CSV, retries failed deliveries, and keeps a delivery log you can read without a terminal. The phone pushes batches to an endpoint the user runs; nothing can be queried. Upsert on `uuid`, answer any `2xx`, and do not promise real-time: delivery is typically within an hour, never guaranteed. The single file below is enough to build a receiver and a dashboard. ## For language models - [Complete reference](/llms-full.txt): one self-contained file with the payload contract, the CSV layout, what the app can and cannot do, and a recipe for a receiver and dashboard. - [Run the receiver yourself](/self-host-prompt.txt): one prompt to paste into a coding agent that sets up the self-hosted receiver on the user's Mac. ## Documentation - [Documentation](/docs/): How the app delivers Apple Health samples to an endpoint you run, and how to write that endpoint. - [Getting started](/docs/getting-started/): From nothing to Apple Health samples in your own database: run a receiver, point the app at it, export. - [Receiver setup](/docs/receiver/): What a receiver must do to be correct, and two tested example receivers in Node and Python. - [JSON payload](/docs/payload/): Every key, type and unit of the JSON payload, version 1, with the catalog of types and the worked example. - [CSV](/docs/csv/): The same export as a CSV document: the 26 columns, the dialect, empty cells, and the probe. - [Shortcuts](/docs/shortcuts/): The Shortcuts action: its time ranges, what it returns, and the errors that stop a Shortcut. - [Delivery semantics](/docs/delivery/): Batches, exportId, isFinalBatch, retries, deduplication, and exactly what 'exactly once' means. - [Limits](/docs/limits/): What stops or delays delivery, and what version 1 of the payload cannot tell you. ## Optional - [Home](/): what the app is, for people.