Data model

Understand sources, dates, values, and provenance.

PostHealth separates source records from product calculations so clients can tell what Fitbit provided and what PostHealth derived.

Canonical data point

{
  "id": "users/me/dataTypes/steps/dataPoints/example",
  "dataType": "steps",
  "time": {
    "physical": "2026-07-31T08:00:00Z",
    "civilDate": "2026-07-31"
  },
  "value": 842,
  "unit": "count",
  "source": {
    "platform": "FITBIT",
    "recordingMethod": "PASSIVELY_MEASURED"
  }
}

Source boundary

source=FITBIT is the default and includes Fitbit-origin records plus Google Health rollups produced from Fitbit data. source=all opts into other cached platforms when present.

Time boundaries

Timestamp ranges are UTC-aware. Date-only parameters such as date, start, and end use the account's saved IANA timezone so a local day does not shift unexpectedly across midnight.

Metadata and raw payloads

Use include=metadata for type-specific context such as sleep stages, workout details, glucose measurement context, or nutrition labels. Use include=raw only when the original provider payload is explicitly needed; raw data is never included by default.

On this page