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

Why do I get multiple Garmin sleep sessions for one night, or a sleep payload that looks incomplete?

Two separate things commonly look like a problem with Garmin sleep, but both are expected.

Two separate things commonly look like a problem with Garmin sleep, but both are expected.

1. Multiple sleep sessions from the same night

Garmin can send more than one sleep session for a single night (this is device-dependent, and includes naps). Each session is its own payload with its own metadata.summary_id, and naps are flagged with metadata.is_nap. Treat each summary_id as a distinct sleep session rather than assuming one night equals one payload, and store them independently. Field locations are in the data models reference.

2. A sleep payload that arrives looking incomplete

A sleep session can be delivered more than once with the same summary_id, where a later push fills in fields (durations, efficiency, hypnogram, score) that the first push left empty. Per the data models reference, when a session comes in again with the same summary_id you should update the previous entry with the newer data.

A night can look stuck on null if:

  • Your dedup key includes end_time (it can shift between pushes), or

  • You treat the first webhook for a summary_id as final and drop the later one.

Key on summary_id alone and let the later payload overwrite the earlier one. If a session still shows missing fields after the later push, contact support with the summary_id.

Last updated

Was this helpful?