Skip to content

Mobile SDK

Apple HealthKit API integration

Mobile SDK · on-deviceOn-device only. This requires your own mobile app — there is no cloud API for it, from any vendor.Backend ready; iOS SDK skeleton ships in Swift package

Apple Health device illustration

Apple Health has no cloud API and never has. Apple does not operate a server you can call — HealthKit is an on-device framework, and the only way to get the data is to run code inside an iOS app the user has installed and granted permission to.

This is the single most misunderstood fact in wearable integration. No aggregator can offer you "Apple Health via OAuth", including WearLink and including every competitor that lists an Apple logo on its homepage. If you have no iOS app, you have no Apple Health data.

What WearLink provides is the other half: a Swift SDK that reads the HealthKit types you request and pushes them into the same normalised pipeline as every cloud provider, so Apple Health data arrives in your backend in the identical shape to Oura or WHOOP data. There is also an import path for the Health app's export XML for one-off historical loads.

Connect a Apple Health user

Two calls. The first mints a hosted connect URL for your end-user; the second reads the normalised summaries once they have authorised with Apple Health. Subscribe a webhook to receive the same objects as they land.

connect + read — apple-health
# 1. Create a connect session for your end-user
#    The API key goes in X-WearLink-API-Key, not in Authorization.
curl -X POST https://wearlink.io/api/v1/connections/session \
  -H "X-WearLink-API-Key: $WEARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "'"$USER_ID"'", "provider": "apple-health", "redirect_uri": "https://yourapp.com/connected"}'

# → { "connect_url": "https://wearlink.io/widget/connect?token=...", "expires_in": 3600 }
# Redirect the user there; they authorise apple-health and land back on your redirect_uri.
# The token is scoped to that one user — it is safe to put in a browser URL.

# 2. Pull normalised data whenever you want
curl -H "X-WearLink-API-Key: $WEARLINK_API_KEY" \
  "https://wearlink.io/api/v1/users/$USER_ID/summaries?provider=apple-health&days=7"

Apple Health data available through WearLink

  • Steps
  • Heart rate
  • Workouts
  • Activity rings
  • Whatever else the user grants

Webhook events you can subscribe to

  • steps.created
  • heart_rate.created
  • workout.created

Normalised families this provider feeds: Sleep, Heart Rate Variability, Heart Rate, Workouts, Steps & Daily Activity, Calories & Energy, Blood Glucose & CGM, Blood Pressure, Body Composition, Body & Skin Temperature, Respiratory Rate & SpO2, Nutrition & Energy Balance, VO2 Max & Fitness Metrics.

What makes the Apple Health API hard to integrate directly

These are the things that turn an estimated one-week integration into a one-month one.

There is no cloud API — this is not a WearLink limitation

If a vendor implies Apple Health works without your own iOS app, they are describing something that does not exist. HealthKit is on-device only.

Permissions are per-type and silently partial

A user can grant steps and deny heart rate, and HealthKit does not tell you which were denied — a denied type is indistinguishable from a type with no data.

The device is the source of truth

If the phone is offline or the app has not been opened, nothing syncs. Background delivery helps but does not guarantee timeliness.

Apple Health aggregates other apps

Data in HealthKit may have originated in a third-party app, so you can see the same workout twice — once from HealthKit and once from its original provider.

FAQ

Apple Health API — frequently asked questions

Can I get Apple Health data without building an iOS app?
No. HealthKit is an on-device framework with no server component. Any product claiming otherwise is either describing the Health export XML file or is wrong.
Does WearLink have an iOS SDK?
Yes, a Swift package covering providers, connections, summaries and meal-photo upload. It currently ships as source; CocoaPods and Swift Package Index publishing is in progress.
How do I avoid double-counting Apple Health and Strava?
Set a provider priority. When the same workout arrives from both HealthKit and its original source, WearLink keeps the higher-priority copy.

Start with Apple Health — free for up to 3 users

No credit card. Your API key is issued at sign-up, and the hosted connect flow works from the first request.