> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/help-center/help-topics/no-data/historical-backfill-returns-nothing/garmin-historical-export-toggle-off.md).

# Why is Garmin historical backfill returning empty?

Garmin historical retrieval requires the historical-data sharing option to be granted on Garmin's consent screen, which can default to OFF (and was defaulted…

Garmin historical retrieval requires the **historical-data sharing option** to be granted on Garmin's consent screen, which can default to OFF (and was defaulted off for some users who authenticated before a recent provider change). Without it you only get live data going forward.

Garmin also fires its historical backfill **once per OAuth subscription**, so a reauth that reuses the same credential will not re-deliver history.

**To check a user:** look at the `scopes` string on the auth payload's `user` object. Users who granted the option include `HISTORICAL_DATA_EXPORT`, for example `ACTIVITY_EXPORT,HISTORICAL_DATA_EXPORT,HEALTH_EXPORT,WORKOUT_IMPORT,COURSE_IMPORT`. For users who didn't, it is simply absent, so you can prompt them early. If a user changes their Garmin permissions later, a [`permission_change` event](https://docs.tryterra.co/reference/health-and-fitness-api/event-types) arrives with `scopes_added` and `scopes_removed`.

Granting the option later doesn't fetch history on its own. **The fix:** have affected users **disconnect and reconnect, ticking the historical-data sharing option** during reauthorization.

With the option granted, Terra fetches about the last year of Garmin history when a new connection is created. That history is stored and returned by the data endpoints, but it isn't sent to your destination, since only new data is pushed by default.

To have history sent to your destination, or to pull Garmin data older than that year, call the [historical data-retrieval endpoints](https://docs.tryterra.co/unified-api/managing-user-health-data/requesting-historical-data) (e.g. `/v2/activity`, `/v2/menstruation`) with a `start_date` and `to_webhook=true`. Anything Terra doesn't already hold is requested from Garmin, and the data is pushed to your destination asynchronously. Garmin allows up to **5 years** into the past, subject to Garmin's own backfill limits, so some older activities may not be returned.
