/docs · Vetta Trainer
Strava integration
Vetta reads your Strava to sync activities, compute VDOT and CTL, and build your week. Here's what we import, what we DON'T, and how we handle your data.
How it connects
On signup, you click "Connect Strava" and authorize via OAuth 2.0. Strava returns an access_token + refresh_token we store encrypted.
Scopes requested: read + activity:read_all. We do NOT request write — Vetta posts nothing to your Strava.
What we import
Per activity: date, sport, sub_sport, distance, duration, pace, avg/max HR, elevation gain, cadence, power (if available), calories, training_load (if Strava provides it).
We do NOT import: your name, photos, comments, kudos, social data. Only training data.
Initial sync
On connect, we do a full sync: up to 5000 historical activities (~5-10 years). Takes 30-90 seconds depending on volume.
Free: sync is capped to the last 30 days (Pro differential). Pro/Coach: full history.
Incremental sync + webhook
Strava sends us a webhook every time you upload a new activity. Vetta processes it in background in under 30 seconds.
As a backup, we run a scheduled sync every 6 hours in case the webhook drops.
Privacy
Your data lives in a private Railway Volume (not a public S3 bucket). Only you can access your own parquet.
GDPR/CCPA: you can export everything (GET /api/v1/export-all-data) or delete your account from Settings — this wipes activities, profile, Strava tokens, the lot.
If something fails
If sync breaks, you'll see it in /onboarding → Strava section with the specific error (expired token, rate limit, etc).
"Sync now" button available to force a retry.