Tony Wang6 min de lecturaCómo scrapear reseñas del App Store y Google Play en 2026 (API y Python)
Scrapea reseñas y valoraciones del App Store y Google Play en 2026 — DIY, sin código o una API estructurada — con lo básico legal y de rate limit.
La forma más rápida de scrapear reseñas del App Store y Google Play en 2026 es llamar a una API estructurada que devuelve JSON normalizado — reseñas, valoraciones, metadatos de la app y rankings por categoría en ambas tiendas — en vez de recorrer en bucle el feed RSS de Apple, limitado por rate limit, y pelear contra el throttling anti-bot de Google Play. Puedes construir tu propio scraper, pero ambas tiendas limitan y protegen los datos con fuerza, y las APIs oficiales solo cubren las apps que posees. Esta guía repasa los tres enfoques, qué devuelve cada uno, dónde se rompe cada uno y los aspectos legales básicos.
¿Por qué scrapear reseñas de apps?
Los datos de reseñas y valoraciones de apps impulsan toda una categoría de trabajo de producto y marketing:
- Monitoreo de reseñas y soporte — detecta bugs, cierres inesperados y quejas entre versiones y países.
- Optimización para tiendas de apps (ASO) — sigue valoraciones, rankings y presencia de palabras clave para tus apps y las de la competencia.
- Feedback de producto y sentimiento — cuantifica qué elogian y qué odian los usuarios, por función y por lanzamiento.
- Investigación de mercado — encuentra líderes de categoría, rangos de instalaciones y apps en ascenso en ambas tiendas.
¿Es legal scrapear reseñas de apps?
Opción 1: DIY en Python (y por qué se rompe)
Las dos tiendas funcionan de forma distinta, así que un scraper DIY son en realidad dos scrapers. Apple expone un feed RSS de reseñas no documentado:
import requests
# Apple's undocumented RSS reviews feed: 50 reviews/page, JSON
r = requests.get(
"https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortby=mostrecent/json"
).json()
reviews = r["feed"].get("entry", [])
Google Play no tiene una API pública de reseñas, así que el DIY se apoya en la librería no oficial google-play-scraper:
from google_play_scraper import reviews, Sort
result, token = reviews("com.shopify.mobile", lang="en", country="us",
sort=Sort.NEWEST, count=200) # 503s with a captcha under load
Funciona en la demo y luego se rompe:
- El límite de ~500 reseñas de Apple, por país. El feed RSS solo devuelve unas 10 páginas (≈500 reseñas) y no expone un endpoint global — y las reseñas están ligadas a un país, no a un idioma — así que conseguir el conjunto completo de reseñas de una app implica recorrer en bucle los 116 países del App Store y deduplicar (la misma reseña puede aparecer en varios). El total aun así no coincidirá con el número mostrado en la página de la app.
- Apple limita la tasa con dureza. Si machacas el feed, las respuestas se vuelven lentas y luego devuelven timeouts y 403; incluso IPs residenciales limpias quedan bloqueadas de minutos a horas, así que necesitas rotación de proxies.
- El throttling de Google Play. La librería no oficial parsea los endpoints internos de Google y activa el throttling — 503 con captcha y bloqueos de IP de ~1 hora (≈500–1.000 apps/IP/día sin proxies) — y las reseñas se paginan por cursor y se rompen cuando cambia el RPC interno.
- Las APIs oficiales son solo-tus-apps. App Store Connect (firmado con JWT) y la Google Play Developer API (≈60 solicitudes de reseñas/hora) solo cubren las apps que posees, inútiles para investigación de competidores o de mercado.
Opción 2: herramientas sin código
Los extractores visuales y los actores de "reseñas de apps" de marketplaces exportan CSV/JSON y sirven para extracciones puntuales, pero resultan poco prácticos en un pipeline dentro del producto con campos predecibles, y se rompen con los mismos límites y el mismo throttling.
Opción 3: una API estructurada (ambas tiendas)
Para flujos de trabajo repetibles, una App Store API y una Google Play API estructuradas devuelven JSON normalizado sin scraper que ejecutar. Obtener reseñas del App Store:
curl "https://api.crawlora.net/api/v1/appstore/reviews?id=389801252&country=us&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"
Ambas tiendas en Python — fíjate cómo se identifica cada app:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
# Apple App Store — apps are addressed by numeric track id
ios = requests.get("https://api.crawlora.net/api/v1/appstore/reviews",
headers=h, params={"id": "389801252", "country": "us", "page": 1}).json()["data"]
# Google Play — apps are addressed by package name
android = requests.get("https://api.crawlora.net/api/v1/googleplay/reviews",
headers=h, params={"app_id": "com.shopify.mobile", "country": "us"}).json()["data"]
Las reseñas del App Store vuelven como JSON normalizado (los campos son ilustrativos — revisa los docs):
{
"code": 200,
"msg": "OK",
"data": [
{ "id": "review-1", "title": "Helpful assistant", "score": 5, "author": "App Store User", "content": "Great for writing and research." }
]
}
Las reseñas de Google Play usan los nombres de campo propios de la tienda (docs):
{
"code": 200,
"msg": "OK",
"data": [
{ "id": "review-1", "user_name": "Play User", "score": 5, "content": "Very useful for daily work.", "thumbs_up_count": 42 }
]
}
Las reseñas son solo una parte — la misma clave llega a valoraciones, metadatos de la app, rankings y búsqueda:
base = "https://api.crawlora.net/api/v1"
hist = requests.get(f"{base}/appstore/ratings", headers=h,
params={"id": "389801252", "country": "us"}).json()["data"] # star histogram
app = requests.get(f"{base}/appstore/app", headers=h,
params={"id": "389801252", "country": "us"}).json()["data"] # title, developer, score, version
top = requests.get(f"{base}/googleplay/list", headers=h,
params={"collection": "TOP_FREE", "category": "PRODUCTIVITY", "country": "us"}).json()["data"] # rankings
hits = requests.get(f"{base}/appstore/search", headers=h,
params={"term": "shopify", "country": "us"}).json()["data"] # find an app id by name
Las reseñas del App Store se paginan con page y se ordenan con sort; las de Google Play se paginan por cursor — pasa de vuelta el next_pagination_token recibido mediante paginate. Pasa country (y lang) por tienda, guarda una fila por reseña, y vuelve a extraer según un calendario para seguir la evolución de valoraciones y sentimiento en el tiempo.
Qué puedes recopilar
- App Store: metadatos de la app (título, desarrollador, puntuación, número de valoraciones, versión, url), el histograma de valoración por estrellas, reseñas (id, título, puntuación, autor, contenido), búsqueda, listas de tops, apps similares, historial de versiones y etiquetas de privacidad.
- Google Play: metadatos de la app (título, descripción, instalaciones), reseñas (id, user_name, puntuación, contenido, thumbs_up_count), búsqueda, listas de tops, apps similares, seguridad de datos y permisos.
Todo está delimitado por tienda y país — cíñete a campos públicos y factuales.
Limitaciones y desafíos comunes
- No hay API pública de reseñas para apps arbitrarias. El feed RSS de Apple limita a ~500 reseñas por país sin endpoint global, y las APIs oficiales App Store Connect y Google Play Developer solo cubren las apps que posees — así que la investigación pública implica scraping, que una API estructurada resuelve detrás de una sola clave.
- Las reseñas son un subconjunto por país. El número de reseñas mostrado no coincidirá con lo que devuelve ningún feed, y Apple liga las reseñas a un país, no a un idioma — recopila los países que te importan y deduplica.
- Rate limits y bloqueos. El scraping directo provoca 403 en Apple y 503 con captcha más bloqueos de IP de ~1 hora en Google Play; una API estructurada absorbe los proxies y el throttling.
- Las reseñas y los nombres son datos personales. Trata el autor, los nombres de usuario y el texto de la reseña como datos personales bajo GDPR/CCPA — recopila campos públicos y factuales con una base legal.
Dónde se usa esto
- Monitoreo de reseñas y reputación — vigila valoraciones y sentimiento de reseñas en ambas tiendas. Consulta el caso de uso review & reputation monitoring.
- Optimización para tiendas de apps (ASO) — sigue las valoraciones, rankings y cadencia de versiones de la competencia.
- Feedback de producto — enruta quejas y solicitudes de funciones desde las reseñas hacia tu backlog.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de reseñas en el Playground, revisa el esquema en los API docs y consulta los precios. Explora el catálogo completo — 4.1M apps entre el App Store y Google Play — en nuestro mobile app dataset, o sáltate el crawling por completo con nuestro app-review sentiment dataset: millones de reseñas ya scrapeadas de las apps más populares, consultables vía la API. Consulta también how to scrape Trustpilot reviews para el lado de reseñas web y how to scrape TripAdvisor para reseñas de viajes y locales. Para el otro catálogo público de Apple construido sobre el mismo patrón de lookup de iTunes, consulta how to scrape Apple Podcasts. Cuando las apps que valoras son servicios de streaming, la JustWatch API aporta el catálogo detrás de la valoración — qué ofrece realmente cada proveedor, por país. Cuando lo que se valora es un juego en vez de una app, how to scrape Google Play cubre las propias valoraciones y el flujo de reseñas de la tienda Android, y how to scrape Steam cubre el lado de PC, donde el texto de la reseña es la señal de producto. La tercera tienda con el mismo patrón de reseñas son las extensiones de navegador — how to scrape the Chrome Web Store cubre ahí los datos de listado, valoración y permisos. Para el kit de herramientas más amplio, how to choose a web scraping API, y is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Puedo scrapear reseñas del App Store y Google Play sin que me bloqueen?
El scraping directo provoca bloqueos: el feed RSS de reseñas de Apple devuelve 403 si lo recorres demasiado rápido en bucle (incluso en IPs residenciales), y el throttling de Google Play devuelve 503 con captcha y bloqueos de IP de ~1 hora (aproximadamente 500–1.000 apps/IP/día sin proxies). Una API estructurada resuelve los proxies y el throttling detrás de una clave para datos públicos de reseñas en ambas tiendas.
¿Existe una API oficial para reseñas de apps?
Solo para tus propias apps. La App Store Connect API de Apple y la Play Developer API de Google te dejan leer y responder reseñas de tus propias apps (el endpoint de reseñas de Play tiene un límite de ~60 solicitudes/hora), pero ninguna devuelve reseñas de apps públicas arbitrarias — así que la investigación de competidores y de mercado implica scraping.
¿Cuántas reseñas del App Store puedo obtener?
El feed RSS público de Apple limita a unas 500 reseñas (~10 páginas de 50) por país y no tiene un endpoint global, y las reseñas están ligadas a un país en vez de a un idioma — así que un conjunto completo implica recorrer en bucle los países del App Store que te interesan y deduplicar. El total no coincidirá con el número mostrado en la página de la app.
¿Cómo identifico una app en cada tienda?
Las apps del App Store usan un track id numérico (los dígitos después de id en apps.apple.com/.../id389801252), y las reseñas se paginan por página. Las apps de Google Play usan el nombre del paquete (por ejemplo, com.shopify.mobile), y las reseñas se paginan por cursor mediante next_pagination_token. Usa los endpoints de búsqueda para obtener ambos id a partir del nombre de la app.
¿Qué datos de apps puedo recopilar?
Campos públicos: metadatos de la app (título, desarrollador/instalaciones, puntuación, versión), el histograma de valoraciones del App Store, reseñas (puntuación, nombre de autor/usuario, contenido), búsqueda, listas de tops, apps similares, historial de versiones y etiquetas de privacidad/seguridad de datos — delimitados por tienda y país.
¿Las reseñas de apps son datos personales?
Sí. Los nombres de quienes reseñan y de los usuarios, así como el texto de la reseña, son datos personales bajo GDPR/CCPA — recopila solo campos públicos y factuales con una base legal, y no vuelvas a publicar las identidades de quienes reseñan.
¿Con qué frecuencia puedo actualizar?
Vuelve a extraer los datos según un calendario para seguir la evolución de valoraciones y sentimiento en el tiempo, dentro de los límites de tu plan y de uso responsable, en vez de hacer polling continuo.