OAuth
Connect any wearable.
One OAuth flow.
Open Wearables handles the OAuth integration for every supported provider. Your app redirects the user, they authenticate, you get health data. No provider-specific logic required.
First connected user in minutes.
Every provider has a different OAuth implementation.
One provider = weeks of work
Every provider is different
Different flows, token formats, redirect rules, and edge cases. Each integration is its own project.
Build-it-yourself cost
Months, not days
Building OAuth for multiple providers means months of integration work before you ship a single health feature.
With Open Wearables
GET /oauth/{provider}/authorize
// Returns authorization_url
// Redirect user. Done.
garmin, whoop, strava,
polar, apple, samsung ...
One call. Any provider.
Open Wearables handles the provider-specific logic. You call one endpoint regardless of which device your user has.
Three steps to a connected user.
Create a user, request an authorization URL, redirect. Open Wearables handles token storage and begins syncing data automatically.
# 1. Create a user
$ curl -X POST localhost:8000/api/v1/users \
-d '{"email": "user@example.com", "external_user_id": "u_123"}'
# 2. Get the authorization URL
$ curl "localhost:8000/api/v1/oauth/garmin/authorize?user_id={id}"
{"authorization_url": "https://connect.garmin.com/..."}
# 3. Redirect user. OAuth completes, sync begins
01
Create a user
POST to /api/v1/users with an email and
your internal external_user_id. Open
Wearables returns a user ID that maps to your system.
02
Get the authorization URL
GET /api/v1/oauth/{provider}/authorize?user_id={id}. Open Wearables returns an authorization URL. Redirect your user there.
03
User authenticates
The user logs in with their provider account. OAuth completes. Open Wearables stores the tokens and begins syncing data automatically.
Add a provider without touching your OAuth logic.
Every provider follows the same pattern: one endpoint, one redirect, one connection. When Open Wearables adds a new provider, you get it without writing any new integration code.
Building a mobile app? OAuth is already handled.
Open Wearables ships native SDKs for Flutter and React Native. The OAuth flow, redirect handling, and token exchange are built in. You initialize the SDK, call the connect method, and the user goes through the provider login.
Useful when your users connect their wearable directly from a mobile app.
View SDK docs →Flutter SDK
Native Dart package. OAuth flow, token management, and provider connection UI included.
React Native SDK
TypeScript-first. Drop in the connect component and the OAuth flow is handled end to end.
Full control over user connections.
Every connection includes provider capability metadata, so you know exactly what data to expect before requesting it.
-
List all active provider connections for a user, enriched with provider capability metadata
-
See exactly what data each provider can deliver before requesting it
-
Disconnect a provider at any time, revoking the connection and clearing stored tokens
Tokens stay on your infrastructure.
Open Wearables is self-hosted by design. OAuth tokens are stored in your own database, on your own servers. No third party holds credentials on behalf of your users.
State parameter validation is built into the OAuth flow. Redirect URIs are configurable per request.
Stop building OAuth.
Start shipping health features.
One platform to connect every wearable provider, normalize health data, and build on top of it.
Self-hosted. Zero per-user fees. MIT licensed.
Healthcare software & AI development agency specializing in turning health data into intelligent applications.
themomentum.aiCommon questions.
Do I need to apply for API credentials with each provider?
Yes. You apply directly to each wearable provider (Garmin, Whoop, Apple, etc.) for OAuth credentials. This is a one-time process per provider. Open Wearables handles all the OAuth flows once you have the credentials in place.
Where are OAuth tokens stored?
Open Wearables is self-hosted. OAuth tokens are stored in your own database, on your own servers. No third party holds credentials on behalf of your users.
How long does integration take?
The first connected user takes minutes once your instance is running. Provider credential approvals vary — some are immediate, others take 1-4 weeks. Once credentials are in place, OAuth flows, data sync, and testing take days, not months.
Does Open Wearables support mobile apps?
Yes. Flutter and React Native SDKs are available. The OAuth flow, redirect handling, and token exchange are built into the SDKs. For Apple Health, the Flutter SDK is the required integration path since HealthKit only works on physical iOS devices.
Can I access historical data from before the integration?
It depends on the provider. Apple Health supports full historical sync via the Flutter SDK. Garmin provides recent data by default, with historical access depending on your developer agreement. Most providers support some level of historical backfill.
Is Open Wearables free to use?
Yes. Open Wearables is open source (MIT license) with zero per-user fees. You pay for the infrastructure you deploy it on and nothing else.