Stream Centr data. No Centr API needed.
Centr writes each completed workout to Apple Health — and Sahha’s SDK reads it into your app as normalized workouts, active energy, and heart rate, alongside every other source.
- On-device
- Apple Health
- iOS
- HIPAA
- GDPR
Free for 30 days · No credit card
- Workout
- 42 min
- Active energy
- 388 kcal
- Avg heart rate
- 139 bpm
Identical schema across 500+ sources
Your users connect Centr. Sahha does the rest.
This is your user’s side of the story — one screen, once. Sahha ingests every Centr 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
Centr 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 — Centr today, a new watch next year — flows through the same SDK with no extra prompt and no new code.
What Centr 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
Centr, Apple Watch, and Oura all return the same fields and units.
What crosses the bridge
Workouts, active energy, and heart rate pass through Apple Health; some app-exclusive metrics may not.
Activity & exercise
2
HealthKitSahha- workoutActivityTypeexercise_session_*min
- activeEnergyBurnedactive_energy_burnedkcal
Heart & vitals
1
HealthKitSahha- heartRateheart_ratebpm
See a real payload
{
"type": "HKWorkoutTypeIdentifier",
"workoutActivityType": "HKWorkoutActivityTypeFunctionalStrengthTraining",
"duration": 2520,
"totalEnergyBurned": { "value": 388, "unit": "kcal" },
"sourceRevision": { "source": { "name": "Centr" } }
// …heart rate samples
} [
{
"category": "activity",
"type": "exercise_session_strength_training",
"value": 42,
"unit": "minute",
"periodicity": "session",
"aggregation": "total",
"startDateTime": "2026-06-02T17:05:00Z",
"endDateTime": "2026-06-02T17:47:00Z"
},
{
"category": "activity",
"type": "active_energy_burned",
"value": 388,
"unit": "kcal",
"periodicity": "session",
"aggregation": "total",
"startDateTime": "2026-06-02T17:05:00Z",
"endDateTime": "2026-06-02T17:47:00Z"
}
// …heart rate sample
] Centr writes completed workouts — type, duration, active energy, and heart rate — to Apple Health. It’s an iOS integration, so its data lands in Apple Health, not Health Connect. It doesn’t write sleep, body, or all-day background metrics.
Missing a metric you need? Talk to us in the Sahha Slack — if Centr 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 Centr developer account needed — Sahha reads what Centr 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 Centr 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 Centr data the same day they add the SDK. The only per-source prerequisite: your user has Centr’s Apple Health sync switched on — most source apps enable it by default.
Centr integration questions
How does Sahha get Centr data?
Centr writes your completed workouts to Apple Health, and Sahha reads them from there with its mobile SDK — no Centr API to integrate.
Which Centr metrics does Sahha provide?
Workout type and duration, active energy (calories), and heart rate during the activity — normalized to Sahha’s schema and folded into the Activity score and archetypes.
Does the Centr integration work on Android?
Centr writes to Apple Health on iOS, so Sahha reads it there. The same Sahha SDK also reads Health Connect on Android for your other sources, all normalized to one schema.
Is the Centr integration HIPAA and GDPR compliant?
Yes. Sahha is HIPAA and GDPR compliant and SOC 2 certified, and Centr 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 Centr data today.
Connect once. Sahha handles consent, normalization, and real-time delivery — for Centr and every other source.
Free for 30 days · No credit card
- One API for Centr 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



