Stream Garmin data. Zero pipeline code.
Connect a user’s Garmin account and bring their sleep, heart rate, HRV, SpO₂, and activity straight into your app — through the same Sahha API that standardizes Apple Health, Oura, and every other source.
- Automatic updates
- Backfill
- HIPAA
- GDPR
- SOC 2
Free for 30 days · No credit card
- HRV
- 46 ms
- Resting heart rate
- 52 bpm
- Steps
- 11,908
Identical schema across 500+ sources
Your users connect Garmin. Sahha does the rest.
This is your user’s side of the story — one screen, once. Sahha ingests every Garmin signal, normalizes, deduplicates, and delivers it to your service — raw, or as refined intelligence your product can act on.
A Allow "your app"
Your brand on the consent screen
You register your own Garmin app, so users authorize your product — not a third party they’ve never heard of.
Your own rate limits
Your Garmin quota is yours alone — never shared with, or throttled by, another customer’s traffic.
Everything Garmin measures — in one schema.
Works with
FenixForerunnerVenuvívoactiveInstinctIndex scaleTyped & unit-consistent
Seconds become minutes, grams become kilograms, and every value carries its own type and unit.
Real-time & backfilled
Garmin pushes each summary to Sahha as it uploads, with history backfilled on connect.
One schema, every source
Garmin, Oura, and Apple Health all return the same fields and units.
Sleep
5
- deepSleepDurationInSecondssleep_stage_deepmin
- lightSleepDurationInSecondssleep_stage_lightmin
- remSleepInSecondssleep_stage_remmin
- awakeDurationInSecondssleep_stage_awakemin
- durationInSecondssleep_durationmin
Heart & vitals
6
- averageHeartRateInBeatsPerMinuteheart_ratebpm
- restingHeartRateInBeatsPerMinuteresting_heart_ratebpm
- hrvSummary.lastNightAvgheart_rate_variability_rmssdms
- timeOffsetSpo2Valuesoxygen_saturation%
- timeOffsetEpochToBreathsrespiratory_ratebr/min
- vo2Maxvo2_maxml/kg/min
Activity & exercise
5
- stepsstepscount
- distanceInMetersdistance_walkingm
- activeKilocaloriesactive_energy_burnedkcal
- floorsClimbedfloors_climbedcount
- activityTypeexercise_session_*min
Body
4
- weightInGramsweightkg
- bodyFatInPercentbody_fat%
- bodyMassIndexbody_mass_index
- muscleMassInGramslean_masskg
See a real payload
{
"calendarDate": "2026-06-02",
"durationInSeconds": 27000,
"deepSleepDurationInSeconds": 5400,
"lightSleepDurationInSeconds": 14400,
"remSleepInSeconds": 6300,
"awakeDurationInSeconds": 900
// …heart rate, SpO2 & body-composition summaries
} [
{
"category": "sleep",
"type": "sleep_stage_deep",
"value": 90,
"unit": "minute",
"periodicity": "daily",
"aggregation": "total",
"startDateTime": "2026-06-02T22:48:00Z",
"endDateTime": "2026-06-03T06:18:00Z"
},
{
"category": "sleep",
"type": "sleep_stage_rem",
"value": 105,
"unit": "minute",
"periodicity": "daily",
"aggregation": "total",
"startDateTime": "2026-06-02T22:48:00Z",
"endDateTime": "2026-06-03T06:18:00Z"
}
// …6 more normalized logs
] Garmin delivers HRV as an overnight RMSSD average and SpO₂ and respiration as time-offset series; Sahha reduces each to a normalized daily biomarker. Backfill depth depends on the user’s Garmin history.
Missing a metric you need? Talk to us in the Sahha Slack — if Garmin 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.
Building on Garmin’s Health API yourself? Here’s the to-do list.
Everything on the left is yours to write, test, and maintain. Everything on the right, Sahha already did.
- Integrate Garmin.
- Then Oura, from scratch.
- Then Whoop, from scratch.
One integration covers every source.
- Get Health API access.
- Write the OAuth flow.
- Store and refresh the tokens.
A hosted link — tokens stored and refreshed for you.
- Handle summary push pings.
- Reconcile nine summary types.
- Backfill the history.
Every summary pushed the moment it uploads — history included.
- Convert seconds to minutes.
- Convert grams to kilograms.
- Flatten the offset maps.
Clean, typed, one schema — out of the box.
- Build a sleep model.
- Build a readiness model.
- Hire a data scientist.
Scores, archetypes, and insights — built in.
- Garmin revises the Health API.
- You find out in production.
We version the pipeline. You never notice.
One thing stays yours: your own Garmin Health API app — so your brand is on the consent screen and your rate limits are your own. Sahha runs the rest.
Live in an afternoon, not a sprint.
- App nameGarmin · ProductionClient IDgarmin_a1b2c3•••Client secret••••••••••••••••01
Register your Garmin app
Request Garmin Health API access and create a developer app, then copy your consumer key and secret. This is what puts your brand on the consent screen and keeps your rate limits your own.
- Integrations
GarminCredentials added · Enabled02Add your credentials to Sahha
Paste the consumer key and secret into the Sahha dashboard and enable Garmin. That’s the last thing you build.
- 03
Your users connect their watch
Send users through a hosted consent screen — branded as your app. They approve, and Sahha runs the OAuth handshake and stores and refreshes the tokens.
- Your app LIVESleep7h 12mReadiness82Heart rate62 bpm04
Data lands in your app
Sahha backfills history, normalizes every summary to one schema, and pushes each new Garmin upload by webhook. You read biomarkers and scores by webhook or API.
Garmin Health API access requires approval from Garmin — plan for that step when you scope the work.
Garmin integration questions
Does Garmin work with Apple Health?
No — Garmin does not write to Apple Health. Sahha connects to Garmin through the Garmin Health API (a cloud connection), so you get Garmin data on iOS and Android alike, without depending on Apple Health.
Do I need my own Garmin developer account?
Yes. You request Garmin Health API access and register your own app, then add the credentials to Sahha. This keeps your brand on the consent screen and your rate limits separate from every other customer. Sahha runs the pipeline after that.
Which Garmin metrics does Sahha provide?
Sleep stages, heart rate, resting heart rate, HRV, blood oxygen, respiration, VO₂ max, steps, distance, calories, floors, workouts, and body composition — all normalized to Sahha’s schema, plus Sleep, Readiness, and Activity scores and archetypes.
How is Garmin data delivered?
In near real time. Garmin pushes each summary to Sahha as the device uploads it, and Sahha forwards it to your app by webhook. History is backfilled when a user first connects.
Is the Garmin integration HIPAA and GDPR compliant?
Yes. Sahha is HIPAA and GDPR compliant and SOC 2 certified, and Garmin 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 Garmin data today.
Connect once. Sahha handles consent, normalization, and real-time delivery — for Garmin and every other source.
Free for 30 days · No credit card
- One API for Garmin 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



