Garmin Integration

beta

Connect Garmin Connect data to Sahha via the Garmin Health API.

Overview

Connect Garmin Connect data to Sahha via the Garmin Health API. You register an app with Garmin, add it to Sahha as an integration, configure webhooks, then connect end users. The connection flow itself is shared across providers — see Integrations for the concepts and Connect a user for the full round-trip.

Status Beta Garmin approval required
API sluggarmin
DeviceWatch
ConnectionCloud OAuth
Live syncPush (webhooks)
Backfill on connect 30 days — Requires the user to grant Garmin's historical-data permission

Before you start

Access required

The Garmin Health API requires approval from Garmin. Apply through the Garmin Developer Program before starting.

Examples use the sandbox environment. Replace sandbox-api.sahha.ai with api.sahha.ai for production — see API Environments .


1. Register your Garmin app

This gives Sahha the OAuth credentials it uses to request data on your users' behalf.

  1. Sign in to the Garmin Developer Portal .

  2. Create a new application.

  3. Configure the application's name, description, and logo — these are shown to end users during the connection flow.

  4. Add the Sahha OAuth redirect URL:

    https://sandbox-api.sahha.ai/api/v1/integration/oauth/garmin/callback
  5. Enable the APIs you want Sahha to ingest — e.g. Health API, Activity API, Women's Health API. (The Training API is not supported by Sahha.)

  6. Save, then copy your Client ID and Client Secret for the next step.


2. Create the integration in Sahha

  1. Go to the Sahha Dashboard .
  2. Navigate to Integrations → Integrations in the sidebar.
  3. Click Add integration and select Garmin from the Provider dropdown.
  4. Paste in your Garmin Client ID and Client Secret .
  5. Add one or more entries to the Redirect URL Whitelist — the URLs in your own app that Sahha may redirect users back to after OAuth.
  6. Save the integration.

About the Redirect URL Whitelist

When you start the OAuth flow you may optionally pass a redirectUrl — it must match a whitelisted entry. If omitted, Sahha uses the first URL in the whitelist.

After saving, the dashboard displays a webhook URL for this integration. You'll need it next.


3. Configure Garmin webhooks

Garmin delivers data to Sahha via push notifications, so you must register Sahha's webhook URL with Garmin.

  1. In the Garmin Developer Portal , open the Endpoint Configuration page .
  2. For every endpoint you want Sahha to receive, paste the webhook URL from your Sahha integration into the endpoint's URL field.
  3. Ensure each endpoint is enabled .
  4. Where a delivery mode is offered, select Push — not Pull.
  5. Save.

Push, not Pull

Sahha only supports push delivery. Any endpoint left in pull mode will not deliver data to Sahha.


4. Connect a user

Start the OAuth flow with the user's profile token. Garmin's slug is garmin:

curl -X GET "https://sandbox-api.sahha.ai/api/v1/integration/oauth/garmin/authorize?redirectUrl=https://yourapp.com/integrations/callback" \
-H "Authorization: profile {your-profile-token}"
{
"authorizationUrl": "https://connect.garmin.com/oauthConfirm?..."
}

Redirect the user to authorizationUrl to complete authorization. For the full round-trip, prerequisites, language-specific snippets, and the SDK option, see Connect a user .


Garmin-specific notes

  • Training API is not supported. Don't rely on Sahha ingesting Training API data.
  • Historical backfill needs permission. Sahha backfills 30 days on connect, but only if the user grants Garmin's historical-data permission during authorization. Without it, only data recorded after connection flows in.
  • Webhooks must be push. See step 3 — pull-mode endpoints deliver nothing.

For data freshness, the connection lifecycle, and disconnecting a user, see Managing connections on the Integrations page.


Support

Need help? Contact support@sahha.ai or join the Slack Community .

Previous
Integrations
Next
Oura