> 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/data-api-sdk/account-config-environments-and-going-live/fitbit-to-google-migration.md).

# How do I handle the Fitbit-to-Google migration?

Move Fitbit users to the Google Health connection, because Terra's Fitbit connection runs on the legacy Fitbit Web API that Google is deprecating.

**Move your users to the Google Health connection (`GOOGLE_HEALTH`), and confirm a user can connect Google Health before removing their Fitbit connection.** Terra's Fitbit connection reads the legacy Fitbit Web API, which [Google is deprecating in September 2026](https://dev.fitbit.com/build/reference/web-api/). Google's replacement is the Google Health API, and that is what the Google Health connection uses.

* **Enabling it:** add Google Health to your environment in the dashboard. Terra manages the credentials, so there is no Google app for you to register.
* **Each user connects once:** Fitbit tokens can't be carried over to the Google Health API, so every user signs in again with their Google account. See [Google's migration guide](https://developers.google.com/health/migration).
* **User IDs:** a Google Health connection is a separate connection with its own `user_id`. It does not replace the Fitbit connection or send a `user_reauth` event, because that event only fires when the same provider is reconnected. Match the two connections on your `reference_id`.
* **History:** on connect, Terra fetches up to the last 12 months, depending on what Google holds for that account. That history is returned by the REST API but isn't sent to your destination.

Until users move, the Fitbit connection signs them in on Fitbit's own web page rather than through an app, so having the Google Health app installed instead of the Fitbit app doesn't change how it connects.

The two connections don't deliver identical fields, so check Google Health payloads against what your app reads before switching users over.
