Wearable Health Data Platform

All your health data.
One unified API.

MTH Health connects wearables and sensors from Fitbit, Garmin, WHOOP, Polar, and Dexcom, and now adds nutrition journaling with AI meal-photo scanning, manual food logging, and dedicated water or coffee tracking in the same normalized data layer.

Wearables & Sensors

Fitbit
Garmin
WHOOP
Polar
Dexcom CGM
Strava
Withings
Oura
Libre CGM

MTH Health

Unified API
OAuth + Token Mgmt
Normalize + Score + Journal
Background Sync

Your apps

Web dashboards
Mobile apps
Coaching tools

How it works

1

Connect providers

Enable Fitbit, Garmin, WHOOP, Polar, or Dexcom for your application through the admin portal. Each provider uses secure OAuth to authorize data access. Toggle providers on and off without code changes.

2

Users link their devices

Your end users authenticate with their wearable accounts through a simple redirect flow. MTH Health handles the token exchange, encrypted storage, and automatic refresh behind the scenes.

3

Consume unified data

Access sleep stages, activity metrics, heart rate, recovery scores, glucose readings, nutrition journals, and more through a single normalized REST API. One schema, one set of endpoints — regardless of which device, sensor, or nutrition input the data came from.

4

Turn raw inputs into useful insights

The built-in scoring engine converts wearable data into easy-to-understand health scores, while the nutrition journal lets users log meals manually or scan a food photo and capture portions, nutrients, water, and coffee in a structured timeline.

Unified data types

Every data type follows the same schema regardless of which wearable or sensor it came from.

Sleep

Total duration, stages (deep, light, REM, awake), sleep efficiency, time in bed, and sleep score.

Activity

Steps, calories burned, active minutes, distance, floors climbed, and strain score.

Heart Rate

Resting heart rate, heart rate variability, intraday heart rate zones, and max HR.

Recovery

Recovery score, stress levels, body battery, readiness indicators, and respiratory rate.

Glucose (CGM)

Continuous glucose readings, daily averages, time in range, highs and lows from sensors like Dexcom.

Health Scores

Composite health scores computed from sleep, activity, and recovery data across all connected devices.

Historical data

Full daily history for all data types. Track trends, compare periods, and build longitudinal health views.

Nutrition journal

Log meals and drinks manually, scan meal photos with AI, and record dedicated water or coffee entries with portions and nutrient totals.

Nutrition journaling built in

Let users capture food in the way that matches their day: snap a meal photo, add a meal manually, or log water and coffee as dedicated entry types.

AI food scanner

Upload a meal photo and let AI estimate food items, portions, and nutrient totals. The scan runs asynchronously and returns a structured journal entry you can fetch later.

Manual meal and drink logging

Users can create meals without a photo, correct portions, add missing foods, or log generic drinks when they need more control than the scanner provides.

Dedicated water and coffee types

Water and coffee are first-class journal entry kinds, so they can be tracked separately from generic drinks in timelines, analytics, and coaching workflows.

Date-based journal retrieval

Fetch all entries for a day, drill into one detailed meal, and keep the nutrition timeline aligned with the same user-scoped auth model as wearable data and scores.

POST /api/v1/users/{userId}/journal-entries/scans
curl -X POST \
  https://health-api.movetohappiness.com/api/v1/users/{userId}/journal-entries/scans \
  -H "Authorization: Bearer USER_TOKEN" \
  -F "image=@lunch.jpg" \
  -F "entryKind=Meal" \
  -F "consumedAtUtc=2026-03-18T12:15:00Z"
GET /api/v1/users/{userId}/journal-entries?date=2026-03-18
[
  {
    "entryKind": "Water",
    "title": "Water",
    "journalDate": "2026-03-18",
    "nutrients": { "volumeMl": 500 }
  },
  {
    "entryKind": "Coffee",
    "title": "Coffee",
    "nutrients": { "caffeineMg": 95, "volumeMl": 240 }
  }
]

Built for production

Multi-provider support

Fitbit, Garmin, WHOOP, Polar, and Dexcom CGM today — with more coming. One integration covers all devices and sensors your users rely on. Add or remove providers from the admin portal without touching code.

Normalized data model

Sleep stages, activity metrics, heart rate, recovery scores, glucose readings, and nutrition all follow the same schema regardless of provider. No more writing provider-specific parsing logic.

Health scoring engine

Built-in scoring algorithms turn raw wearable data into actionable health scores. Combine data from multiple devices into a single, easy-to-understand number your users can act on.

Tenant isolation

Your data is fully isolated within your own tenant. Manage your applications, API keys, and user roles from a dedicated admin portal with role-based access control.

Automatic background sync

A background worker continuously polls provider APIs to keep user data fresh. Data arrives automatically — no cron jobs, webhooks, or manual triggers needed on your side.

Secure by design

OAuth tokens are encrypted at rest. API keys are scoped per application. Admin access uses passwordless OTP authentication. All communication over HTTPS.

Supported providers

Connect the wearable platforms and health sensors your users already rely on.

Wearables

OAuth 2.0
FitbitSleep, Activity, Heart Rate, SpO2
OAuth 1.0a
GarminSleep, Activity, Heart Rate, Stress, Body Battery
OAuth 2.0
WHOOPSleep, Recovery, Strain, Heart Rate, HRV
OAuth 2.0
PolarSleep, Activity, Heart Rate, Training Load

Coming soon

Coming soon
StravaActivities, Routes, Heart Rate, Power
Coming soon
WithingsSleep, Activity, Weight, Blood Pressure, SpO2
Coming soon
OuraSleep, Readiness, Activity, Heart Rate, HRV

Glucose Sensors (CGM)

OAuth 2.0
DexcomReal-time Glucose, Daily Averages, Time in Range, Events
Coming soon
FreeStyle LibreGlucose Readings, Daily Patterns, Time in Range

Simple, clean API

One endpoint to fetch sleep data — same response format regardless of the wearable.

GET /api/v1/users/{userId}/sleep?date=2026-03-15
{
  "date": "2026-03-15",
  "provider": "fitbit",
  "totalMinutes": 462,
  "efficiency": 91,
  "stages": {
    "deep": 84,
    "light": 210,
    "rem": 108,
    "awake": 60
  },
  "score": 82,
  "heartRate": {
    "restingBpm": 58,
    "hrvMs": 42
  }
}

Ready to integrate health data?

Get started through the admin portal. Set up your tenant, enable providers, and start building.

MTH Health — Move to Happiness