Tony Wang7 min de lecturaCómo hacer scraping de Strava en 2026 (API y Python)
Strava tiene una API OAuth oficial pero prohíbe el scraping en sus términos. Qué es público (rutas, clubes, challenges) y cómo obtenerlo.
Strava no es una plataforma donde puedas escabullirte de las reglas sin que se note — opera una API OAuth 2.0 documentada en developers.strava.com, y sus Términos de Servicio prohíben por separado y de forma explícita el "screen scraping" y los "crawlers" contra el propio sitio web. A mediados de 2026, antes de una solicitud confidencial de salida a bolsa, Strava endureció aún más ambas cosas: añadió una tarifa fija para desarrolladores, dio de baja varios endpoints de la API y puso tras un login datos que antes eran visibles para cualquiera. Esta guía cubre el alcance y los límites reales de la API oficial, por qué el scraping por tu cuenta es mala idea aquí, y cómo una API estructurada puede devolver datos públicos de rutas, clubes y challenges — nunca las actividades privadas ni el historial de ubicación de un atleta concreto.
¿Por qué scrapear datos de Strava?
- Investigación de rutas y senderos — mostrar las rutas de senderismo, running y ciclismo más populares de una región para una app de fitness, una guía o un sitio de equipo outdoor.
- Analítica de clubes y comunidad — seguir el tamaño, crecimiento y ubicación de los clubes para descubrir clubes de running/ciclismo o para investigación de patrocinios.
- Seguimiento de challenges y eventos — monitorear la galería pública actual de challenges de Strava para detectar tendencias estacionales de marketing de fitness.
- Investigación de mercado de apps de fitness — comparar cómo se ven apps y clubes competidores en un deporte o región concreta.
- Pipelines de IA/LLM — alimentar resúmenes públicos de rutas y clubes a agentes que responden consultas del tipo "mejores rutas de senderismo cerca de X".
¿Es legal scrapear Strava?
Opción 1: la API oficial de Strava (y sus límites)
La API oficial de Strava v3 se basa en OAuth 2.0: tu app redirige a un atleta a la pantalla de consentimiento de Strava, y Strava emite un token limitado a ese atleta. Los datos de segmentos y rutas históricamente eran visibles para cualquier app autenticada, pero Strava lo ha ido restringiendo poco a poco:
- Alcance por atleta. Sin la autorización OAuth de un atleta concreto, solo puedes obtener datos sobre ti mismo (útil para pruebas). Obtener datos de otros usuarios requiere que cada uno de ellos autorice tu app individualmente.
- Rate limits. Las apps nuevas empiezan en "modo single-player" con aproximadamente 200 requests/15 minutos y 2.000/día; superar los 10 atletas conectados requiere una revisión de la app, después de la cual los límites suben a alrededor de 400/15 minutos y 4.000/día.
- Deprecaciones en 2026. Según el changelog oficial, los endpoints Club Activities, Club Members y Club Admins se eliminan el 1 de septiembre de 2026, y el endpoint Explore Segments queda restringido ese mismo día a un "Extended Access Tier" aprobado. Una nueva URL base de la API (
api-v3.strava.com) reemplaza a la anterior a partir del 4 de enero de 2027. - Nueva tarifa para desarrolladores. Como parte de esos mismos cambios de junio de 2026, Strava introdujo una tarifa mensual fija para el acceso a la API (reportada en torno a $11.99/mes), que reemplaza al programa escalonado que antes era gratuito.
- Sin entrenamiento de IA, sin exportación masiva, sin volver a mostrar datos de otros usuarios. Estas restricciones se añadieron al API Agreement a finales de 2024 y siguen vigentes.
Si tu caso de uso es "dejar que un atleta conecte su propia cuenta de Strava a mi app", la API oficial es la herramienta correcta y la única autorizada. No está diseñada para construir un dataset general de rutas, clubes o atletas de toda la plataforma.
Opción 2: DIY en Python (y por qué falla)
Nada te impide apuntar requests o un navegador headless a las páginas públicas de Strava — pero los propios Términos de Servicio de Strava prohíben exactamente eso, y su robots.txt bloquea por completo a los crawlers de IA conocidos (GPTBot, Google-Extended, ClaudeBot, Meta-ExternalAgent están todos excluidos en todo el sitio). Más allá del riesgo legal:
- Muros de login. Desde los cambios de junio de 2026, datos que antes se mostraban a cualquiera — incluidos los listados de clubes — ahora requieren una sesión con login, así que un scraper no autenticado ve mucho menos que antes.
- Defensas anti-bot. Strava ha estado reforzando activamente su sitio contra scrapers antes de su salida a bolsa, así que espera fingerprinting, rate limiting y bloqueo de IPs además del riesgo de los ToS.
- Sin JSON público estable. Las páginas de rutas, clubes y challenges son HTML renderizado en servidor, no una API documentada, así que los selectores se rompen con cada rediseño.
Dada la prohibición explícita en los ToS, el scraping por tu cuenta de Strava tiene un perfil de riesgo bastante distinto al de las secciones DIY de nuestras otras guías de cómo hacer scraping — planifica en consecuencia.
Opción 3: una API estructurada de Strava
Para datos públicos de rutas, clubes y challenges — nunca las actividades privadas, los tracks GPS ni el contenido protegido por login de un atleta concreto — una API de scraping de Strava puede devolver JSON normalizado a partir de las páginas públicas del explorador de rutas, los perfiles de clubes y la galería de challenges de Strava. Explora rutas por deporte, país y región:
curl "https://api.crawlora.net/api/v1/strava/routes?sport=hiking&country=usa®ion=colorado" \
-H "x-api-key: $CRAWLORA_API_KEY"
La misma llamada en Python:
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/strava/routes",
headers={"x-api-key": "YOUR_API_KEY"},
params={"sport": "hiking", "country": "usa", "region": "colorado"},
)
routes = resp.json()["data"]["routes"]
for r in routes[:5]:
print(r["rank"], r["name"], r["distance_raw"], r["difficulty"])
La respuesta es un índice de rutas rankeadas (los campos son ilustrativos — revisa los Docs para el schema actual):
{
"code": 200,
"msg": "OK",
"data": {
"sport": "hiking",
"country": "usa",
"region": "colorado",
"title": "Top 318 hiking trails in Colorado",
"total_pages": 16,
"total_results": 318,
"routes": [
{
"rank": 1,
"name": "Mallory Cave via N.C.A.R. Trail",
"path": "hiking/usa/colorado/boulder/mallory-cave_5171952737974445730",
"difficulty": "Easy",
"distance_raw": "1.46 mi",
"elevation_gain_raw": "345 ft"
}
]
}
}
Obtén el detalle completo de una ruta usando el path del índice:
curl "https://api.crawlora.net/api/v1/strava/routes/detail?path=hiking/usa/colorado/boulder/mallory-cave_5171952737974445730" \
-H "x-api-key: $CRAWLORA_API_KEY"
Consulta el perfil público de un club por id, o trae la galería pública de challenges actual de Strava:
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/strava"
club = requests.get(f"{base}/clubs/521703", headers=h).json()["data"]
print(club["name"], club["member_count"], club["location"])
challenges = requests.get(f"{base}/challenges", headers=h).json()["data"]
print(challenges["promoted_challenge"]["name"])
Qué puedes recopilar
Esto está limitado a listados públicos de rutas, clubes y challenges — no al feed de actividad privada, los tracks GPS ni la lista de amigos de ningún atleta:
- Índice y detalle de rutas — nombre, deporte, dificultad, distancia, desnivel positivo, tiempo estimado y descripción de rutas públicas por deporte/país/región.
- Perfil público de club — nombre, ubicación, número de miembros, estado de verificación y descripción de un club por id — los mismos campos visibles en la página pública de un club, no su roster de miembros ni su feed de actividad.
- Galería pública de challenges — los challenges promocionados y por categoría actuales de Strava (nombre, objetivo, duración), la misma lista que se muestra en strava.com/challenges.
Limitaciones
- Nunca datos privados de atletas. Sin actividades individuales, rutas GPS recorridas por una persona concreta, frecuencia cardíaca, ni amigos/seguidores — esos datos requieren el consentimiento OAuth del propio atleta a través de la API oficial de Strava.
- Los términos de Strava restringen la recolección automatizada. Trata esto como una categoría de mayor riesgo que la mayoría de las plataformas de esta serie — revisa tú mismo la API Policy y los Términos de Servicio de Strava antes de escalar cualquier recolección.
- El bloqueo por login sigue creciendo. Tras el impulso anti-scraper de junio de 2026, con el tiempo puede que más contenido que antes era visible sin cuenta se mueva detrás de un login, lo que puede reducir lo que cualquier fuente basada en páginas públicas pueda alcanzar.
- No es una exportación masiva de actividad de atletas. Si tu caso de uso necesita datos de entrenamiento de atletas individuales, eso solo existe a través de la API OAuth oficial con el consentimiento de cada atleta — no hay un atajo legítimo para eso.
Dónde se usa esto
- Contenido de outdoor y fitness — mostrar los senderos y rutas regionales mejor valorados para sitios de viajes o de equipo.
- Descubrimiento de clubes e investigación de patrocinios — encontrar y dimensionar clubes de running/ciclismo por ubicación para partnerships con la comunidad.
- Seguimiento de tendencias de marketing de fitness — monitorear qué challenges está promocionando Strava por deporte y temporada.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o revisa si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba el endpoint de rutas en el Playground, revisa el schema de respuesta actual en los API docs y consulta el costo en créditos en la página de precios. Si estás comparando plataformas de fitness y actividad, combina esto con cómo hacer scraping de Instagram para la presencia social de una marca, o cómo hacer scraping de Google Maps para los negocios locales alrededor de un trailhead popular. Antes de construir algo que corra a escala, lee ¿es legal el web scraping en 2026? — los propios términos de Strava son más estrictos que la mayoría.
Parte de nuestra serie de guías de cómo hacer scraping — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Strava tiene una API oficial?
Sí. Strava opera una API OAuth 2.0 documentada (v3) en developers.strava.com. Tu app redirige a un atleta a la pantalla de consentimiento de Strava y recibe un token limitado a los propios datos de ese atleta — no se trata de una exportación general de la plataforma.
¿Puedo scrapear las actividades privadas o los datos GPS de otro atleta?
No. Los datos de actividad privada, los tracks GPS, la frecuencia cardíaca y otros datos específicos del atleta solo son accesibles a través de la API OAuth oficial de Strava, y únicamente para el atleta concreto que autoriza explícitamente tu app. No existe una forma legítima de acceder a los datos de actividad privada de otra persona sin su consentimiento.
¿Es legal scrapear Strava?
Trata a Strava como un caso más estricto que la mayoría de las plataformas. Sus Términos de Servicio prohíben explícitamente el acceso automatizado, el data mining, el screen scraping y los crawlers de cualquier forma, sin importar el estado de login, y su API Policy prohíbe por separado el web scraping y la extracción masiva de datos. Revisa tú mismo los términos de Strava y consulta a un abogado antes de construir algo a gran escala.
¿Qué datos públicos de Strava puedo recopilar con una API estructurada?
Índices públicos de rutas y detalle de rutas por deporte/país/región, el perfil público de un club (nombre, ubicación, número de miembros, descripción) y la galería pública de challenges actual de Strava — la misma información visible en las páginas públicas de Strava, sin datos privados de atletas.
¿Por qué Strava restringió en 2026 el acceso a datos que antes eran públicos?
En junio de 2026, antes de una solicitud confidencial de salida a bolsa, Strava puso tras un login datos que antes eran visibles sin cuenta (incluidos los listados de clubes), introdujo una tarifa fija para desarrolladores y dio de baja varios endpoints de la API — citando la presión de empresas de IA que scrapean el sitio para obtener datos de entrenamiento.
¿Qué endpoints de la API de Strava se eliminan en 2026?
Según el changelog oficial de la API de Strava, los endpoints Club Activities, Club Members y Club Admins se eliminan el 1 de septiembre de 2026, y el endpoint Explore Segments queda restringido ese mismo día a un Extended Access Tier aprobado.
¿Qué rate limits aplican a la API de Strava?
Las apps nuevas de desarrolladores empiezan en modo single-player con aproximadamente 200 requests cada 15 minutos y 2.000 al día. Tras pasar una revisión de app con 10 o más atletas conectados, los límites suben a alrededor de 400 requests cada 15 minutos y 4.000 al día.