Tony Wang6 min de lecturaAPIs de apps móviles explicadas: por qué los datos de apps funcionan distinto que los de la web (2026)
Por qué Yelp, DoorDash y OpenTable viven en la app móvil y no en la web, cómo funcionan esos backends y cómo acceder de forma legítima.
Un sitio web está construido para que lo lea un navegador: pides una URL, recibes HTML, parseas lo que necesitas. Una app móvil está construida de forma distinta — llama a su propio backend privado a través de una API REST o GraphQL y renderiza la respuesta JSON como pantallas nativas. No hay HTML que descargar, porque nunca existió una página. Esa única diferencia es la razón por la que "simplemente hacer scraping de la app como si fuera un sitio web" no funciona, y por la que algunos datos — el feed de exploración para invitados de una plataforma de delivery, el backend de búsqueda de una app de directorio — existen únicamente detrás de la app, sin una página web pública que contenga los mismos campos.
Sitios web vs. apps: dos formas de datos distintas
| Sitio web | App móvil | |
|---|---|---|
| Qué obtienes | HTML renderizado (o HTML + JS del lado del cliente) | JSON/protobuf desde un backend privado REST o GraphQL |
| Cómo lo leerías | Parseas el DOM | No hay DOM — la respuesta del backend es el dato |
| Autenticación | A menudo ninguna, para páginas públicas | Tokens de sesión, firmas de dispositivo/app, a veces certificate pinning |
| Estabilidad | Los cambios de layout rompen los selectores | Los schemas privados cambian sin changelog |
| Cobertura | Lo que la página renderice | A veces más — feeds, flujos o campos exclusivos de la app |
Ambos son "los datos de la misma empresa". El mecanismo de entrega — y, por lo tanto, la forma en que tendrías que llegar a ellos — no tiene nada que ver.
Por qué algunos datos solo viven en la app
Los ejemplos más claros son los que están documentados en el propio catálogo de API de Crawlora:
- El feed de exploración "tiendas cercanas" de DoorDash y su feed de descubrimiento de tiendas corren ambos sobre lo que la documentación de DoorDash para el endpoint describe como el flujo de invitado de la app móvil de Android — una superficie de exploración basada en ubicación que la app muestra antes de que hayas escrito nada. No existe una página "explorar cerca de mí" equivalente en doordash.com construida de la misma manera.
- La búsqueda de negocios de Yelp — la misma búsqueda por término y ubicación que usa la app de Yelp — llama, en palabras de Crawlora, "directamente al backend real de búsqueda de negocios de la app de Android de Yelp". Devuelve las mismas calificaciones, categorías y fotos que eventualmente mostraría una búsqueda web, pero la solicitud en sí tiene la forma de una llamada de app, no la descarga de una página web.
- Uber Eats y OpenTable ejecutan flujos comparables, primero-app, para el descubrimiento de restaurantes y los horarios de reserva en vivo — disponibilidad que cambia minuto a minuto, servida desde el mismo backend que consulta la app.
Nada de esto es inusual. Así es simplemente como se construyen las apps de consumo en 2026: backends mobile-first, con el sitio web a veces yendo por detrás o cubriendo una porción más estrecha del mismo catálogo.
Por qué hacer ingeniería inversa por tu cuenta no debería ser la opción por defecto
Puedes inspeccionar el tráfico de red de tu propio dispositivo en tu propia cuenta con un proxy interceptor — esa es una técnica estándar y legítima que usan los desarrolladores de apps y los equipos de QA para depurar sus propias apps. El problema aparece cuando eso se usa como base para extraer a escala el backend privado de la app de otra empresa:
- Certificate pinning. Muchas apps en producción fijan su certificado TLS, así que un proxy en el medio simplemente falla la conexión a menos que hayas modificado la app misma — lo cual es una actividad distinta, y de mucho mayor riesgo, que leer tu propio tráfico.
- Tokens firmados de corta duración. Las solicitudes al backend de la app suelen estar firmadas con tokens ligados a una sesión, un dispositivo o una ventana de tiempo. Replicarlos implica hacer ingeniería inversa de la lógica de firma, y esta expira en el momento en que la app se actualiza.
- Schemas no documentados y cambiantes. No existe un changelog para una API móvil privada. Los nombres de los campos, las formas de paginación y los headers requeridos cambian según el calendario del proveedor, no el tuyo — la misma fragilidad que sufren los scrapers web caseros, solo que con menos documentación de la cual partir.
- Términos de servicio. El acceso automatizado al backend de la app de otra empresa, fuera de su uso previsto, plantea las mismas preguntas de términos de servicio y uso aceptable que hacer scraping de su sitio web — consulta is web scraping legal para el marco general, que también aplica aquí.
Esto es trabajo de ingeniería real con fecha de vencimiento, no un atajo.
Qué cubren realmente las APIs oficiales para desarrolladores
Es tentador asumir que "debe existir una API para esto". Por lo general la hay — solo que no la que necesitas:
- App Store Connect y la Google Play Developer API te permiten gestionar y leer datos de apps que posees — tus propias reseñas, tu propia ficha. No devuelven nada sobre la app de un competidor ni el catálogo público de un negocio.
- La API de socio/comerciante propia de una plataforma de restaurantes cubre el menú y las reservas de tu propio restaurante si eres el comerciante — no de cada restaurante en la plataforma.
Para investigación, monitoreo o agregación a través de muchos negocios que no posees, las APIs oficiales para desarrolladores son, por diseño, la herramienta equivocada — están limitadas a tu propia cuenta.
El camino práctico: una API estructurada que ya «habla app»
El punto medio viable es el mismo que existe del lado web: en lugar de mantener tú mismo una integración privada con el backend de la app de otra empresa, llamas a un proveedor que ya mantiene una, y recibes JSON normalizado de vuelta. Eso es exactamente lo que hacen los endpoints de plataforma de Crawlora para los ejemplos de arriba — búsqueda de negocios de Yelp, búsqueda de restaurantes y disponibilidad en vivo de OpenTable, datos de tiendas y menús de DoorDash y Uber Eats — cada uno sin credenciales (sin login, API key ni cookie de la plataforma origen) y devuelto como campos documentados, no como payloads crudos de la app.
# Búsqueda de negocios del backend de la app de Yelp, como una sola llamada documentada
curl "https://api.crawlora.net/api/v1/yelp/search?term=pizza&location=Chicago,%20IL" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
h = {"x-api-key": "YOUR_API_KEY"}
# Horarios de reserva en vivo de OpenTable — el mismo feed que consulta la app
slots = requests.get(
"https://api.crawlora.net/api/v1/opentable/search",
headers=h,
params={"term": "dinner", "latitude": 37.7749, "longitude": -122.4194},
).json()["data"]["results"]
Renovar el token, gestionar la sesión y absorber el cambio de schema son problemas del proveedor que mantener, no tuyos — de cualquier forma obtienes un endpoint estable y versionado.
Qué puedes recolectar
Solo campos públicos y factuales: fichas de negocios (nombre, calificación, cantidad de reseñas, categorías, dirección, coordenadas, fotos), perfiles y menús de restaurantes, disponibilidad de reservas o delivery en vivo, y datos de tiendas/menús — el mismo tipo de campos que una persona podría ver en la app por sí misma. Los nombres de reseñadores y usuarios son datos personales bajo el RGPD/CCPA sin importar si provienen de una página web o de una pantalla de app — recoléctalos con una base legal y no republiques identidades.
Dónde se usa esto
- Inteligencia de negocios locales y restaurantes — calificaciones, categorías y disponibilidad entre distintos locales. Consulta how to scrape Yelp y how to scrape OpenTable.
- Monitoreo de reseñas y reputación — sigue el sentimiento entre plataformas sin mantener una integración con la app. Consulta el caso de uso de monitoreo de reseñas y reputación.
- Investigación de delivery y marketplaces — datos de tiendas, menús y precios entre plataformas de delivery de comida. Consulta how to scrape DoorDash y how to scrape Uber Eats.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: verifica si un sitio o una fuente respaldada por una app bloquea bots con el Anti-Bot Checker, o pasa una URL pública por el Free Web Scraper — sin registro.
Prueba los endpoints de Yelp y OpenTable en el Playground, revisa los schemas en la documentación de la API y consulta los precios. Consulta también how to scrape Yelp, how to scrape OpenTable, web scraping vs API e is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Por qué los datos de una app móvil difieren de los de un sitio web?
Un sitio web renderiza HTML que puedes parsear. Una app móvil, en cambio, llama a su propio backend privado REST o GraphQL y renderiza la respuesta JSON de forma nativa — no hay una página que descargar. Algunos datos (el feed completo de exploración para invitados de delivery de una cadena, un flujo de reserva exclusivo de la app) solo fluyen a través de ese backend, sin una página web pública equivalente.
¿Puedo simplemente hacer ingeniería inversa de la API de una app por mi cuenta?
Puedes inspeccionar el tráfico de tu propio dispositivo en tu propia cuenta, pero los backends de apps en producción están construidos para ser privados: usan certificate pinning, tokens firmados de corta duración y schemas que cambian sin aviso. Replicarlos es trabajo de ingeniería real y continuo, y hacerlo contra la app de otra empresa plantea las mismas preguntas de términos de servicio que hacer scraping de su sitio web.
¿Las APIs oficiales para desarrolladores de apps resuelven esto?
Solo para tu propia app o cuenta. Las APIs de plataforma para desarrolladores (App Store Connect, Google Play Developer API, la API de pedidos propia de un comerciante) te permiten gestionar tu propia ficha o cuenta — no devuelven el catálogo público ni los resultados de búsqueda de otro negocio a escala.
¿Cómo obtiene una API estructurada datos exclusivos de una app sin ingeniería inversa?
Un proveedor que ya se comunica con el backend de la app de una plataforma — por ejemplo, los endpoints de Yelp, DoorDash, OpenTable y Uber Eats de Crawlora — gestiona la sesión, los tokens y el cambio de schema detrás de un único endpoint documentado y versionado, así que llamas a una API estable en lugar de mantener tú mismo una integración privada.
¿Los datos del backend de una app son datos públicos?
Aplica la misma regla que en la web: los campos factuales y visibles públicamente (el nombre, la calificación, el menú, la dirección de un negocio) son de menor riesgo para recolectar que cualquier cosa detrás de un login, y las identidades de reseñadores o usuarios son datos personales bajo el RGPD/CCPA sin importar si provienen de una página web o de una pantalla de app.