Browse the docs

Provider guides

Provider onboarding

Every health platform Latido reads from needs an OAuth app registered in that platform's developer portal. These guides tell you, per provider, how to get one and what to paste back into Latido.

Using your own keys ("bring your own keys"): open the guide for your provider, follow the checklist, and paste the credentials into Dashboard → Project → Providers → {provider}.

The capabilities below mirror Latido's provider catalog, the source of truth the API enforces (GET /v1/providers lists what your key can connect). Facts about each provider's portal come from research compiled on 2026-10-26 from the providers' public documentation, so form layouts can drift: when a portal differs from a guide, follow the portal.

How to read the source tags

Tag Meaning
[OFF] Read on the provider's official docs on 2026-10-26.
[OW] Seen in the Open Wearables source code (MIT, working production code, not the vendor's word).
[2ND] Secondary source: press, blogs, forums, aggregator docs.
[MEM] Prior knowledge, not re-checked. Confirm in the portal.
UNVERIFIED Could not confirm. Treat it as a hypothesis.

The two URLs every provider app needs

The dashboard shows the exact values for each project and provider app. They follow these templates:

What Template Where it goes
Redirect URI (OAuth callback) https://api.getlatido.com/connect/callback/{slug} The provider's "redirect URI", "callback URL" or "callback domain" field.
Webhook URL (inbound notifications) https://api.getlatido.com/providers/{slug}/webhook/{providerAppId} The provider's webhook / notification / endpoint field, or the subscription Latido creates through the provider's API.
  • https://api.getlatido.com is Latido's public API. It is public HTTPS, which every provider accepts (Oura and Withings refuse localhost and bare IPs).
  • {slug} is the ProviderSlug value: garmin, strava, polar, suunto, coros, oura, whoop, withings, fitbit, google_health, wahoo, dexcom, huawei. Note the underscore in google_health (the guide file is google-health.md, the URL slug is not).
  • {providerAppId} identifies the provider app inside Latido, so one backend can receive notifications for many customers' apps. You only know it after saving the app in the dashboard: save client id and secret first, then copy the webhook URL, then finish the provider's webhook form.
  • Apple Health and Health Connect have neither: they are on-device stores, and data reaches Latido through POST /v1/members/{id}/ingest.

Overview (October 2026)

"Managed app" means Latido's own approved app could serve every customer; "BYO keys only" means each customer must register their own app because the provider's terms forbid intermediaries or require one registration per end customer. Latido holds no approved managed apps today, so in practice every provider is BYO keys until that changes.

Provider Access status Cost to get access Approval time Managed app possible? Data types Push model AI-use restriction
Garmin Reopened ~21 Oct 2026 after a pause; tiered application [OFF/2ND] Personal and Starter: no fee found; Enterprise: ~$1,000 entry + per-user monthly fee [2ND] UNVERIFIED (program just reopened) No, BYO keys only Workouts, daily, sleep, body, HR Push (data inline) or ping→pull, per data type None found
Strava Self-serve; Standard tier needs a paid Strava subscription since 1 Jun 2026 [2ND] The developer's Strava subscription [2ND] Instant for personal use; Extended Access is a review No, BYO keys only Workouts, HR streams Notify-only webhook (ids), hub.challenge handshake Yes: no AI, RAG, embeddings or MCP over Strava data [2ND]; data shown only to its athlete [OFF]
Polar Self-serve [OFF] Free Instant Yes Workouts, daily, sleep, HR Notify-only webhook, HMAC-signed None found
Suunto Partner application, companies only [OFF] No fee found (UNVERIFIED) ~2 weeks [OFF] Yes Workouts, daily, sleep Push (data inline), HMAC-signed None found
COROS Partner program for established platforms [OFF] UNVERIFIED UNVERIFIED Yes Workouts, daily, sleep Workout-summary push (~5 min after sync) None found
Oura Self-serve up to 10 users; approval above [OFF] Free UNVERIFIED for the >10 approval No, BYO keys only (one registration per end customer) [2ND] Workouts, daily, sleep, HR Notify-only webhook, app-level subscriptions, HMAC-signed Yes: no prompting or feeding AI models with API data [2ND]
WHOOP Self-serve sandbox (10 members) → app approval [OFF/OW] Free Slow in 2026 (catalog note; no figure) Yes Workouts, daily (cycles/recovery), sleep, body Notify-only webhook, HMAC-signed None found
Withings Self-serve [OW] Free up to 1,000 active users; paid plans above and for advanced biomarkers [OW] Instant Yes Workouts, daily, sleep, body, HR Notify-only, per-user subscriptions, unsigned None found
Fitbit Sunset: turned off 2 Nov 2026, HTTP 410 after [OFF] n/a n/a n/a n/a n/a n/a
Google Health All scopes Restricted: verification + yearly CASA assessment [OFF/OW] CASA lab ~$500–4,500 per year [OW citing Google] Plan 1–2 months [OW] Yes Workouts, daily, sleep, body, HR Notify-only, project-level subscriber, Bearer secret (Latido polls today) None found (Limited Use policy applies)
Wahoo Sandbox → production review [OFF] No fee found (UNVERIFIED) UNVERIFIED Yes Workouts (+ planned-workout writes) Push (workout summary inline), webhook_token None found
Dexcom Sandbox self-serve; production by partnership [OFF] Sandbox free; production terms UNVERIFIED UNVERIFIED Yes Glucose None: polled None found
Huawei Health Developer console; Health Kit scopes need approval [OFF] No fee found (UNVERIFIED) UNVERIFIED Yes Workouts, daily, sleep, body, HR Polled (a subscription API may exist, UNVERIFIED) None found
Apple Health Open (needs your own iOS app) Apple Developer Program, $99/year [MEM] App Store review n/a (on device) All, incl. glucose Device upload via ingest API None found (App Store health rules apply)
Health Connect Open (needs your own Android app) Google Play developer account, $25 one-time [MEM] Play health-apps declaration review n/a (on device) All, incl. glucose Device upload via ingest API None found (Play health policy applies)

"None found" means this research found no AI clause, not that the provider's terms were reviewed line by line. Read the current agreement before shipping an AI feature on any provider's data. In Latido, providers with allowsAiProcessing: false (Strava, Oura) never reach MCP.

Settings Latido asks for, per provider

Besides client id and client secret, some providers need extra values. They are stored encrypted (AES-256-GCM) in the provider app's settings. The keys below are the names the guides use; if the dashboard labels a field differently, the dashboard wins.

Provider Setting key Value
Strava webhookVerifyToken A random string you choose; Strava echoes it in the subscription handshake.
Polar webhookSecret signature_secret_key returned once when the webhook is created.
Suunto subscriptionKey The API Zone subscription key (Ocp-Apim-Subscription-Key).
Suunto webhookSecret The notification secret set in the API Zone portal.
Oura webhookVerificationToken A random string you choose for the subscription handshake.
Withings webhookSecret A random string Latido appends to the notification URL (Withings does not sign).
Wahoo webhookToken The webhook_token set in the Wahoo app settings.
Google Health projectNumber, webhookSecret The Cloud project number, and the Bearer secret given to the subscriber.
Dexcom environment sandbox, us, eu or jp (which Dexcom host to call).
Garmin, WHOOP, COROS, Huawei none Garmin and COROS identify themselves with your client id (and secret) in headers; WHOOP signs with the client secret.

Files