Skip to main content

Introduction

Open Wearables Sync SDKs enable seamless background synchronization of health data directly from Apple HealthKit (iOS), Samsung Health, and Health Connect (Android) to the Open Wearables platform. Unlike cloud-based providers (Garmin, Polar, Suunto) that use webhooks and OAuth, on-device health stores require a push-based model where data is sent from the user’s device to your backend.
Why Push-Based? Apple HealthKit, Samsung Health, and Health Connect don’t expose cloud APIs. Health data lives exclusively on the user’s device, so the mobile app must actively push data to your backend.

Architecture Overview

Health Data Store

Health data is stored locally on the user’s device — in Apple Health (iOS), Samsung Health, or Health Connect (Android).

Your App + Sync SDK

The SDK reads data from the health store and handles background synchronization automatically. Available as native iOS (Swift), native Android (Kotlin), or Flutter (cross-platform).

Open Wearables Platform

Data is pushed to POST {host}/api/v1/sdk/users/{userId}/sync and normalized to the unified data model.

Key Features

Background Sync

Health data syncs automatically even when your app is in the background, using iOS Background App Refresh or Android WorkManager.

Incremental Updates

Uses anchored queries to sync only new data since the last sync, minimizing battery usage and network traffic.

Secure Storage

Credentials stored securely in iOS Keychain or Android EncryptedSharedPreferences. API keys never leave your backend.

Wide Data Support

Steps, heart rate, workouts, sleep, body measurements, nutrition, and more — all normalized to Open Wearables data model.

Available SDKs

iOS (Swift)

Native iOS SDK — the core implementation for Apple HealthKit sync.

Android (Kotlin)

Native Android SDK — sync from Samsung Health and Health Connect.

Flutter

Flutter SDK — cross-platform wrapper around the native iOS and Android SDKs.

React Native

React Native SDK — cross-platform wrapper around the native iOS and Android SDKs.

Security Model

The SDK uses a secure token-based authentication flow that keeps your App credentials safe:
  1. App credentials stay on your backend - app_id and app_secret are never exposed to mobile apps
  2. Short-lived access tokens - Generated server-to-server via POST /api/v1/users/{user_id}/token, forwarded to the mobile SDK
  3. Secure credential storage - iOS Keychain / Android EncryptedSharedPreferences
  4. Automatic token refresh - SDK can automatically refresh expired tokens using the refresh_token
  5. API key auth - Alternative for internal tools (not recommended for production)
Never embed your app_id / app_secret in your mobile app. Always generate access tokens on your backend and pass only the tokens to the mobile SDK.

Next Steps

iOS SDK

Get started with the native iOS SDK (Swift)

Android SDK

Get started with the native Android SDK (Kotlin)

Flutter SDK

Get started with the Flutter SDK