External: Data Sync

Synchronize data from fitness provider API for a specific user.

Data Types:

  • workouts: Workouts/exercises/activities
  • 247: 24/7 data including sleep, recovery, and activity samples
  • all: All available data types

Provider-specific:

  • Suunto: Supports workouts and 247 data with pagination
  • Polar: Supports workouts (exercises) only
  • Garmin: Data arrives via webhooks (backfill for 30-day history)
  • Whoop: Supports workouts and 247 data (sleep/recovery)

Execution Mode:

  • async=true (default): Dispatches sync to background Celery worker. Returns immediately with task ID.
  • async=false: Executes synchronously (may timeout for large data sets).

Requires valid API key and active connection for the user.

post/api/v1/providers/{provider}/users/{user_id}/sync

Request

  • Base URL: https://api.openwearables.io (the document declares no server; this is the origin it was published from)
  • URL: https://api.openwearables.io/api/v1/providers/{provider}/users/{user_id}/sync
  • Auth: OAuth 2 (password, token URL /api/v1/auth/login)

Path parameters

provider'apple' | 'samsung' | 'garmin' | 'health_connect' | 'google_health' | 'polar' | 'suunto' | 'whoop' | 'strava' | 'oura' | 'fitbit' | 'ultrahuman' | 'sensorbio' | 'withings' | 'unknown' | 'internal' required

Supported data providers.

Data provider

user_idstring uuid required

Query parameters

data_type'workouts' | '247' | 'all'

Types of data to sync from provider.

Type of data to sync: workouts, 247 (sleep/recovery/activity), or all

sinceinteger

Unix timestamp to synchronize data since (0 = all, Suunto only)

limitinteger

Maximum number of items (Suunto: max 100)

offsetinteger

Offset for pagination (Suunto only)

filter_by_modification_timeboolean

Filter by modification time instead of creation time (Suunto only)

samplesboolean

Synchronize sample data (Polar only)

zonesboolean

Synchronize zones data (Polar only)

routeboolean

Synchronize route data (Polar only)

summary_start_timestring nullable

Activity start time as Unix timestamp or ISO 8601 date (Garmin only)

summary_end_timestring nullable

Activity end time as Unix timestamp or ISO 8601 date (Garmin only)

asyncboolean

Run sync asynchronously via Celery (default: true). Set false for sync.

Headers

X-Open-Wearables-API-Keystring nullable

Response

Successful Response

OR

Changes

    • breaking

      the response's body type changed from object to no type for status

    • info

      added to the response body anyOf list for the response status

    • breaking

      removed the enum value google from the path request parameter provider

    • info

      added the new enum value google_health to the path request parameter provider

    • info

      added the new enum value health_connect to the path request parameter provider