All integrations
Available in v0.1.0

intervals.icu data, in your own stack.

Users connect their intervals.icu account over OAuth. Open Health Sync pulls their activities and daily wellness on a schedule and when intervals.icu sends a webhook, keeping the device each activity came from.

Source
Training platform
How the data arrives
Cloud API v1, OAuth 2.0, scheduled pulls and webhooks for activities and wellness.

What it collects.

Each record maps to the same model as every other source, with the provider, source and device it came from.

  • Activities as workouts, keeping their upstream source (Garmin, Wahoo, Zwift, Coros, Suunto, Polar, uploads)
  • Weight and body fat
  • Resting heart rate
  • HRV (RMSSD and SDNN)
  • Sleep score
  • Steps
  • SpO2 and respiration
  • VO2 max
  • Blood pressure

How it works.

  1. 01

    The user connects

    Your server asks for a consent URL and sends the user to intervals.icu. Tokens are stored encrypted.

  2. 02

    The server pulls

    A first backfill, then scheduled pulls, and webhooks where the provider sends them. Every raw payload is kept.

  3. 03

    You read one model

    Units, time zones and duplicates handled, served over REST, the read-only MCP server and FHIR R4.

Before you start.

  • Apply for an OAuth app at intervals.icu; its developer approves it.
  • There are no refresh tokens: a revoked token means the user connects again.
  • Activities synced from Strava aren't available through the API.

Set it up.

Register your own intervals.icu app, set its callback to <OHS_PUBLIC_URL>/oauth/intervals_icu/callback and put its credentials in .env. The guide has every step.

Terminal
# .envOHS_INTERVALS_ICU_CLIENT_ID=...OHS_INTERVALS_ICU_CLIENT_SECRET=...OHS_INTERVALS_ICU_WEBHOOK_SECRET=...# Ask for a consent URL, then send the user to authorize_urlcurl -s -X POST $OHS/v1/users/$USER_ID/connections/intervals_icu \  -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \  -d '{"redirect_uri":"https://app.example.org/connected"}'# Read what came incurl -s "$OHS/v1/users/$USER_ID/workouts" -H "Authorization: Bearer $KEY"

Questions.

Can I use intervals.icu with Open Health Sync today?

Yes. The intervals.icu connector ships in v0.1.0.

Do I need anything from intervals.icu?

Apply for an OAuth app at intervals.icu; its developer approves it.

Where does the data go?

Only to the server you run. Open Health Sync is self-hosted software, not a service: no account with us and no call home. Each user can be deleted with one call, raw files included.