Overview
Provider webhook subscriptions tell a wearable provider (Polar, Oura, Strava) where to send event notifications. When an active subscription is in place, the provider pushes a lightweight notification to your Open Wearables instance whenever new data is available. Open Wearables then fetches, normalizes, and stores the data — and can forward it onward via Outgoing Webhooks.This page covers provider → Open Wearables subscriptions (inbound). For Open Wearables → your app event delivery, see the Outgoing Webhooks guide.
/api/v1/providers/{provider}/webhooks/subscriptions
Supported {provider} values: polar, oura, strava. Withings subscriptions are managed per connected user.
Provider differences
Endpoints
List subscriptions
Returns all active subscriptions for a provider.- Polar
- Oura
- Strava
Register subscriptions
Creates a new subscription (or updates an existing one if the URL changed). Passcallback_url as a query parameter.
Polar: the
signature_secret_key is returned by Polar exactly once, on creation. Open Wearables saves it automatically to the provider_settings table (webhook_secret column). If you need to rotate it, delete and recreate the webhook.Get a subscription
Fetch a single subscription by ID.{ "subscription": null } when the subscription is not found.
Get by ID is currently implemented for Oura only. Polar and Strava return
501 Not Implemented — use list subscriptions instead.Update a subscription
Change the callback URL of an existing subscription.status values: updated, patched, deleted, created, skipped, error.
Delete a subscription
Remove a webhook subscription from the provider.Renew subscriptions (Oura only)
Oura subscriptions have anexpiration_time. Call this endpoint to extend all active subscriptions before they expire.
Inbound event endpoints
These endpoints receive the actual event notifications from providers. They are not management operations — you do not call them directly.
The callback URL you register with a provider must point to
POST /api/v1/providers/{provider}/webhooks. For local development, use ngrok to expose that endpoint publicly.
Withings recommends adding a random shared secret to the exact callback URL. Set WITHINGS_WEBHOOK_TOKEN to a value generated with openssl rand -hex 32; Open Wearables registers ?token=<secret> and validates it on notification POSTs and reachability HEAD probes. See the Withings notification security guidance.
Withings also recommends allowing its published notification IP ranges at the network edge. Those ranges are distributed through the DNS records documented in the same security guidance and should be monitored for changes by the deployment operator.
Response schema reference
Subscription objects
Each provider returns a different subscription shape: Polar
Oura
Strava

