Need help with your Polar integration? Pop into our Discord if you have questions or want to discover how Open Wearables can solve your problems.
Overview
Polar provides access to exercise, daily activity, sleep, and heart rate data from Polar devices through the AccessLink API. The integration uses OAuth 2.0 for authentication and pull-based syncing to fetch data.Supported data types
| Data Type | Support |
|---|---|
| Workouts / Exercises | Yes (with optional HR samples, zones, route) |
| Sleep (with stages) | Available via API - not yet implemented |
| Daily activity | Available via API - not yet implemented |
| Continuous heart rate (5-min intervals) | Available via API - not yet implemented |
| Nightly Recharge / Recovery | Available via API - not yet implemented |
Open Wearables currently syncs exercise/workout data from Polar. The AccessLink API also exposes sleep, daily activity, continuous HR, and Nightly Recharge data - support for these types is planned for a future release.
Data delivery
| Method | Description |
|---|---|
| Polling (pull) | Open Wearables periodically fetches exercise data via the Polar AccessLink API (via Celery Beat) |
Webhooks: Polar supports webhooks for event notifications, but Open Wearables does not yet implement a Polar webhook handler. Data is synced via periodic polling only. Webhook support is planned for a future release.
What you need by the end
- App credentials: Client ID + Client Secret from the Polar AccessLink admin panel
- Redirect URI registered in your Polar application
Prerequisites
- A Polar Flow account
Application walkthrough
Create a Polar Flow account
If you don’t have one yet, create a free account at flow.polar.com.This is the same account used by Polar device owners - no separate developer account is needed.
Register your application at Polar AccessLink
Go to the Polar AccessLink Admin and sign in with your Polar Flow credentials.Click Create client to start the registration process. You’ll go through four tabs:1. Contractual Information
- Fill in your organization details (name, address, country)
- Toggle “I intend to integrate on behalf of a client or third-party organization” if applicable
- Accept the AccessLink Limited License Agreement
- Application Name: Your app name (e.g. “Open Wearables”)
- Business contact (email): Your contact email
- Description: Brief description of your application
- Application Web site: Your app’s website (optional)
- Authorization redirect URL: Your OAuth callback URL - for local development use
http://localhost:8000/api/v1/oauth/polar/callback - Available data types: Enable all three - Exercise data, Daily activity data, Physical information data
- Client ID
- Client Secret
Configure credentials in Open Wearables
Add the following to your Configuration details:
.env file:| Variable | Description |
|---|---|
POLAR_CLIENT_ID | Client ID from the Polar AccessLink Admin panel |
POLAR_CLIENT_SECRET | Client Secret from the Polar AccessLink Admin panel |
POLAR_REDIRECT_URI | Must match the Authorization redirect URL registered in your Polar application. For local dev: http://localhost:8000/api/v1/oauth/polar/callback |
The OAuth scope is hardcoded to
accesslink.read_all which grants full read access to the AccessLink API. No additional scope configuration is needed.Connect a user via OAuth
With credentials configured and your Open Wearables instance running, initiate the OAuth flow to connect a user’s Polar account.1. Get the authorization URL:Response:2. Redirect the user to the You should see a connection with
authorization_url. They will log in to Polar Flow and authorize your app.3. Polar redirects back to the callback URI configured in your .env (POLAR_REDIRECT_URI). Open Wearables automatically exchanges the authorization code for access tokens and registers the user with the Polar API.4. Verify the connection was created:"provider": "polar" and "status": "active".The
redirect_uri parameter in the authorize call is where the user is sent after the flow completes (e.g., back to your app). This is separate from POLAR_REDIRECT_URI in your .env, which is the server-side OAuth callback that Polar sends the authorization code to.Sync data
An initial sync is triggered automatically after a successful OAuth connection. To manually sync or fetch data:
Polar only returns exercises uploaded within the last 30 days. Older data is not accessible via the AccessLink API.
Rate Limits
Polar AccessLink API uses dynamic rate limits that scale with your registered user count:| Limit | Formula |
|---|---|
| Per 15 minutes | 500 + (registered users x 20) |
| Per 24 hours | 5,000 + (registered users x 100) |
RateLimit-Usage, RateLimit-Limit, RateLimit-Reset.
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.
- Check the Polar AccessLink API Documentation.
- Contact Polar developer support: b2bhelpdesk@polar.com

