SparkyFitness connects to 8+ health platforms and devices to automatically pull your activity, workouts, sleep, and body metrics into your diary. OAuth-based services use standard authorization flows managed from Settings → External Data Sources, while mobile platforms sync through the native iOS and Android apps. You can also push data from any automation tool using the openDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CodeWithCJ/SparkyFitness/llms.txt
Use this file to discover all available pages before exploring further.
/api/health-data REST endpoint.
Supported Integrations at a Glance
Garmin Connect
Steps, activities, sleep, heart rate, HRV, stress, nutrition, weight, and more via a dedicated microservice.
Fitbit
Steps, activities, sleep stages, weight, and body fat via the Fitbit Web API (deprecated September 2026).
Google Health
Activity, health metrics, sleep, and workouts via the Google Health API — the recommended Fitbit replacement.
Withings
Weight, body composition, blood pressure, heart rate, and sleep via Withings Health API.
Polar Flow
Workouts, weight, height, steps, and active calories via Polar AccessLink. (Partially tested)
Strava
Activities and workouts (distance, duration, calories, heart rate) plus athlete weight.
Hevy
Strength workouts with full set/rep/weight data from the Hevy app.
Apple Health (iOS)
Health and activity data via the SparkyFitness iOS app.
Health API Integrations (OAuth-based)
All OAuth integrations follow the same pattern: navigate to Settings → External Data Sources, find the provider, enter your credentials, and click Connect to begin the OAuth authorization flow. Once connected, you can trigger a manual sync or let the scheduled sync run automatically.Garmin Connect
Garmin is the most comprehensive integration, pulling data across three sync phases:| Phase | Data Synced |
|---|---|
| Health & Wellness | Steps, resting heart rate, HRV, stress level, respiration rate, blood pressure, weight, body fat, muscle mass, bone mass, body water, sleep duration, hydration |
| Activities & Workouts | All Garmin activities with sport type, duration, calories, distance, GPS, and lap data |
| Nutrition Diary | Calorie and macro totals logged in Garmin Connect |
Garmin sync runs as a separate microservice container (
garmin-connect-service). You must enable this container in your deployment for Garmin to work. If the microservice is not running, all Garmin sync requests will fail with a connection error.Fitbit
| Data | Details |
|---|---|
| Steps | Daily step count |
| Activities | Exercise name, duration, calories, distance, average heart rate |
| Sleep | Sessions with deep, light, REM, and awake stage breakdown; efficiency score |
| Weight | Body weight (kg) |
| Body Fat | Body fat percentage |
Google Health
Google Health is the recommended long-term replacement for Fitbit and supports any device that syncs to Google Health Connect (Fitbit, Wear OS, Pixel Watch, and others).| Category | Data Synced |
|---|---|
| Activity | Steps, active zone minutes (fat burn / cardio / peak), activity minutes, distance, floors |
| Health Metrics | Resting heart rate, HRV, SpO2, respiratory rate, skin temperature, body fat %, VO2 Max, daily calories, weight |
| Sleep | Sessions with light, deep, REM, and awake stage breakdown |
| Exercise | Workouts logged in Google Health with duration and calories |
Create a Google Cloud project
Go to console.cloud.google.com and create a new project (or select an existing one).
Enable the Google Health API
Navigate to APIs & Services → Library, search for Google Health API, and click Enable.
Configure the OAuth consent screen
Go to APIs & Services → OAuth consent screen. Set User Type to External, fill in the required fields, and add all six required scopes (see below). Add your Google account as a test user, then Publish the app to prevent token revocation after 7 days.
Create OAuth 2.0 credentials
Go to APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID. Set Application Type to Web application. Set the Authorized Redirect URI to the Callback URL shown in SparkyFitness under Settings → External Data Sources → Google Health → edit icon.
The Google Health API limits session-based queries to approximately 30 days. SparkyFitness automatically splits longer date ranges into 30-day chunks, so a full year import works — it just takes a bit longer.
Withings
| Data | Details |
|---|---|
| Body Measurements | Weight, BMI, body fat %, muscle mass, bone mass, hydration, visceral fat |
| Cardiovascular | Systolic and diastolic blood pressure, heart rate |
| Sleep | Total sleep duration, sleep score, deep / light / REM / awake stages |
Polar Flow
| Data | Details |
|---|---|
| Workouts | Cardio training sessions with duration, calories, and sport type |
| Physical Info | Weight and height from your Polar profile |
| Daily Activity | Steps, active calories, and total calories as custom measurements |
Strava
| Data | Details |
|---|---|
| Activities | Activity name, sport type, distance (km), moving time, calories, average heart rate, elevation gain |
| Athlete Weight | Body weight from your Strava athlete profile |
Strava integration is partially tested. If you encounter unexpected data, please share anonymized mock data with the community on Discord.
Hevy
Hevy uses an API Key (not OAuth) to authenticate. The integration syncs your full strength-training history, including every workout, exercise, set, rep count, and weight.| Data | Details |
|---|---|
| Workouts | Workout title, date, and total duration |
| Exercises | Exercise name, sets with weight (kg), reps, set type (working, warm-up, drop set, failure) |
Mobile Health Apps
Apple Health (iOS)
The SparkyFitness iOS app integrates with Apple Health to read health and activity data directly from your iPhone and Apple Watch. Data flows automatically when the app is installed and Health permissions are granted — no API credentials are required.Google Health Connect (Android)
The SparkyFitness Android app integrates with Google Health Connect to read steps, activity, and health measurements from compatible Android devices. Grant the necessary Health Connect permissions inside the app to begin syncing.Custom Integration: POST /api/health-data
Any automation tool — iOS Shortcuts, Android Tasker, Zapier, or your own scripts — can push health data to SparkyFitness using the health data REST endpoint.Authentication
Generate a personal API key in Settings → Profile → Personal API Key, then include it in every request using one of these headers:Endpoint
Supported Data Types
type value | What it logs | value format |
|---|---|---|
weight | Body weight | Number in kg |
steps or step | Daily step count | Integer |
water | Water intake | Integer in ml |
Active Calories | Active calories burned | Number in kcal |
body_fat or body_fat_percentage | Body fat percentage | Number (%) |
height | Body height | Number in cm |
| (any other string) | Custom measurement | Number or string |