Route and terrain research
Usa los endpoints de Strava para convertir route and terrain research en solicitudes API repetibles con inputs documentados y respuestas JSON.
Turn public Strava pages into structured fitness-activity data — a route index by sport, country, and region, one route's full detail (distance, elevation, map), a club's public profile, and the current public challenge gallery, all as normalized JSON. Credential-free.
Get Strava's public route index and route detail, club profiles, and the public challenge gallery as structured JSON.
Familias de endpoints
3
Parámetros documentados
10
Ejemplos
4
Snapshot en vivo del catálogo
Endpoints activos
4
Métodos
GET
Parámetros obligatorios
9
Referencias de esquema
4
{
"platform": "Strava",
"endpoint": "strava-routes",
"method": "GET",
"path": "/strava/routes",
"auth": "apiKey"
}Casos de uso
Get Strava's public route index and route detail, club profiles, and the public challenge gallery as structured JSON.
Usa los endpoints de Strava para convertir route and terrain research en solicitudes API repetibles con inputs documentados y respuestas JSON.
Usa los endpoints de Strava para convertir club and community tracking en solicitudes API repetibles con inputs documentados y respuestas JSON.
Usa los endpoints de Strava para convertir fitness-challenge and campaign monitoring en solicitudes API repetibles con inputs documentados y respuestas JSON.
Ejecución gestionada
Cada cifra de abajo se lee directamente del catálogo de endpoints en vivo de Strava — 4 endpoints, 10 parámetros de solicitud documentados y 4 esquemas de respuesta publicados — el mismo catálogo contra el que corren Docs y Playground.
4 documented Strava endpoints, grouped into 3 request families — Routes, Challenges and Clubs.
10 request parameters are documented across those Strava endpoints, 9 of them required — the full input contract is public before you write any integration code.
4 of the 4 Strava endpoints ship a recorded example response, and 4 carry a documented response schema — you can code against the real JSON before the first request.
Strava endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
4 hosted MCP tools back the Strava endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Mapa de cobertura
Estas tarjetas se generan a partir del catálogo de endpoints activo, así que la landing page refleja la misma superficie de API que usan Docs y Playground.
/strava/routes
/strava/challenges
/strava/clubs/{id}
Catálogo de endpoints
/strava/routesReturns a page of Strava's public route recommendations for a sport, country, and region (state, or state/city). `sport` values: `hiking`, `road-biking`, `mountain-biking`, `trail-running`, `gravel-biking`. Public data, sourced from Strava's own server-rendered route pages.
Notas de la respuesta
- Each result's `path` is usable directly as the `path` query parameter to [`/strava/routes/detail`](strava-route-detail.md). - An unsupported `sport` returns `400` before any upstream request is made. - A page number past the last valid page, or an unlisted region, returns `404` rather than an empty `200` list. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "hiking", "country": "usa", "region": "colorado", "title": "Top 318 hiking trails in Colorado", "page": 1, "total_pages": 16, "total_results": 318, "source_url": "https://www.strava.com/routes/hiking/usa/colorado", "routes": [ { "rank": 1, "name": "Mallory Cave via N.C.A.R. Trail", "path": "hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "url": "https://www.strava.com/routes/hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "difficulty": "Easy", "distance_raw": "1.46 mi", "elevation_gain_raw": "345 ft", "description": "The Mallory Cave hike takes you to the mouth of a beautiful cave...", "image_url": "https://dgtzuqphqg23d.cloudfront.net/8UruePMrrrQMdHGsELroGsOsTMWqh030g7159PMSue4-768x576.jpg" } ] } } ```
Herramienta MCP strava_routes
/strava/routes/detailReturns a single Strava route's detail: type, difficulty, distance, elevation gain, estimated time, and summary. `path` is the relative route path returned by `/strava/routes` results (e.g. `hiking/usa/colorado/boulder/mallory-cave_5171952737974445730`). Public data, sourced from Strava's own server-rendered route pages.
Notas de la respuesta
- `path` must start with a supported sport segment (`hiking`, `road-biking`, `mountain-biking`, `trail-running`, `gravel-biking`) and contain no path-traversal segments; otherwise `400` is returned before any upstream request is made. - A route that no longer exists returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "name": "Mallory Cave via N.C.A.R. Trail", "route_type": "Hiking Trail", "difficulty": "Easy", "distance_raw": "1.46 mi", "elevation_gain_raw": "345 ft", "estimated_time_raw": "33:48", "summary": "The Mallory Cave hike takes you to the mouth of a beautiful cave...", "path": "hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "url": "https://www.strava.com/routes/hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "source_url": "https://www.strava.com/routes/hiking/usa/colorado/boulder/mallory-cave_5171952737974445730" } } ```
Herramienta MCP strava_route_detail
/strava/clubs/{id}Returns a Strava club's public profile: name, verified/private flags, location, description, member count, and cover/avatar images. Only the base public profile is returned -- discussion, leaderboard, member list, and recent-activity data require a logged-in Strava session and are not available. Public data, sourced from Strava's own server-rendered club page.
Notas de la respuesta
- A club that doesn't exist, or `id` that isn't purely numeric, returns `400`/`404` respectively before or after the upstream request. - `private` reflects whether the club requires a join request to see full content; this endpoint still returns the public profile fields for private clubs. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "521703", "name": "Women of OZ NWA", "verified": false, "private": true, "location": "Bentonville, Arkansas", "country_code": "us", "description": "Founded in 2019 Women of OZ NWA is an inclusive, non-profit organization...", "member_count": 937, "cover_image_url": "https://dgalywyr863hv.cloudfront.net/pictures/clubs/521703/11986498/3/large.jpg", "avatar_image_url": "https://dgalywyr863hv.cloudfront.net/pictures/clubs/521703/11986503/2/large.jpg", "url": "https://www.strava.com/clubs/521703", "source_url": "https://www.strava.com/clubs/521703" } } ```
Herramienta MCP strava_club
/strava/challengesReturns Strava's public challenge gallery: the currently promoted challenge plus every gallery section (partner challenges, and one section per sport such as run/ride), each with its challenges' goal, duration, and cover art. Public data, sourced from Strava's own challenge gallery.
Notas de la respuesta
- `sections` is ordered with `partner` first, then the remaining sport categories alphabetically. - A challenge's `goal` is `null` for challenges measured by elapsed time rather than a fixed distance/duration target (e.g. "fastest mile ever"). Example response: ```json { "code": 200, "msg": "OK", "data": { "promoted_challenge": { "id": 6158, "name": "August Flexibility Challenge", "url": "https://www.strava.com/challenges/August-Flexibility-Challenge", "sponsored": false, "goal": 36000, "dimension": "moving_time", "icon": "yoga", "duration": "Aug 1, 2026 to Aug 31, 2026", "goal_description": "Complete 10 hours of yoga or workout activity this month." }, "sections": [ { "category": "partner", "title": "Partner Challenges", "challenges": [ { "id": 6156, "name": "Runna August Ten Days Active Challenge", "url": "https://www.strava.com/challenges/Runna-August-Ten-Days-Active-2026", "sponsored": true, "goal": 10, "dimension": "moving_time", "duration": "Aug 1, 2026 to Aug 31, 2026" } ] }, { "category": "run", "title": "Run Challenges", "challenges": [ { "id": 6162, "name": "August 10K Challenge", "url": "https://www.strava.com/challenges/August-10K-challenge-2026", "sponsored": false, "goal": 10000, "dimension": "avg_pace_min_distance", "duration": "Aug 1, 2026 to Aug 31, 2026", "goal_description": "Complete a 10 km (6.2 mi) run." } ] } ], "source_url": "https://www.strava.com/challenges" } } ```
Herramienta MCP strava_challenges
APIs relacionadas
Social & Creator Platforms
Build creator intelligence, video research, transcript, and audience-comment workflows without maintaining YouTube scrapers.
Social & Creator Platforms
Turn Twitch's public channel, stream, clip, and team data into structured JSON — live status and viewer counts, top games, clips, VODs, and team rosters — as normalized JSON. Credential-free.
Social & Creator Platforms
Track creator, content, hashtag, music, trend, and public ad creative signals from TikTok with production-ready API routes.
Cómo hacer scraping de Strava
Crawlora's Strava endpoints return route indexes, route detail, club profiles, and the challenge gallery as normalized JSON with one API key — no Strava account or auth token required.
/strava/routes requires sport, country and region, all three. sport must be one of hiking, road-biking, mountain-biking, trail-running or gravel-biking — note that plain "running" and "cycling" are not values, and an unsupported one returns a 400 naming the accepted list.
country and region are the slugs from Strava's own route-index URL path, and not every plausible pair exists — verified live, hiking in switzerland/bern returns a populated index while united-states/california returns a 404. Treat a 404 here as "Strava publishes no index for this combination" rather than an error in your call, and page through results with the page parameter.
Pass a route's path — the identifier from the index, not a bare numeric id — to /strava/routes/detail for distance, elevation and map data.
Pass a club id to /strava/clubs/{id} for that club's public profile.
/strava/challenges takes no parameters and returns Strava's current public challenge gallery, including the promoted challenge it is featuring.
Preguntas frecuentes
Call /strava/routes with all three of sport, country and region. sport must be one of hiking, road-biking, mountain-biking, trail-running or gravel-biking, and country and region are the slugs from Strava's own route-index URLs. You get a normalized route index back as structured JSON with no Strava account required.
Because Strava does not publish a route index for that country and region pair. The slugs must match pages Strava actually serves — verified live, hiking in switzerland/bern works while united-states/california 404s despite looking equally reasonable. A 404 is the honest signal that the combination does not exist upstream, not a fault in the request.
No Strava login or auth token is required from the caller — only your Crawlora API key.
Yes — /strava/clubs/{id} returns a club's public profile as structured JSON.