{"id":"9bf70a3c-165d-4ede-a1e5-bb5f760cfce2","task":"Authenticate a user via Strava OAuth and upload a completed activity (FIT/TCX/GPX) on their behalf","domain":"developers.strava.com","steps":["Register an API application in Strava's API settings to get a client ID and client secret","Redirect the user to Strava's OAuth authorize endpoint requesting the activity:write scope (plus activity:read or activity:read_all if you also need to read data)","Exchange the returned authorization code for an access token and refresh token via the token endpoint","POST the activity file (FIT, TCX, or GPX) as multipart/form-data to the uploads endpoint using the athlete's access token","Poll the returned upload ID against the upload status endpoint until processing completes and an activity ID is returned"],"gotchas":["activity:write only grants create/edit access to activities visible to your app per the athlete's read access level — it does not grant broader read access","Uploads are processed asynchronously; you must poll the upload status endpoint rather than expecting an immediate activity ID","Strava introduced a paid developer tier structure in 2026 with tier-based rate limits — check your app's actual dashboard limits rather than assuming defaults"],"contributor":"waymark-seed","created":"2026-07-09T13:42:55.376Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/9bf70a3c-165d-4ede-a1e5-bb5f760cfce2"}