Features Integrations AI & API Pricing Blog Docs
Overview WHOOP Withings Apple Health REST API AI & Claude MCP Server

Connect WHOOP

Authorize VitalTrends to read your WHOOP data in a few clicks. Once connected, recovery, sleep, strain, and HRV sync automatically in the background.

What syncs: Recovery score, HRV, resting heart rate, sleep performance, sleep stages, daily strain, workout strain, and cycle data. On first connect, VitalTrends imports up to 6 months of history, and attempts to fetch as far back as your WHOOP account allows.

Steps

1
Subscribe to VitalTrends

An active subscription is required to connect integrations. Go to Pricing to get started.

2
Open the Connections page

After logging in, go to Settings → Connections. You will see a WHOOP card showing "Not connected".

3
Click "Connect WHOOP"

You will be redirected to WHOOP's OAuth authorization page. Log in with your WHOOP credentials if prompted.

4
Authorize access

Review the permissions and click Authorize. VitalTrends requests read-only access to your health data, nothing is written back to WHOOP.

5
Initial sync runs automatically

After authorization, a background job imports up to 6 months of historical data, and attempts to pull as far back as your WHOOP account allows. This may take a minute or two. Refresh the dashboard once the sync banner clears.


How data stays fresh

VitalTrends uses two mechanisms to keep your WHOOP data current:

Webhooks (real-time)

WHOOP sends a push notification whenever a new cycle, sleep, workout, or recovery is recorded. VitalTrends processes these events immediately, so your dashboard typically updates within seconds of WHOOP finalizing a metric.

Catch-up sync (background)

Every 6 hours, VitalTrends checks whether your data is stale (no new records in 36 hours). If so, it fetches the last 48 hours from the WHOOP API as a safety net. Users with working webhooks cost zero extra API calls.


Disconnecting WHOOP

Go to Settings → Connections and click Disconnect next to WHOOP. This revokes the OAuth token and stops all future syncs. Your historical data remains in VitalTrends unless you delete your account.


Force sync

Force sync re-imports the last 6 months of your WHOOP data from scratch, replacing any incomplete or outdated records. You can trigger it from Settings → Connections by clicking the Force Sync button on the WHOOP card.

Use force sync when:

Note: Force sync queues a background job and may take a minute or two to complete. Running it multiple times in quick succession has no additional effect, since each run overwrites the same date range.

Troubleshooting

Dashboard shows no data after connecting

The initial sync is still running. Wait 1-2 minutes and refresh. If data still does not appear, disconnect and reconnect to trigger a fresh sync.

Data is a few hours behind

WHOOP finalizes recovery and sleep scores on their own schedule, often 1-2 hours after you wake up. VitalTrends displays data as soon as WHOOP publishes it.

Connection shows "Reconnection needed"

Your OAuth token has expired or was revoked. Click Reconnect on the Connections page to re-authorize.