Skip to main content
Garmin API giving you a headache? We feel your pain - that’s exactly why we created Open Wearables. Pop into our Discord if you have questions or want to discover how Open Wearables can solve your problems.

Overview

Garmin Connect provides access to comprehensive fitness and health data from Garmin devices through their Wellness API. The integration supports activities, daily summaries, sleep data, body composition, and more. Through the Garmin Connect platform, you can access data from:
  • Health API
  • Activity API
  • Women’s Health API
  • Training API
  • Courses API
Once you get access to the Developer Portal, you’ll find the full docs, including the FAQ page and specification documents.
Enterprise only: Garmin Connect Developer Program does not support personal use. You must apply as a legal entity (company, university, hospital, research institution, etc.). Personal-use applications are rejected.

What you need by the end

  • App credentials: Client ID + Client Secret
  • API Tools configured:
    • Endpoints enabled
    • Data types + OAuth scopes selected
  • Partner verification passed (to request production access later)
  • Production credentials (only after Garmin approves your evaluation app for production use)

Prerequisites

  • A registered legal entity (company / institution)
  • A public website
  • A public privacy policy page

Application walkthrough

1

Apply for Garmin developer access

Garmin access is approval-based. To apply, submit the official form:
Tips to avoid rejection:
  • Apply as a company/institution, not as an individual.
  • Use a company-domain email.
  • Clearly explain the enterprise/commercial product or institutional use case.
  • Provide a public link to your app/website privacy policy.
Make sure your mail server allows messages from:
  • garmin.com
  • health.garmin.com
  • developer.garmin.com
2

Get access to Garmin Developer Portal and add your team

After approval, Garmin will invite you to the Developer Portal and share a “set password” link.
Common Garmin restrictions:
  • No generic inboxes (support@, info@, dev@, etc.)
  • No free mail (gmail, outlook, etc.)
  • Third-party integrators may require an NDA (handled with Garmin via ticket/email)
3

Create an Evaluation app (this gives you Client ID + Client Secret)

You must create an app in the Developer Portal first. Start with an evaluation app:
  • Go to your team apps page (example): https://developerportal.garmin.com/teams/{your_team_name}/apps
  • Create an app and set the type to Connect Developer - Evaluation
  • Set the OAuth redirect URL (where the user is sent after Garmin login in the 3-legged OAuth flow)
  • Provide legal company details and describe how you will use Garmin data (aggregated/anonymous vs linked to identifiable users)
  • Select the APIs you intend to use (Health / Activity / Women’s Health / Training / Courses)
One company account can manage multiple apps (e.g., if you run separate apps for different clients).
This generates:
  • Client ID
  • Client Secret
Treat the Client Secret like a password. Store it in your secrets manager (and rotate if compromised).
4

Configure API Tools (endpoints + data types/scopes)

Garmin’s API Tools are configured per app. To access them, log in with that app’s Client ID + Client Secret.Enable endpoints
  • Open API Endpoints
  • For every endpoint, set the URL to your Open Wearables webhook push endpoint:
https://<your-domain>/api/v1/garmin/webhooks/push
For local development with ngrok:
https://<your-ngrok-id>.ngrok-free.app/api/v1/garmin/webhooks/push
  • Set delivery type to push (dropdown on the right)
  • Check enabled for each endpoint you want to activate
  • All endpoints use the same URL — Garmin distinguishes data types internally and sends the appropriate payload to this single endpoint
Which endpoints to enable:Enable all endpoints listed on the page. Open Wearables accepts data from all Garmin data types (activities, dailies, sleeps, epochs, HRV, body compositions, stress, respiration, pulse ox, and more).A subset of these types is actively requested during historical backfill — which ones is determined by BACKFILL_DATA_TYPES in backend/app/services/providers/garmin/backfill_config.py. All other enabled endpoints will passively receive data whenever Garmin pushes new updates.
Backfill requirement: backfill only works once the relevant endpoints are enabled on this page.Once backfill is enabled and data is ready, Garmin will deliver notifications via push and Open Wearables can ingest the backfilled data.
Backfill limits (practical gotchas):
  • Backfill typically returns ~last month of data.
  • Each data type can usually be backfilled only once.
  • Don’t retry backfill over and over—if you need more history, check the Garmin docs for the supported process and limits.
  • You can query just one day in the same time at maximum — you can’t fetch an entire month in a single request.
  • In the user authorization (consent) screen, the backfill scope is always turned off by default, so users must manually enable it each time.
(Optional) Modify data types and OAuth scopes
  • If you need to adjust what your app can access, open API Configuration
  • Pick which data domains your app is allowed to access
  • Pick which OAuth scopes will be shown/required during user authorization
Keep scopes minimal: only request what Open Wearables actually needs for your use case. If you add new data domains later, you’ll typically need to update this configuration and re-verify.
5

Provide Garmin credentials to Open Wearables

Once you have an app created, configure your Open Wearables backend with:
# Garmin OAuth Credentials
GARMIN_CLIENT_ID=your_client_id_here
GARMIN_CLIENT_SECRET=your_client_secret_here
# Optional: override only if your OAuth callback URL differs from the default.
# This must match the Redirect URI configured for your app in the Garmin Developer Portal.
# Default: http://localhost:8000/api/v1/oauth/garmin/callback
GARMIN_REDIRECT_URI=https://yourdomain.com/api/v1/oauth/garmin/callback
If you later move from evaluation to production, you’ll update these credentials to the production ones.
6

Go to production (partner verification + production access)

Evaluation apps are for internal development. To go production, Garmin requires partner verification:
  • Open Partner Verification
  • Complete the checks/tests listed there
  • After you pass, apply for a production key / production access
Evaluation apps used for commercial/production purposes may be disabled without prior notification.

Managin your team

In the developer portal you can add team members who need access to specifications, internal tools, app credentials, source code, etc. You can manage your team at https://developerportal.garmin.com/teams, or use the Switch company menu (available on most developer portal pages) and select “Manage Company”.

Next Steps

API Reference

Explore the Open Wearables API endpoints.

Architecture

Understand the overall system architecture.

Support

Need Help?