Zwift Integration

Stream Zwift data. No Zwift API needed.

The Zwift iOS app writes rides it records to Apple Health — and Sahha’s SDK reads them into your app as normalized workouts, distance, active energy, and heart rate, alongside every other source.

  • On-device
  • Apple Health
  • iOS
  • HIPAA
  • GDPR

Free for 30 days · No credit card

Zwift logo
Normalized Auto-synced
Distance
28.4 km
Active energy
596 kcal
Avg heart rate
145 bpm

Identical schema across 500+ sources

How it works

Your users connect Zwift. Sahha does the rest.

This is your user’s side of the story — one screen, once. Sahha ingests every Zwift signal, normalizes, deduplicates, and delivers it to your service — raw, or as refined intelligence your product can act on.

Apple Health A

Allow "your app"

Sleep
Activity
Heart rate
Connect
9:41LIVE
82READY
Sleep7h 12m
Steps5,993
Heart rate62 bpm
Your early-riser reward
20% off açaí bowls — today only.
Sahha
Permissions handled
Encrypted in transit
History backfilled
Background sync enabled
Cleaning · deduping · scoring
Raw data logs Biomarkers Scores Insights Archetypes Tags
Real-time webhooks
Always in sync
Query via API
Access controlled
Your service
Waiting for data…

On-device and permissioned

Zwift data is read on the user’s own device, only after they grant Apple Health permission — nothing syncs without consent.

One integration, every source

Permission is per data type, not per brand. Anything that writes to Apple Health — Zwift today, a new watch next year — flows through the same SDK with no extra prompt and no new code.

Data coverage

What Zwift syncs through Apple Health.

  • Request only what you need

    You choose exactly which of these signals to request from Apple Health — users are only ever prompted for those, which keeps opt-in rates high.

  • One schema, every source

    Zwift, Apple Watch, and Oura all return the same fields and units.

  • What crosses the bridge

    Rides, distance, active energy, and heart rate pass through Apple Health; some app-exclusive metrics may not.

Activity & exercise

3
HealthKitHealthKitSahha
  • workoutActivityTypeexercise_session_cyclingmin
  • distanceCyclingdistance_cyclingm
  • activeEnergyBurnedactive_energy_burnedkcal

Heart & vitals

1
HealthKitHealthKitSahha
  • heartRateheart_ratebpm
See a real payload
HealthKit · workout
{
  "type": "HKWorkoutTypeIdentifier",
  "workoutActivityType": "HKWorkoutActivityTypeCycling",
  "duration": 3300,
  "totalDistance": { "value": 28.4, "unit": "km" },
  "totalEnergyBurned": { "value": 596, "unit": "kcal" },
  "sourceRevision": { "source": { "name": "Zwift" } }
  // …heart rate samples
}
Sahha · normalized
[
  {
    "category": "activity",
    "type": "exercise_session_cycling",
    "value": 55,
    "unit": "minute",
    "periodicity": "session",
    "aggregation": "total",
    "startDateTime": "2026-06-02T18:05:00Z",
    "endDateTime": "2026-06-02T19:00:00Z"
  },
  {
    "category": "activity",
    "type": "distance_cycling",
    "value": 28400,
    "unit": "meter",
    "periodicity": "session",
    "aggregation": "total",
    "startDateTime": "2026-06-02T18:05:00Z",
    "endDateTime": "2026-06-02T19:00:00Z"
  }
  // …2 more normalized logs
]

Only rides recorded on the Zwift iOS app write to Apple Health — sessions on PC, Mac, or Apple TV don’t, and there’s no account-level sync. Zwift doesn’t officially document this path, and it can double-count distance/calories. For reliable coverage across all your rides, connect Zwift to Strava and use Sahha’s Strava integration.

Missing a metric you need? Talk to us in the Sahha Slack — if Zwift captures it, we can usually add support.

Get more than just raw data

Sahha turns these signals into biomarkers, scores, archetypes, and insights — the modeling done for you.

Build vs. buy

Reading Apple Health yourself? Here’s the to-do list.

Everything on the left is yours to write, test, and maintain on iOS. Everything on the right, Sahha already did.

Every device
Build it yourself
  • Integrate Apple Health.
  • Handle iOS version differences.
  • Add Health Connect separately for Android.
With Sahha

One SDK covers Apple Health, Health Connect, and every cloud source.

Getting the data
Build it yourself
  • Write the HealthKit queries.
  • Request the right permissions.
  • Wire up background delivery.
With Sahha

The SDK handles queries, permissions, and background sync.

Keeping it clean
Build it yourself
  • Dedupe apps writing the same metric.
  • Map dozens of HealthKit types.
  • Reconcile against your Android sources.
With Sahha

Deduped, typed, one schema — one stream per user.

Turning it into insight
Build it yourself
  • Build a sleep model.
  • Build an activity model.
  • Hire a data scientist.
With Sahha

Scores, archetypes, and insights — built in.

Keeping it alive
Build it yourself
  • Apple changes a HealthKit API.
  • You find out in production.
With Sahha

We version the SDK. You never notice.

No Zwift developer account needed — Sahha reads what Zwift already writes to Apple Health on iOS.

Setup

Live in an afternoon, not a sprint.

  1. # Add the Sahha SDKnpm install sahha-react-native
    01

    Add the Sahha SDK

    Drop the Sahha SDK into your iOS app — or React Native or Flutter. The same SDK also covers Health Connect for your Android sources.

  2. 02

    Prompt for Apple Health permissions

    Call the SDK to show the native Apple Health consent sheet. The user chooses what to share — under your brand. It’s one prompt, ever: permission is per data type, not per brand, so every future source is already covered.

  3. Your app LIVE
    Sleep7h 12m
    Readiness82
    Heart rate62 bpm
    03

    Sahha reads and delivers

    Once permission is granted, the SDK reads Zwift data from Apple Health in the background, normalizes it to one schema, and streams it to your app by webhook or API.

Most teams read live Zwift data the same day they add the SDK. The only per-source prerequisite: your user has Zwift’s Apple Health sync switched on — most source apps enable it by default.

Destinations

Route it into your stack.

Sahha streams every update to your webhook — and a step-by-step guide takes it the rest of the way into your database, CDP, or messaging tool.

FAQ

Zwift integration questions

How does Sahha get Zwift data?

When you ride Zwift on the iOS app, it writes the workout to Apple Health, and Sahha reads it from there with its mobile SDK — no Zwift API to integrate.

Do rides on PC, Mac, or Apple TV sync?

No. Only rides recorded on the Zwift iOS app write to Apple Health. Zwift on other platforms doesn’t sync to Apple Health, and there’s no account-level export to it. For those rides, connect Zwift to Strava and use Sahha’s Strava integration.

Is the Zwift-to-Apple-Health path reliable?

It’s useful but has caveats: Zwift doesn’t officially document it, and it can double-count distance and calories. If you need dependable coverage of every ride, the Zwift → Strava → Sahha route is the more robust option.

Is the Zwift integration HIPAA and GDPR compliant?

Yes. Sahha is HIPAA and GDPR compliant and SOC 2 certified, and Zwift data flows through the same compliant pipeline as every other source.

More integrations

One API for every other source, too.

Add another wearable or app and the schema, webhooks, and scores are identical — no new pipeline to build.

Start streaming Zwift data today.

Connect once. Sahha handles consent, normalization, and real-time delivery — for Zwift and every other source.

Free for 30 days · No credit card

  • One API for Zwift and every other source
  • Real-time webhooks + on-demand REST, one normalized schema
  • Scores, archetypes & insights — no modeling required
  • HIPAA, GDPR & SOC 2 · your brand on the consent screen