All integrations
Available in v0.1.0

Fitbit data, in your own stack.

Users connect the Google Account their Fitbit or Pixel Watch data lives in. Open Health Sync pulls it from the Google Health API on a schedule and when Google sends a signed notification.

Source
Trackers and watches, now Google
How the data arrives
Cloud API (Google Health API v4), Google OAuth 2.0 with restricted scopes, scheduled pulls and signed webhook notifications.

What it collects.

Each record maps to the same model as every other source, with the provider, source and device it came from.

  • Activity: steps, distance, floors, active energy
  • Heart rate and resting heart rate
  • HRV (RMSSD)
  • SpO2 and respiratory rate
  • Sleep with stages
  • Workouts
  • Weight, body fat and height
  • VO2 max
  • Blood glucose and temperature

How it works.

  1. 01

    The user connects

    Your server asks for a consent URL and sends the user to Fitbit. Tokens are stored encrypted.

  2. 02

    The server pulls

    A first backfill, then scheduled pulls, and webhooks where the provider sends them. Every raw payload is kept.

  3. 03

    You read one model

    Units, time zones and duplicates handled, served over REST, the read-only MCP server and FHIR R4.

Before you start.

  • Google isn't onboarding new Google Health API projects yet. Bring your own Google Cloud project and OAuth client.
  • While an app is unverified it serves 100 users, and its refresh tokens last 7 days in Testing.
  • The legacy Fitbit Web API, turned off on 2026-10-30, isn't used.
  • Deletions at Fitbit aren't propagated yet.

Set it up.

Register your own Fitbit app, set its callback to <OHS_PUBLIC_URL>/oauth/fitbit/callback and put its credentials in .env. The guide has every step.

Terminal
# .envOHS_FITBIT_CLIENT_ID=...OHS_FITBIT_CLIENT_SECRET=...OHS_FITBIT_WEBHOOK_SECRET=...# Ask for a consent URL, then send the user to authorize_urlcurl -s -X POST $OHS/v1/users/$USER_ID/connections/fitbit \  -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \  -d '{"redirect_uri":"https://app.example.org/connected"}'# Read what came incurl -s "$OHS/v1/users/$USER_ID/sleep" -H "Authorization: Bearer $KEY"

Questions.

Can I use Fitbit with Open Health Sync today?

Yes. The Fitbit connector ships in v0.1.0.

Do I need anything from Fitbit?

Google isn't onboarding new Google Health API projects yet. Bring your own Google Cloud project and OAuth client.

Where does the data go?

Only to the server you run. Open Health Sync is self-hosted software, not a service: no account with us and no call home. Each user can be deleted with one call, raw files included.