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
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
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.comhealth.garmin.comdeveloper.garmin.com
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)
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:This generates:
- 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).
- Client ID
- Client Secret
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 endpointsFor local development with ngrok:(Optional) Modify data types and OAuth scopes
- Open API Endpoints
- For every endpoint, set the URL to your Open Wearables webhook push endpoint:
- 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
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 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.
- 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.
Provide Garmin credentials to Open Wearables
Once you have an app created, configure your Open Wearables backend with:
If you later move from evaluation to production, you’ll update these credentials to the production ones.
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
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?
- Join our Discord and ask a question.
- Check GitHub Discussions.
- Contact Garmin Developer Program support: Developer Contact Us.
- Check Garmin Developer Portal resources like FAQ page, specification documents.
- Once your application is accepted, you can schedule an onboarding call with Garmin. They’ll walk you through the platform and answer any questions.

