Browse the docs

Provider guide

Garmin: register your app (Connect Developer Program)

Access Application per tier. The program was paused from March 2026 and reopened around 21 Oct 2026 [2ND]; the official overview now lists Personal, Starter and Enterprise [OFF]
Cost Personal and Starter: no fee found. Enterprise: reported ~$1,000 entry fee plus per-user monthly fees [2ND]
Account Company: legal entity, company-domain email (no Gmail, no generic info@ inbox), public privacy policy [OFF/OW]
Managed app No: bring your own keys (catalog custom_only)
Latido slug garmin
Time ~10 minutes to apply; approval time UNVERIFIED

Pick the tier

Tier What you get [OFF] Fits Latido?
Personal Pull only; Activity (JSON + FIT), Health, Women's Health Your own data. Latido's Garmin adapter is push-based, so pull-only keys may not deliver anything (UNVERIFIED whether Latido supports Garmin pull)
Starter Push only, no history, "limited" users (~1,000 per OW and press), Training and Courses APIs included The realistic start: live data from the moment a member connects, no backfill
Enterprise Push or ping/pull, history of 1 month or more, unlimited users, Golf; paid Needed for backfill and scale

Existing partners reportedly have until 1 Apr 2027 to move to the new tiers [2ND].

Steps

  1. Read the overview, https://developer.garmin.com/gc-developer-program/overview/, and apply for the tier you picked with your company email [OFF]. Describe the product honestly: evaluation apps used commercially can be disabled without notice [OW docs].
  2. Once accepted, sign in to the developer portal (https://developerportal.garmin.com) and create an app. You receive an evaluation Consumer Key (client id) and Consumer Secret [MEM: names].
  3. Set the OAuth 2.0 redirect URL to https://api.getlatido.com/connect/callback/garmin [MEM: field location]. Garmin uses OAuth 2.0 with PKCE for new apps; OAuth 1.0a is legacy [OW].
  4. In API Tools → API Configuration (https://apis.garmin.com/tools/apiConfiguration), enable the APIs and permissions. Scopes are configured here, not in the authorize URL [OW]:
    • ACTIVITY_EXPORT, HEALTH_EXPORT [OW]
    • HISTORICAL_DATA_EXPORT for backfill (Enterprise) [OW]; members see it off by default on the consent screen and must switch it on
    • WORKOUT_IMPORT and COURSE_IMPORT to push planned workouts and courses [MEM]
  5. In Latido, Providers → Garmin → Custom app: paste client id and secret, save, and copy the webhook URL https://api.getlatido.com/providers/garmin/webhook/{providerAppId}.
  6. In API Tools → Endpoints (https://apis.garmin.com/tools/endpoints), paste that URL for every summary type you want (activities, activity details, activity files, dailies, epochs, sleeps, body comps, HRV, stress, respiration, pulse ox, user metrics, deregistrations and user permission changes). Choose push (data inline) where offered; Starter is push only [OFF/OW].
  7. Nothing else to paste: Garmin does not sign pushes. Latido checks the garmin-client-id header against your client id [OW].

Going to production

Gotchas

  • Answer 200 within 30 s even for types you ignore, or Garmin keeps retrying [OW].
  • The same Garmin userId survives re-authorization; a late deregistration can refer to an old grant [OW].
  • Backfill is Enterprise only, max 30 days per request, usually once per type, and returns 412 if the member did not grant historical data [OW].
  • Training API paths and token lifetimes are UNVERIFIED (the spec PDFs are behind the portal).

Sources