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
- Distance
- 28.4 km
- Active energy
- 596 kcal
- Avg heart rate
- 145 bpm
Identical schema across 500+ sources
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.
A Allow "your app"
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.
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
HealthKitSahha- workoutActivityTypeexercise_session_cyclingmin
- distanceCyclingdistance_cyclingm
- activeEnergyBurnedactive_energy_burnedkcal
Heart & vitals
1
HealthKitSahha- heartRateheart_ratebpm
See a real payload
{
"type": "HKWorkoutTypeIdentifier",
"workoutActivityType": "HKWorkoutActivityTypeCycling",
"duration": 3300,
"totalDistance": { "value": 28.4, "unit": "km" },
"totalEnergyBurned": { "value": 596, "unit": "kcal" },
"sourceRevision": { "source": { "name": "Zwift" } }
// …heart rate samples
} [
{
"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.
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.
- Integrate Apple Health.
- Handle iOS version differences.
- Add Health Connect separately for Android.
One SDK covers Apple Health, Health Connect, and every cloud source.
- Write the HealthKit queries.
- Request the right permissions.
- Wire up background delivery.
The SDK handles queries, permissions, and background sync.
- Dedupe apps writing the same metric.
- Map dozens of HealthKit types.
- Reconcile against your Android sources.
Deduped, typed, one schema — one stream per user.
- Build a sleep model.
- Build an activity model.
- Hire a data scientist.
Scores, archetypes, and insights — built in.
- Apple changes a HealthKit API.
- You find out in production.
We version the SDK. You never notice.
No Zwift developer account needed — Sahha reads what Zwift already writes to Apple Health on iOS.
Live in an afternoon, not a sprint.
- # Add the Sahha SDKnpm install sahha-react-native01
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.
- 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.
- Your app LIVESleep7h 12mReadiness82Heart rate62 bpm03
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.
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.
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



