For the complete documentation index, see llms.txt. This page is also available as Markdown.

Why is hr_zone_data always empty for this provider?

hr_zone_data is only populated for providers that expose it through their API.

hr_zone_data is only populated for providers that expose it through their API.

  • Garmin and Apple Health do not currently expose HR zone data (Apple does not provide zones for workouts; Garmin does not expose them even though the Garmin app shows them), so the object arrives empty for those providers.

  • Some providers do send pre-calculated zones: Fitbit, Polar, Strava, Suunto, TrainingPeaks, WHOOP.

This is a provider-API limitation, not a mapping issue, and Garmin's would populate automatically if Garmin exposed it. To see which fields each provider returns, use the payload simulator in the dashboard's generate section.

If you need zones for an unsupported provider, derive them yourself:

  • Use recorded max_hr_bpm from activities, or a theoretical max (e.g. 220 minus age).

  • Compute zones from raw heart rate samples.

user_max_hr_bpm is only populated when a provider sends a theoretical max, which most (including Garmin) do not.

Last updated

Was this helpful?