Integrations

Connect your watches, bands, and apps. TrainStack syncs from Apple Health today, with 16 more providers on the roadmap.

TrainStack is designed to connect to every device and service you use. Today, Apple Health is the live sync path -- every workout, heart rate sample, sleep session, and health metric from your Apple Watch and iPhone flows into TrainStack automatically. More providers are coming.

Multi-source architecture

The data model is built for multi-source from day one. Every activity stores its source, original provider type, and raw data. When additional providers come online, deduplication and source priorities will handle conflicts automatically -- no migration needed.

Live

Apple Health

The primary sync path for iPhone and Apple Watch users. Reads activities, heart rate, sleep, HRV, and daily metrics via HealthKit. Background sync keeps data up to date automatically.

ActivitiesHeart RateSleepHRVSteps

Coming Soon

These integrations are on the roadmap. The data model already supports them -- each provider needs an OAuth flow, API adapter, and field mapping.

Garmin

Sync activities, sleep, body metrics, and training status from Garmin watches and the Garmin Connect ecosystem.

ActivitiesSleepBody BatteryTraining Load

Strava

Import activities with GPS, power, and segment data. TrainStack can serve as your data layer while you keep using Strava socially.

ActivitiesGPSSegmentsPower

Whoop

Recovery scores, strain, sleep staging, and HRV from WHOOP bands. Daily coaching data syncs automatically.

RecoveryStrainSleepHRV

Oura

Sleep analysis, readiness scores, daily activity, and HRV from Oura Ring. Detailed sleep staging included.

SleepReadinessHRVActivity

Polar

Sync training sessions, recovery data, and sleep tracking from Polar watches and sensors.

ActivitiesSleepRecoveryRunning Power

COROS

Activities, training load, and performance metrics from COROS watches.

ActivitiesTraining LoadEvoLab

Suunto

Outdoor activities with detailed GPS and sensor data from Suunto watches.

ActivitiesGPSHeart Rate

Fitbit

Activities, sleep, heart rate, and daily metrics from Fitbit devices and the Fitbit app.

ActivitiesSleepHeart RateSteps

Samsung Health

Sync activities and health data from Samsung Galaxy watches and Samsung Health.

ActivitiesSleepHeart Rate

Google Health Connect

Android's unified health data layer. Aggregates data from multiple Android health and fitness apps.

ActivitiesHeart RateSleepSteps

Zwift

Indoor cycling and running activities with power, cadence, and virtual course data from Zwift.

Indoor CyclingIndoor RunningPower

TrainingPeaks

Structured workouts, planned training, and completed activities with TSS, IF, and performance metrics.

Planned WorkoutsActivitiesTSSCoaching

TrainerRoad

Structured indoor cycling workouts with power-based intervals and adaptive training plans.

Indoor CyclingPowerStructured Workouts

Peloton

Cycling, running, strength, and yoga classes with detailed per-class metrics.

ClassesCyclingStrengthHeart Rate

Adidas Running

Running activities from the Adidas Running (formerly Runtastic) app.

RunningGPS

Komoot

Outdoor tours with detailed routing, surface types, and elevation data.

ToursGPSRouting

How Multi-Source Sync Will Work

The multi-source sync engine is designed and the schema supports it today. When additional providers come online, here's how it will work.

Deduplication

Activities will be matched on start time (+/- 2 minutes), activity type, and duration (+/- 10%). When a match is found, both records are linked rather than creating a duplicate.

Source Priorities

You'll configure a priority order for your connected providers. For example:

  1. Apple Health -- direct device data, highest fidelity
  2. Garmin -- native sensor data
  3. Strava -- re-processed, may lose detail

The higher-priority source becomes the primary display record. Lower-priority versions are preserved and accessible -- you can switch primary source at any time.

Keep the Richer Record

When priorities are equal, TrainStack will prefer the source with more data: more populated fields, more time-series samples, more statistics. The raw data from every source is always preserved.

Lossless data preservation

The raw response from each provider is stored verbatim and never modified after ingest. TrainStack normalizes it into a consistent format for display (same units, same field names), but the original is always there.

On this page