Alternativa a Apify Google Maps Scraper: precio por 1000
Apify Google Maps Scraper cuesta de 1,50 a 4,00 USD por 1000 locales. Medimos 0,028 USD por 1000 locales y 0,014 USD por 1000 reseñas en CDMX.

Apify Google Maps Scraper cobra 4,00 USD por cada 1000 locales en el plan Free y 1,50 USD en el plan Business, que cuesta 999 USD al mes; el nivel más bajo, DIAMOND, solo para clientes Enterprise, cuesta 0,756 USD. El 26 de octubre de 2026 hicimos una petición real a EveryInfra para buscar dentistas en la Ciudad de México: volvieron 50 locales y pagamos 0,001389 USD, es decir, 0,0278 USD por cada 1000 locales, unas 27 veces menos que DIAMOND y unas 54 veces menos que Business. Con las reseñas pasa lo mismo: Google Maps Reviews Scraper de Apify cuesta de 0,15 a 0,60 USD por 1000 reseñas, y nosotros pagamos 0,0139 USD por 1000 con 100 reseñas por llamada.
La diferencia casi desaparece cuando cada llamada devuelve muy pocas filas. Consultar un solo local por su enlace, o bajar las 9 reseñas nuevas de un local, sale solo entre 1,8 y 1,9 veces más barato que Business, y un poco más caro que DIAMOND, porque cobramos por petición y con pocas filas no hay nada que repartir. En este artículo reunimos las 22 llamadas reales, 9 llamadas más tras la corrección de la paginación del 26 de octubre, los datos de precios públicos de Apify, las pruebas de paginación y de duplicados, y los pasos para montar cada opción en n8n.
Aquí, una «alternativa a Apify Google Maps Scraper» es una API de datos que se paga por petición. No se ejecuta un actor de Google Maps (así llama Apify a sus extractores en la nube) dentro de la plataforma de Apify; se piden directamente los mismos tipos de datos públicos del mapa: locales por palabra clave y ciudad, un local por su enlace y las reseñas de un local, página a página. Comparamos solo cuatro cosas: cuánto cuestan 1000 filas, qué unidad cuenta cada parte, qué uso gratuito hay y si se cobran los fallos, y cuántos pasos lleva conectarlo en n8n, por API y por MCP. No abrimos cuenta en Apify ni ejecutamos sus actores, así que no juzgamos la calidad de sus datos ni su tasa de éxito; de su lado solo usamos el endpoint público de precios, las páginas de la Store y la documentación. De los campos de respuesta, solo describimos los nuestros.
Precios de Apify Google Maps Scraper: cada evento, en una tabla
Primero, cómo cobra Apify. Todas las cifras salen de su endpoint público api.apify.com/v2/acts/<actor>, que se puede leer sin cuenta. Su campo pricingInfos enumera los eventos que cobra cada actor y el precio de cada nivel. El 26-10-2026 a las 17:05 (hora de Singapur) leímos cuatro actores: Google Maps Scraper, Google Maps Reviews Scraper, Google Maps Extractor y Google Maps Email Extractor. La tarifa actual de Google Maps Scraper rige desde el 30-06-2026; el mismo endpoint muestra 667.270 usuarios en total y 44.777 en los últimos 30 días, con el último cambio el 26 de octubre. La de Reviews Scraper rige desde el 13-03-2026, y ese actor tiene 65.028 usuarios.
Cada evento tiene seis niveles de precio. FREE, BRONZE, SILVER y GOLD corresponden a los cuatro planes de autoservicio de Apify: Free, Starter, Scale y Business. La documentación de Actors in Store dice que cada plan incluye un nivel de descuento, y la de precios y costes aclara que PLATINUM y DIAMOND son solo para clientes Enterprise. La tabla recoge todos los eventos de Google Maps Scraper por cada 1000, y en la última fila el de Reviews Scraper.
| Evento (por cada 1000) | Free | Starter | Scale | Business | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Local extraído (base) | 4,00 USD | 3,00 USD | 2,00 USD | 1,50 USD | 1,26 USD | 0,756 USD |
| Extra: filtro de categoría | 1,00 USD | 1,00 USD | 0,75 USD | 0,525 USD | 0,315 USD | 0,189 USD |
| Extra: detalle del local (obligatorio con enlace o Place ID) | 2,00 USD | 2,00 USD | 1,50 USD | 1,05 USD | 0,63 USD | 0,378 USD |
| Extra: contactos desde la web del negocio | 2,00 USD | 2,00 USD | 1,50 USD | 1,05 USD | 0,63 USD | 0,378 USD |
| Extra: cada reseña | 0,50 USD | 0,50 USD | 0,37 USD | 0,26 USD | 0,1575 USD | 0,0945 USD |
| Extra: cada imagen | 0,50 USD | 0,50 USD | 0,37 USD | 0,26 USD | 0,1575 USD | 0,0945 USD |
| Extra: contacto comercial (cada uno) | 100 USD | 5,00 USD | 5,00 USD | 4,00 USD | 3,00 USD | 3,00 USD |
| Extra: perfil social (cada uno) | 100 USD | 8,00 USD | 7,00 USD | 6,00 USD | 4,00 USD | 3,00 USD |
| Extra: análisis de competencia con IA (cada local) | 25 USD | 20 USD | 18 USD | 16 USD | 15 USD | 13 USD |
| Reviews Scraper: cada reseña | 0,60 USD | 0,45 USD | 0,40 USD | 0,30 USD | 0,20 USD | 0,15 USD |
Hay tres cosas en esta tabla que se pasan por alto con facilidad. Primera: si das un enlace o un Place ID directo, Apify cobra además el extra de detalle; su página en la Store dice que en ese caso «se te cobrará un extra». Así, un local por enlace cuesta 1,50 + 1,05 = 2,55 USD por 1000 en Business. Segunda: contactos comerciales, verificación de correo y perfiles sociales cuestan 0,10 USD cada uno en Free, entre 12 y 25 veces el precio de los planes de pago; la propia página reconoce que el enriquecimiento social es «bastante más caro» en Free. Tercera: cada ejecución paga además el evento apify-actor-start; la documentación de pago por evento fija por defecto 0,00005 USD, que se cobra otra vez por cada GB extra de memoria. Por ejecución es poco, pero se nota si divides el trabajo en decenas de ejecuciones pequeñas por ciudad cada día.

Con los extras activados, el precio por 1000 locales se multiplica. El gráfico siguiente activa cinco eventos habituales: el local base, el detalle, un filtro, los contactos y 10 reseñas por local. En Free pasa de 4,00 a 14,00 USD; en Business, de 1,50 a 6,72 USD; en DIAMOND, de 0,756 a 2,65 USD. Un usuario de Reddit que arma listas de prospección publicó cifras del mismo orden: el actor de Google Maps le costaba 4 USD por 1000 con los campos básicos y 6 USD por 1000 con correos y perfiles sociales (publicación). Ojo: ese usuario vende una herramienta de escritorio y compara Apify con su propio producto. No usamos su conclusión; solo tomamos los dos precios de Apify que publica, que coinciden con el nivel Free del endpoint público.
Los precios de EveryInfra son más simples y también menos flexibles. En el catálogo GET /api/v1/social/catalog, las tres acciones de Google Maps, google_maps_reviews/search, google_maps_reviews/profile y google_maps_reviews/reviews, cuestan 0,001389 USD por petición: el nivel Standard de la página de precios, 1,39 USD por 1000 peticiones. Una petición cuesta lo mismo con 1 fila que con 50. search devuelve hasta 50 locales por llamada (el max_limit del catálogo) y reviews hasta 100 reseñas. No hay extras: teléfono, web, valoración, número de reseñas y horario ya vienen en la respuesta. Lo que no viene, como el correo de la web, los perfiles sociales o las horas punta, no lo tenemos y no se puede comprar aparte.
Las mismas 1000 filas: tres niveles de Apify frente a EveryInfra, medido
Esta es la comparación central del artículo. Las columnas de Apify usan precios públicos. La de EveryInfra usa nuestras llamadas reales de ese día: lo pagado, dividido entre las filas recibidas, por 1000. Contamos las filas por la longitud del array devuelto, no por limit. La regla del cociente la fijamos antes de las pruebas: 2 o más es «más barato», entre 1 y 2 es «parecido» y menos de 1 es «Apify más barato». Mostramos Business, el precio de autoservicio más bajo tras pagar 999 USD al mes, y DIAMOND, el más bajo de los seis niveles, que exige un contrato Enterprise.
| Datos | Opción de Apify | Apify Free | Apify Business | Apify DIAMOND | Prueba EveryInfra (acción, filas por llamada) | Medido por 1000 | Frente a Business | Frente a DIAMOND |
|---|---|---|---|---|---|---|---|---|
| Búsqueda de locales | Google Maps Scraper, base | 4,00 USD | 1,50 USD | 0,756 USD | google_maps_reviews/search, 50 | 0,0278 USD | unas 54 veces más barato | unas 27 veces más barato |
| Reseñas | Reviews Scraper | 0,60 USD | 0,30 USD | 0,15 USD | google_maps_reviews/reviews, 100 | 0,0139 USD | unas 22 veces más barato | unas 11 veces más barato |
| Reseñas junto con los locales | extra de reseñas de Google Maps Scraper | 0,50 USD | 0,26 USD | 0,0945 USD | igual, 100 | 0,0139 USD | unas 19 veces más barato | unas 6,8 veces más barato |
| Solo reseñas nuevas | Reviews Scraper | 0,60 USD | 0,30 USD | 0,15 USD | google_maps_reviews/reviews, 9 con since | 0,1543 USD | parecido (1,9 veces) | Apify un 3 % más barato |
| Un local por enlace | base + extra de detalle | 6,00 USD | 2,55 USD | 1,134 USD | google_maps_reviews/profile, 1 | 1,389 USD | parecido (1,8 veces) | Apify un 18 % más barato |
La diferencia de las tres primeras filas viene de la unidad de cobro. Los actores de Google Maps de Apify cobran por evento: su página de precios explica que la mayoría de los actores usa pago por evento y que pagas por eventos como devolver un resultado. Así, 1000 locales son 1000 eventos. Nosotros cobramos por petición: 50 locales pagan un solo precio, y cada local sale a 0,0000278 USD. Las dos últimas filas son distintas porque esos trabajos devuelven, por naturaleza, muy pocas filas por llamada: un local por enlace es 1 fila, y las reseñas nuevas del día de la prueba fueron 9. Entonces el precio por petición funciona como un precio por fila, y solo cuenta el precio unitario.
No incluimos estas dos filas para parecer equilibrados: cambian decisiones reales. Si tu trabajo principal es actualizar cada día 5000 locales que ya conoces, con nuestro precio cuesta 6,95 USD al día; en Apify, los eventos cuestan 12,75 USD en Business y 5,67 USD en DIAMOND. La distancia es mucho menor que en la búsqueda masiva.
¿Apify Google Maps Scraper es gratis? Lo que compran 5 USD
«apify google maps scraper free» es una de las sugerencias de búsqueda más frecuentes sobre este tema. La respuesta exacta: Apify tiene un plan Free sin tarjeta que da 5 USD de uso prepagado al mes, para gastar en cualquier actor de la Store. Su página de precios dice que una cuenta Free queda bloqueada hasta el siguiente ciclo cuando agota los 5 USD, y que en ningún plan el uso prepagado sin gastar pasa al mes siguiente: caduca al cierre del ciclo. La página de Google Maps Extractor en la Store da su propio número: con los 5 USD del plan Free se pueden extraer 1000 locales, o menos si usas extras. Coincide con el precio Free de Extractor en el endpoint público, 5,00 USD por 1000, así que sirve como comprobación externa.

Con el mismo método convertimos 5 USD en filas para trabajos habituales. Google Maps Scraper con campos básicos da 1250 locales; con detalle, 833; con detalle y un filtro, 714. Si cada local trae además 10 reseñas, quedan 555 locales. Reviews Scraper da 8333 reseñas. El usuario de Reddit citado arriba escribió que sus 5 USD gratis se le acabaron «en una sola mañana», y con estas cifras se entiende.
Del lado de EveryInfra hay que aclarar dos cosas. La primera: no damos saldo mensual. La página de precios explica que, si das una estrella a everyinfra/everyinfra-agent-plugins en GitHub, puedes reclamar 1 USD en la consola tras registrarte; vale 24 horas y alcanza para unas 720 llamadas de datos, y un registro normal no recibe nada. La recarga mínima es de 10 USD, unas 7199 llamadas, y el saldo pagado no caduca.
La segunda: las barras de EveryInfra del gráfico son un techo, no una promesa. Con 5 USD compras 3599 peticiones, y solo llegas a 179.950 locales o 359.900 reseñas si cada llamada trae 50 locales o 100 reseñas. En la práctica, una búsqueda da como mucho 120 filas, como se ve más abajo; para conseguir más locales hacen falta más búsquedas distintas y más ciudades, y los sinónimos se repiten mucho. Una llamada de reseñas, además, solo trae 100 filas en locales que tienen 100 reseñas o más.
| Uso gratuito y arranque | Apify | EveryInfra |
|---|---|---|
| Sin pagar | Plan Free: 5 USD al mes y luego bloqueo hasta el mes siguiente | Estrella en GitHub: 1 USD durante 24 horas; un registro normal no recibe nada |
| Entrada de pago más baja | Starter: 19 USD al mes, que incluyen 19 USD de uso; el exceso va a la factura siguiente | Una recarga de al menos 10 USD; sin cuota mensual |
| Dinero sin usar | Caduca al cierre del ciclo | Se queda hasta que lo gastes |
| Al llegar al límite | El plan Free se bloquea; los de pago pagan el exceso | Las peticiones fallan al agotarse el saldo; sin descubierto |
| Concurrencia y ritmo | Plan Free: hasta 5 ejecuciones a la vez | 60 llamadas por minuto por cuenta por defecto, compartidas entre todas las claves; 180, 600 y 1.800 por minuto con 50, 150 y 750 USD recargados en total |
La factura mensual: la cuota suele pesar más que el uso
Un precio unitario pequeño es solo una parte de la factura. En Apify, la cuota del plan es uso prepagado, así que el gasto real del mes es el mayor entre la cuota y el uso de ese mes. Un tamaño habitual: 10.000 locales y 100.000 reseñas al mes, unas 10 reseñas por local. A los precios de cada nivel, el uso es de 75 USD en Starter, 60 USD en Scale y 45 USD en Business. Pero Scale cuesta 199 USD y Business 999 USD al mes, y la parte de la cuota que no usas caduca. Así que el gasto real es de 75, 199 y 999 USD: el plan con menor coste de uso es el de factura más alta. Dejamos fuera el plan Free porque se bloquea al llegar a 5 USD.
El mismo trabajo cuesta 1,67 USD en EveryInfra. 10.000 locales a 50 por llamada son 200 llamadas a search; 100.000 reseñas a 100 por llamada son 1000 llamadas a reviews. En total, 1200 peticiones a 0,001389 USD. Es el mejor caso y depende de dos condiciones. La primera: las 200 búsquedas deben ser 200 pares distintos de palabra clave y ciudad que traigan 50 locales nuevos cada uno; nuestras pruebas muestran que los sinónimos se repiten mucho, así que en la práctica hacen falta más llamadas. La segunda: cada local necesita 100 reseñas o más para llenar una llamada. Aun con la peor repetición que medimos, en la que un segundo sinónimo solo aportó 5 locales nuevos, 1000 locales nuevos cuestan 0,278 USD, más o menos la quinta parte de los 1,50 USD de Apify Business.
| 10.000 locales + 100.000 reseñas al mes | Uso (eventos) | Cuota | Gasto real |
|---|---|---|---|
| Apify Starter | 75,00 USD | 19 USD | 75,00 USD (19 USD + 56 USD de exceso) |
| Apify Scale | 60,00 USD | 199 USD | 199,00 USD |
| Apify Business | 45,00 USD | 999 USD | 999,00 USD |
| Apify DIAMOND (Enterprise) | 22,56 USD | por contrato; no figura en páginas públicas | sin confirmar |
| EveryInfra (tarifa medida) | 1,67 USD | ninguna | 1,67 USD |
Haz tú la cuenta: dos fórmulas y un ejemplo
Puedes meter tus propias cifras en dos fórmulas. En Apify, el coste de eventos del mes es: locales × (precio base + el precio de cada extra que actives) + reseñas × precio por reseña + ejecuciones × coste de arranque; el gasto real es el mayor entre esa suma y tu cuota. En EveryInfra, el coste es (llamadas de búsqueda + llamadas de detalle + llamadas de reseñas) × 0,001389 USD. Las llamadas de búsqueda son, más o menos, los locales nuevos que necesitas divididos entre los locales nuevos por llamada; las de reseñas, las reseñas por local divididas entre 100, redondeando hacia arriba, por el número de locales. En las dos fórmulas lo difícil es lo mismo: cuántas filas útiles trae cada llamada. En Apify depende de los extras; en nuestro caso, de cuántos locales nuevos quedan tras quitar duplicados.
Un ejemplo de agencia de marketing local: 30 ciudades y 3 categorías, 100 locales por par y las 20 reseñas más nuevas de cada local, una vez al mes. Son 9000 locales y 180.000 reseñas. En Apify Business, los locales cuestan 9000 × 1,50 = 13,50 USD y las reseñas 180.000 × 0,30 = 54,00 USD; los 67,50 USD quedan por debajo de la cuota de 999 USD, así que el gasto real es de 999 USD. En Starter, los eventos suman 9000 × 3,00 + 180.000 × 0,45 = 108 USD, por encima de la cuota de 19 USD, y el gasto real es de 108 USD.
En EveryInfra, cada par necesita 2 llamadas a search para 100 filas (en la comprobación tras la corrección, las dos primeras páginas tenían entre 92 y 100 locales únicos), 180 llamadas para 90 pares, y cada local 1 llamada a reviews para 20 reseñas, 9000 llamadas. En total, 9180 llamadas × 0,001389 = 12,75 USD. Si solo bajas reseñas de los locales con nota inferior a 4, las llamadas de reseñas bajan mucho. En este ejemplo nuestro gasto es más o menos la octava parte del de Apify Starter. Supone que cada par trae de verdad 100 locales únicos; si no llega, la página 3 añade 20 más por una llamada más; con una categoría estrecha o una ciudad pequeña, el mismo número de llamadas trae menos locales.
| 30 ciudades × 3 categorías, 100 locales cada una, 20 reseñas por local | Locales | Reseñas | Eventos | Gasto real al mes |
|---|---|---|---|---|
| Apify Business | 9000 × 1,50 = 13,50 USD | 180.000 × 0,30 = 54,00 USD | 67,50 USD | 999 USD (cuota) |
| Apify Starter | 9000 × 3,00 = 27,00 USD | 180.000 × 0,45 = 81,00 USD | 108,00 USD | 108 USD |
| EveryInfra | 180 llamadas | 9000 llamadas | 9180 × 0,001389 USD | 12,75 USD |
Prueba 1: búsqueda de locales y paginación (dentistas en la CDMX)
La versión en español usa la Ciudad de México como muestra principal, con Singapur y Austin como contraste. Elegimos clínicas dentales porque son una categoría típica de las listas de prospección local: muchas reseñas y mucha competencia. La primera petición en la CDMX salió a las 17:17:38 (hora de Singapur), las 3:17 de la madrugada en la Ciudad de México. Usó google_maps_reviews/search con la palabra clave dentista, la ubicación Ciudad de México, el país mx, el idioma es y limit 50. Devolvió 50 locales en 12,0 segundos y costó 0,001389 USD. Esta es la petición; cambia $EVERYINFRA_API_KEY por tu clave.
curl -s https://api.everyinfra.com/api/v1/social \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"google_maps_reviews","action":"search",
"params":{"keyword":"dentista","location":"Ciudad de México","country":"mx","language":"es","limit":50}}'
# Respuesta: results (50 locales), next_page_token, pagination.has_more = true, billing.charged_usd = 0.001389La segunda página mostró el primer límite que conviene conocer. En Singapur enviamos el next_page_token de la página 1 con los mismos parámetros, y a las 17:09:40 (hora de Singapur) recibimos un HTTP 422 con el código async_required, sin cobro. El mensaje explica el motivo: una llamada síncrona solo puede llegar a 60 filas desde la primera, y la página 2 pide de la 51 a la 100. Hay que añadir "mode":"async" al cuerpo, recibir un job_id y consultar GET /api/v1/jobs/{job_id}. En el catálogo, la pagination de search también indica sync_max_rows: 60 y max_rows: 120.

Repetimos la página 2 en modo asíncrono y recibimos al momento un 202 con un job_id; esa llamada costó 0,001389 USD. En la CDMX el trabajo se envió a las 17:18:13 (hora de Singapur) y terminó 44 segundos después con 50 locales. El pagination.stop_reason fue depth_limit y has_more pasó a false. Es decir, antes de la corrección del 26 de octubre a las 19:53 (hora de Singapur), una búsqueda se detenía en la página 2, con 100 locales. Singapur y Austin dieron lo mismo, sin repetidos por place_id.
Tras la corrección repetimos las tres búsquedas. En la CDMX, la página 1 salió a las 20:03:49 (hora de Singapur) y volvió en 31,0 segundos con 50 locales. La página 2 (asíncrona, 20:04:20) trajo 50 en unos 69 segundos. La página 3 (20:05:29) trajo 20 en unos 68 segundos, con stop_reason en depth_limit y sin next_page_token. Son 120 filas por 3 peticiones, 0,004167 USD. Singapur y Austin también dieron 50, 50 y 20.
Ojo: cada página se vuelve a extraer desde el principio y el orden puede cambiar, así que las páginas pueden repetirse. «120 locales por búsqueda» se cuenta tras quitar duplicados por place_id:
| Comprobación tras la corrección | Filas en 3 páginas | Locales únicos | Repetidos entre páginas 1 y 2 | USD por 1000 locales únicos |
|---|---|---|---|---|
| Ciudad de México, dentista | 120 | 112 | 8 | 0,0372 |
| Austin TX, dentist | 120 | 119 | 1 | 0,0350 |
| Singapur, dentist | 120 | 120 | 0 | 0,0347 |
| Búsqueda (hora de Singapur) | Página | Modo | Filas | Motivo de parada | Cobro |
|---|---|---|---|---|---|
| dentista, Ciudad de México (17:17:38) | 1 | síncrono | 50 | hay más páginas | 0,001389 USD |
| igual, página 2 (17:18:13) | 2 | asíncrono, 44 s | 50 | depth_limit (antes de la corrección) | 0,001389 USD |
| dentist, Singapore (17:09:23) | 1 | síncrono | 50 | hay más páginas | 0,001389 USD |
| igual, página 2 (17:09:40) | 2 | síncrono | 422 async_required | — | 0 USD |
| igual, página 2 (17:09:49) | 2 | asíncrono, 42 s | 50 | depth_limit (antes de la corrección) | 0,001389 USD |
| dentist, Austin TX (17:15:52 / 17:16:26) | 1–2 | síncrono + asíncrono | 50 + 50 | depth_limit (antes de la corrección) | 0,002778 USD |
| dentista, Ciudad de México (desde 20:03:49, tras la corrección) | 1–3 | síncrono + asíncrono | 50 + 50 + 20, 112 únicos | página 3: depth_limit | 0,004167 USD |
| dentist, Singapore (desde 20:01:41, tras la corrección) | 1–3 | síncrono + asíncrono | 50 + 50 + 20, 120 únicos | página 3: depth_limit | 0,004167 USD |
| dentist, Austin TX (desde 20:03:49, tras la corrección) | 1–3 | síncrono + asíncrono | 50 + 50 + 20, 119 únicos | página 3: depth_limit | 0,004167 USD |
También anotamos la velocidad. Las llamadas síncronas a search tardaron entre 9 y 16 segundos en esta prueba: la de Singapur de las 17:09:23 (hora de Singapur), 9,1 segundos, y la de la palabra clave en chino de las 17:11:03, 16,0 segundos. Los trabajos asíncronos de la página 2 tardaron entre 42 y 44 segundos desde el envío hasta el final; tras la corrección, los de las páginas 2 y 3 tardaron entre unos 42 y 69 segundos. En n8n conviene poner el tiempo de espera del nodo HTTP Request en 60 segundos o más, y consultar los trabajos asíncronos cada 10 segundos más o menos. Lo que tarda una ejecución de Apify depende de la zona, los extras y la memoria; no la ejecutamos, así que no damos cifra.
| Llamada (hora de Singapur) | Modo | Tiempo |
|---|---|---|
| search, dentist, Singapur (17:09:23) | síncrono | 9,1 s |
| search, término chino, Singapur (17:11:03) | síncrono | 16,0 s |
| search, dentista, CDMX (17:17:38) | síncrono | 12,0 s |
| search, página 2, CDMX (17:18:13) | asíncrono | 44 s |
| search, dentista, CDMX, página 1 tras la corrección (20:03:49) | síncrono | 31,0 s |
| search, páginas 2 y 3, CDMX, tras la corrección (20:04:20 y 20:05:29) | asíncrono | unos 69 s y 68 s |
| reviews, página 1 de 100 (17:11:28) | síncrono | 28,7 s |
| profile, place_id inventado (17:19:45) | síncrono | 63 s, reembolsado |
Este límite de profundidad no es solo nuestro. La documentación de Text Search (New) de Google dice que pageSize admite como máximo 20 por página y que, sumando todas las páginas, se devuelven como mucho 60 resultados, «límite que puede cambiar»; la página se actualizó por última vez el 23-10-2026. La página de Apify Google Maps Scraper explica que, con solo una palabra clave y sin ubicación, una ejecución devuelve como mucho 120 locales, porque abre una sola pantalla de mapa y baja hasta el final; para conseguir más hay que dar una zona, y el actor la divide en muchas pantallas.
Tras la corrección, nuestro límite también es de 120 filas. Las tres herramientas, por tanto, chocan con el mismo límite de unas decenas a un centenar largo de locales por búsqueda. La diferencia es quién divide la zona. Apify la divide dentro del actor, y una sola ejecución puede cubrir una ciudad entera o incluso un país; con nuestra API y con la de Google, la divides tú por colonias, códigos postales o términos más concretos.
Los datos piden dos pasos de limpieza. En la CDMX, una de las 100 filas era un dentista que ejerce por su cuenta, sin valoración. En Singapur, el primer resultado de las búsquedas en inglés y en chino fue «Chan Jong Dr»: su dirección es igual que su nombre y no tiene valoración ni teléfono, así que parece una calle, no una clínica. Por eso, el primer paso tras una búsqueda es descartar las filas con rating o review_count vacíos. Por campos, en la CDMX 99 de 100 filas tenían phone, rating y review_count, pero solo 83 de 100 tenían website; en Austin las 100 tenían los cuatro campos y en Singapur 99 de 100. En las tres ciudades price y description venían vacíos para esta categoría, y ninguna fila tenía permanently_closed en true.
Prueba 2: quitar duplicados por place_id, y lo que aporta de verdad un sinónimo
Quien arma listas de negocios locales suele buscar varios sinónimos para encontrar más locales. Hicimos una serie en cada una de las tres ciudades. Primero buscamos dentista (o dentist) en dos páginas y obtuvimos 100 locales (de 17:09 a 17:18, antes de la corrección, cuando la página 2 era la última); después clínica dental (o dental clinic) con 50 locales, y en Singapur también el término chino para clínica dental. Luego cruzamos todo por place_id.
En la CDMX, 42 de los 50 locales de «clínica dental» ya estaban en la lista de «dentista»: solo 8 eran nuevos. En Singapur hubo 41 repetidos y 9 nuevos, y el término chino dio 45 repetidos y 5 nuevos. En Austin, 44 repetidos y 6 nuevos. Con los tres términos de Singapur, 4 peticiones dieron 200 filas y 112 locales únicos tras quitar duplicados.
| Ciudad | Primera búsqueda (2 páginas) | Segunda búsqueda (50) | Repetidos | Nuevos | Coste por 1000 locales nuevos |
|---|---|---|---|---|---|
| Ciudad de México | dentista, 100 | clínica dental | 42 | 8 | 0,174 USD |
| Singapur | dentist, 100 | dental clinic | 41 | 9 | 0,154 USD |
| Singapur | dentist, 100 | término chino para clínica dental | 45 | 5 | 0,278 USD |
| Austin, TX | dentist, 100 | dental clinic | 44 | 6 | 0,232 USD |
Estas cifras dicen dos cosas. La primera: un sinónimo aporta poco. En estas cuatro muestras, el segundo término sumó solo entre 5 y 9 locales nuevos, una repetición de entre el 82 % y el 90 %. La muestra es una sola categoría en tres ciudades, así que no prueba que todas las categorías se comporten igual, pero basta para ver que apilar sinónimos no hará crecer mucho la lista. La página de Apify en la Store da el mismo consejo: usar pocos términos de significado distinto que se solapen poco, como restaurant, bar y cafe, y no una larga lista de casi duplicados como restaurant, restaurants y chinese restaurant, que según Apify «solo alarga la ejecución sin dar más resultados».
La segunda: los repetidos cambian el coste real de cada local nuevo. En nuestro caso, la petición del segundo término cuesta igualmente 0,001389 USD. En la CDMX trajo 8 locales nuevos, así que 1000 locales nuevos cuestan 0,174 USD; en el peor caso, el término chino en Singapur, trajo 5, es decir, 0,278 USD por 1000. Sigue siendo entre 5 y 10 veces menos que los 1,50 USD de Apify Business, pero diez veces más que nuestro precio con páginas llenas, 0,0278 USD. Calcula el presupuesto con locales únicos, no con filas devueltas.
En Apify, la página de la Store sugiere que añadir términos en la misma ejecución no da más resultados; no la ejecutamos, así que no sabemos si un local repetido dentro de una ejecución se cobra dos veces. Hay un caso seguro: entre ejecuciones, los mismos locales vuelven a contar. Si lanzas la misma búsqueda cada semana, cada ejecución vuelve a pagar «local extraído» por los mismos locales.

Para quitar duplicados basta con place_id. La documentación de Place ID de Google dice que los Place ID quedan fuera de las restricciones de caché de los términos de Google Maps Platform (sección 3.2.3(b)), así que puedes guardarlos. También dice que un mismo lugar puede tener varios ID y que los ID cambian con el tiempo; Google recomienda renovar los que tengan más de 12 meses, porque uno antiguo puede devolver NOT_FOUND. Nuestro artículo sobre duplicados por Place ID explica cómo mantener tu propia clave de negocio y asociarla a los ID externos. En las cuatro pruebas de aquí, cada place_id volvió con el mismo nombre y la misma dirección en términos distintos; no vimos ningún local con dos ID, aunque 112 locales son pocos para descartarlo.
Prueba 3: paginar las reseñas de una clínica
Las reseñas son la parte más cara de los datos de Google Maps y la que más fácilmente llega incompleta. En r/apify, un equipo preguntó por qué extraer reseñas de Google Maps les costaba 35 USD por cada 1000 resultados (publicación). El hilo no terminó con un proveedor nuevo, sino con un método: separar el coste en cómputo del navegador, tráfico de proxy, peticiones por local y reseñas por local, y comprobar la completitud contra el número de reseñas que muestra cada local. Una ejecución más barata que deja de paginar sin avisar en los locales con muchas reseñas no es más barata, solo está mal. Aplicamos ese método.
La muestra de la CDMX es la clínica con más reseñas de la búsqueda: La Clínica Dental (Narvarte), con 863 reseñas y una valoración de 4,7. A las 17:19:02 (hora de Singapur) pedimos sus 100 reseñas más nuevas con lang=es. Volvieron 100, de las cuales 97 tenían texto y 84 tenían respuesta del negocio; 89 eran de 5 estrellas, 3 de 4, 1 de 3, 1 de 2 y 6 de 1. Las fechas iban del 9 de junio al 24 de octubre de 2026: esta clínica juntó 100 reseñas en cuatro meses y medio. Costó 0,001389 USD.
Para medir la profundidad máxima usamos una clínica de Singapur con más reseñas. A las 17:15:10 (hora de Singapur), google_maps_reviews/profile mostró 1868 reseñas, una valoración de 4,9 y 344 fotos. Pedimos las reseñas de la más nueva a la más antigua, 100 por página. Las páginas 1 y 2 volvieron en modo síncrono a las 17:11:28 y 17:12:02; desde la página 3 la llamada supera la profundidad síncrona, que para reviews es de 200 filas según el catálogo, así que enviamos las páginas 3 y 4 en modo asíncrono a las 17:12:23 y 17:13:47, y terminaron tras 77 y 69 segundos. La página 4 se detuvo con depth_limit. Las 4 páginas dieron 400 reseñas, que siguieron siendo 400 tras quitar duplicados por id: ninguna página repitió otra. Las 4 llamadas costaron 0,005556 USD, 0,0139 USD por 1000 reseñas.
Esas 400 reseñas son solo el 21 % de las 1868 y cubren del 22 de febrero de 2025 al 24 de octubre de 2026, unos 20 meses. Es un límite estricto de EveryInfra: el pagination.max_rows de reviews en el catálogo es 400. Si necesitas todo el historial de reseñas de un local, para un estudio de marca o para entrenar un clasificador, de esta clínica solo podemos darte los últimos 20 meses. La página de Apify Google Maps Scraper dice que cada local guarda hasta 5000 reseñas y sigue en un elemento nuevo, y su Reviews Scraper baja las que le indiques. Es un caso claro en el que Apify encaja mejor, y lo repetimos más abajo.
El contenido de esas 400 reseñas importa, porque decide qué puedes hacer con ellas. 357 tenían texto y 43 solo estrellas; 396 tenían respuesta del negocio, casi el 99 %. Había 388 de 5 estrellas, 8 de 4 y 4 de 1, ninguna de 2 o 3. Con notas tan concentradas, piensa en el sesgo de la muestra antes de un análisis de sentimiento. La muestra de Austin es muy distinta: Swish Dental - Domain tiene 1657 reseñas y una nota de 4,6; con sort=relevance a las 17:17:16 (hora de Singapur) obtuvimos 24 reseñas de 1 estrella y 62 de 5, 65 respuestas del negocio y fechas de diciembre de 2022 a septiembre de 2026. Ordenar por relevancia saca primero más reseñas negativas y más antiguas; ordenar por fecha muestra solo los últimos meses. Son dos muestras distintas.
Para vigilar cada día o cada semana, lo normal es bajar solo las reseñas nuevas. A las 17:19:27 (hora de Singapur) pedimos la misma clínica de Singapur con since en 2026-10-01: volvieron 9 reseñas, la más antigua del 6 de octubre, con stop_reason end_of_list, por 0,001389 USD. Por fila son 0,1543 USD por 1000, 1,9 veces menos que Reviews Scraper en Business (0,30 USD); según nuestra regla es solo «parecido», y un 3 % más que DIAMOND (0,15 USD). Si vigilas 1000 locales que reciben pocas reseñas nuevas por semana, la factura depende del número de peticiones: 1,39 USD por semana por 1000 llamadas, casi sin importar cuántas filas vuelvan.
| Muestra de reseñas (hora de Singapur) | Local | Orden | Filas | Qué vimos | Cobro |
|---|---|---|---|---|---|
| 17:19:02 | Clínica de la CDMX, 863 reseñas | más nuevas, lang=es | 100 | 84 respuestas del negocio, de junio a octubre | 0,001389 USD |
| 17:11–17:14, 4 páginas | Clínica de Singapur, 1868 reseñas | más nuevas | 400 (página 4 depth_limit) | 21 % de cobertura, 20 meses, 396 respuestas | 0,005556 USD |
| 17:19:27 | la misma | más nuevas, since 1 oct | 9 (end_of_list) | una llamada para lo nuevo | 0,001389 USD |
| 17:17:16 | Clínica de Austin, 1657 reseñas | relevancia | 100 | 24 de 1 estrella, 62 de 5 | 0,001389 USD |
Prueba 4: un local por enlace, la menor diferencia
google_maps_reviews/profile devuelve un local a partir de un enlace del mapa. A las 17:15:10 (hora de Singapur) pedimos la clínica de Singapur y volvió en 11,9 segundos, con más campos que search: barrio, plus_code, horario de los 7 días, número de fotos y una marca de cierre temporal. Este trabajo devuelve 1 fila por llamada, así que 1000 locales cuestan 1,389 USD. En Apify, el mismo trabajo es Google Maps Scraper con enlaces: precio base más el extra de detalle. Son 2,55 USD por 1000 en Business, así que somos 1,8 veces más baratos, solo «parecido»; en DIAMOND son 1,134 USD, y Apify es un 18 % más barato que nosotros; en Free son 6,00 USD, y somos 4,3 veces más baratos.
La conclusión aquí es directa. Si ya tienes una lista de Place ID o de enlaces y solo actualizas la nota, el número de reseñas y el horario, nuestra ventaja de precio es pequeña y depende de tu nivel en Apify. La gran diferencia está en los trabajos que traen muchas filas por llamada: buscar una ciudad desde cero y bajar reseñas en bloque. Además, la documentación de Place ID de Google indica que renovar un ID pidiendo solo el campo de ID es gratis, con el SKU Place Details IDs Only. Si solo quieres comprobar que un ID sigue siendo válido, hazlo con la API de Google y no pagues a nadie.
Cuánto cuesta la propia API de Google Places
Mucha gente busca «is google maps api free» o «cost for google maps api» para mirar primero la API de Google. Su lista de precios, actualizada el 23-10-2026, cobra por SKU, y cada SKU tiene una cantidad gratuita al mes. Text Search Pro devuelve nombre, dirección, ubicación y tipo: cuesta 32 USD por 1000 peticiones y las primeras 5000 del mes son gratis. La valoración, el teléfono, la web y el horario exigen Text Search Enterprise, a 35 USD por 1000 con las primeras 1000 gratis. Las reseñas exigen Enterprise + Atmosphere, a 40 USD por 1000.
La documentación de Text Search permite hasta 20 locales por página, así que el mejor caso es de 1,60 USD por 1000 locales con Pro y 1,75 USD con Enterprise. Las reseñas están más limitadas: la referencia del recurso Place devuelve como mucho 5 reseñas por local, ordenadas por relevancia.
| 1000 locales con nota y teléfono | Precio unitario | Parte gratuita | Reseñas | Nota |
|---|---|---|---|---|
| Google Text Search Enterprise | 35 USD por 1000 peticiones, hasta 20 locales cada una → unos 1,75 USD por 1000 locales | primeras 1000 peticiones al mes | hasta 5 por local (nivel Atmosphere, 40 USD) | como mucho 60 locales por búsqueda |
| Apify Google Maps Scraper, Business | 1,50 USD por 1000 locales | plan Free: 5 USD al mes | 0,26 USD por reseña como extra | como mucho 120 locales por búsqueda sin ubicación |
EveryInfra google_maps_reviews/search | 0,001389 USD por llamada, 50 locales → 0,0278 USD por 1000 | estrella en GitHub: 1 USD durante 24 horas | reviews, 100 por llamada, hasta 400 por local | como mucho 120 filas por búsqueda (página 3: depth_limit); quitar duplicados por place_id |
La API de Google tiene dos cosas que nadie más puede darte. Son los datos de la propia Google, y sus términos y políticas dicen con claridad cómo puedes mostrarlos y guardarlos; además, su cantidad gratuita basta para proyectos pequeños. El precio es de 5 reseñas por local, 60 locales por búsqueda y las reglas de atribución que fijan las políticas. Aquí no comparamos derechos sobre los datos. Un recordatorio vale para cualquier herramienta que recoja datos públicos: los datos personales de las reseñas deben tratarse según la ley de privacidad del lugar donde trabajes, algo que la página de Apify en la Store también recuerda.
Fallos y resultados vacíos: quién paga
Nuestra regla está en la página de precios: no se cobran los parámetros erróneos ni los fallos de autenticación, y tampoco los resultados fallidos o vacíos. Probamos cuatro casos. A las 17:15:27 (hora de Singapur) escribimos a propósito locaton en vez de location: HTTP 422 con el código unknown_param, did_you_mean: ["location"] y la lista completa de parámetros permitidos, sin cobro. La llamada async_required de la página 2, a las 17:09:40, también fue un 422 sin cobro. A las 17:19:45 enviamos a profile un place_id inventado: a los 63 segundos volvió un objeto vacío con billing.reason en empty_result_refunded, 0 USD cobrados y el reembolso en succeeded.
Solo un caso se cobró. A las 17:15:32 (hora de Singapur) buscamos en Singapur con letras al azar más «dental» como palabra clave, y volvieron 20 clínicas dentales reales; parece que las letras desconocidas se ignoraron y la búsqueda se hizo con «dental». El resultado no estaba vacío, así que costó 0,001389 USD: una palabra clave sin sentido no se trata como resultado vacío.
| Caso (hora de Singapur) | Acción | HTTP | Resultado | Cobro |
|---|---|---|---|---|
Error tipográfico locaton (17:15:27) | search | 422 unknown_param | did_you_mean: ["location"] | 0 USD |
| Página 2 demasiado profunda (17:09:40) | search | 422 async_required | reenviar con mode: async | 0 USD |
| place_id inventado (17:19:45) | profile | 200 | vacío, empty_result_refunded | 0 USD |
| Letras al azar + «dental» (17:15:32) | search | 200 | 20 clínicas reales | 0,001389 USD |
En Apify, el autor de cada actor decide cómo se cobran los fallos. La documentación de pago por evento aconseja a los desarrolladores «cobrar por entradas no válidas», es decir, entradas que parecen válidas pero fallan, como enlaces que devuelven un 404, porque el actor gasta recursos en descubrir el problema. El usuario tiene dos controles: puede fijar un cobro máximo por ejecución, y el actor se detiene al llegar a ese límite sin cobrar por encima; y el endpoint que ejecuta en modo síncrono y devuelve el dataset admite maxTotalChargeUsd. No ejecutamos Google Maps Scraper, así que no sabemos cómo cobra los casos sin resultados o con enlaces caídos. Haz antes una prueba pequeña y mira los cobros en la página de detalle de la ejecución.
Apify Google Maps Scraper en n8n, paso a paso y lado a lado
«apify google maps scraper n8n» y «google maps scraper n8n template» son otras sugerencias frecuentes en este tema. La animación de arriba cuenta los pasos desde un lienzo en blanco hasta las primeras filas en una hoja, según la documentación de cada parte. En Apify, la guía de integración con n8n indica lo siguiente. En un n8n autoalojado, instalas @apify/n8n-nodes-apify en Settings → Community Nodes; en n8n Cloud, buscas Apify en el panel de nodos. Creas una credencial con un token de Apify o con OAuth2, añades un nodo Run Actor, rellenas el JSON de entrada del actor y activas Wait for finish. Después añades Get Dataset Items con el defaultDatasetId del paso anterior.
El nodo comunitario publicó la v0.9.0 el 22-10-2026, con un modo que rellena la entrada del actor campo a campo a partir de su esquema, así que hace falta escribir menos JSON a mano; la v0.8.1, del 12 de octubre, corrigió problemas señalados en la revisión de n8n.
En EveryInfra no instalas ningún nodo. El nodo HTTP Request que trae n8n envía un POST, y Authorization: Bearer <clave> se guarda en una credencial Header Auth de n8n. Para las páginas se usa la opción de paginación del propio nodo, como en los ejemplos de paginación de n8n: modo Update a Parameter in Each Request, tipo Body, nombre params.page_token, valor {{ $response.body.next_page_token }} y parada cuando {{ !$response.body.pagination.has_more }} sea verdadero. Debajo va un ejemplo de configuración del nodo. No ejecutamos n8n en nuestra máquina, así que sigue la documentación; la misma petición en curl es la que probamos en la prueba 1.
{
"parameters": {
"method": "POST",
"url": "https://api.everyinfra.com/api/v1/social",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\"platform\":\"google_maps_reviews\",\"action\":\"search\",\"params\":{\"keyword\":\"{{ $json.keyword }}\",\"location\":\"{{ $json.city }}\",\"language\":\"es\",\"limit\":30}}",
"options": {
"pagination": {
"pagination": {
"parameters": { "parameters": [ { "type": "body", "name": "params.page_token", "value": "={{ $response.body.next_page_token }}" } ] },
"paginationCompleteWhen": "other",
"completeExpression": "={{ !$response.body.pagination.has_more }}",
"maxRequests": 2
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"name": "EveryInfra Google Maps search"
}El ejemplo fija limit en 30 y un máximo de 2 páginas, para que las dos queden dentro de la profundidad síncrona de 60 filas y no haga falta un trabajo asíncrono. El precio es quedarte en 60 locales por término en lugar de 120. Para llegar a las 120 (3 páginas de 50) hay que añadir "mode":"async" al cuerpo, y después un nodo Wait y un nodo HTTP Request que lea GET /api/v1/jobs/{job_id}: dos pasos más. Es un punto en el que n8n da más trabajo con nosotros que con Apify, y lo decimos.
Los dos últimos pasos son iguales en ambos lados. El nodo Split Out convierte el array results en un elemento por local, y el nodo Remove Duplicates quita duplicados por place_id; no te lo saltes, porque cada página se vuelve a extraer y las páginas pueden repetirse. Su modo «Remove Items Processed in Previous Executions» recuerda los ID entre ejecuciones, 10.000 por defecto: justo lo que hace falta para mandar a la hoja solo los locales nuevos cada semana. Para ejecutarlo cada día, pon un Schedule Trigger al principio. Nuestra guía del informe diario con n8n ejecuta todos los pasos, desde la programación hasta la hoja, y puedes adaptarla.
| Paso | Apify (nodo comunitario de n8n) | EveryInfra (HTTP Request) |
|---|---|---|
| Instalar | Autoalojado: @apify/n8n-nodes-apify; n8n Cloud: desde el panel de nodos | Nada; el nodo viene con n8n |
| Credencial | Token de Apify, u OAuth2 en n8n Cloud | Header Auth: Authorization: Bearer <clave> |
| Lanzar | Run Actor con el JSON de entrada del actor y esperar | Un POST con platform, action y params |
| Resultados | Get Dataset Items con defaultDatasetId | Vienen en results de la respuesta |
| Páginas | Las gestiona el actor; tú fijas maxCrawledPlacesPerSearch | Opción de paginación con page_token; asíncrono a partir de 60 filas |
| Duplicados | Remove Duplicates por placeId | Remove Duplicates por place_id |
| Control de gasto | Gráfico de uso de la consola y detalle de cada ejecución | billing.charged_usd en cada respuesta |
API y MCP de Apify Google Maps Scraper frente a los nuestros
Si escribes código en lugar de usar n8n, Apify ejecuta el actor a través de la API de su plataforma. El endpoint que ejecuta en modo síncrono y devuelve el dataset lanza la ejecución, espera y devuelve los resultados en una sola llamada, con dos topes de gasto: maxItems, el máximo de elementos que puede cobrar un actor de pago por resultado, y maxTotalChargeUsd. Para ejecuciones largas, se lanza sin esperar y se usa un webhook para saber cuándo termina. En EveryInfra se usa la petición curl de arriba, que responde en modo síncrono; para trabajos lentos se añade "mode":"async" y se consulta el job_id. Si vienes de Apify, cambias tres cosas: el cuerpo pasa del JSON de entrada del actor a platform + action + params; los resultados salen de results en la respuesta y no de un endpoint de dataset; y las páginas usan page_token, no ajustes del actor.
Las herramientas de IA pueden usar las dos opciones. El servidor MCP de Apify está en mcp.apify.com y recomienda entrar con OAuth; una IA puede buscar en la Store, elegir un actor, lanzar una ejecución y leer los resultados. Su repositorio abierto añadió herramientas para crear actores y actualizar versiones en la v0.19.0, del 19 de octubre, y llegó a la v0.19.3 el 21 de octubre.
El servidor MCP remoto de EveryInfra es https://api.everyinfra.com/mcp. Usa el transporte Streamable HTTP de la especificación MCP 2025-11-25 con una clave de API. La IA llama primero a everyinfra_list_capabilities para encontrar las tres acciones de google_maps_reviews, después a everyinfra_call_api, y en trabajos lentos a everyinfra_get_job; los cobros son los mismos que por REST. En n8n también puedes conectar el servidor a un nodo AI Agent con el MCP Client Tool. La configuración es:
{
"mcpServers": {
"everyinfra": {
"url": "https://api.everyinfra.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Qué trae nuestra respuesta, campo por campo
Esta tabla enumera los response_fields que el catálogo declara para las tres acciones. Los significados vienen de platform_field_meanings y de las notas de parámetros del catálogo, y la última columna es lo que vimos en esta prueba. Solo describimos nuestro lado y no ponemos los campos de Apify al lado de los nuestros.
| Acción | Campos | Significado | En esta prueba |
|---|---|---|---|
search | place_id, name, url | ID de lugar de Google, nombre, enlace del mapa con query_place_id | Las 520 filas de búsqueda de esta prueba tenían place_id; url sirve para profile y reviews |
search | category, categories | categoría principal y todas las categorías | las 520 filas tenían valor |
search | address, city, state, postal_code, country_code, lat, lng | dirección y coordenadas | CDMX postal_code 100/100 |
search | phone, website | teléfono y web | CDMX teléfono 99/100 y web 83/100 |
search | rating, rating_scale, review_count | valoración (sobre 5) y número de reseñas | vacíos en la fila de la calle y en la del dentista por cuenta propia |
search | price, description, permanently_closed, image_url, platform | nivel de precio, resumen, cierre definitivo, imagen de portada, plataforma | price y description vacíos en la muestra dental |
profile | todo lo anterior, más neighborhood, plus_code, opening_hours, image_count, temporarily_closed | barrio, Plus Code, horario, número de fotos, cierre temporal | horario de 7 días, 344 fotos |
reviews | id, text, rating, rating_scale, posted_at, url | ID de reseña, texto, estrellas, fecha de publicación, enlace | 400 id únicos; 43 sin texto |
reviews | reviewer_name, reviewer_review_count, is_local_guide | autor, total de reseñas del autor, Local Guide | datos personales; trátalos según la ley de privacidad |
reviews | like_count, owner_response, owner_response_at, detailed_rating, image_urls, place_id, place_name, platform | «me gusta», respuesta del negocio y su fecha, notas por aspecto, fotos, el local | CDMX: 84/100 con respuesta del negocio |
¿Ya usas Apify? Cuatro cosas antes de cambiar
Primera: conserva los datos antiguos. Un Place ID es el identificador que Google da a un lugar y no pertenece a ninguna herramienta de extracción; los Place ID de tus datasets de Apify y el place_id de nuestros resultados de search apuntan a los mismos ID de Google, así que sirven como clave para unir y quitar duplicados. No cruces por nombre ni por dirección: un mismo local se escribe de formas distintas con el tiempo y en otros idiomas.
Segunda: fija un tope de gasto antes de cambiar. En Apify quizá usas maxTotalChargeUsd en cada ejecución; nuestras peticiones no tienen un tope de gasto por llamada y el coste sigue al número de peticiones. Limita maxRequests y los bucles en tu script o en n8n, y crea en la consola una clave aparte para este trabajo, para poder desactivarla cuando quieras.
Tercera: trata las fechas de las reseñas como marcas de tiempo. Nuestro posted_at es una hora ISO con zona horaria. El hilo de Reddit citado arriba advierte de un riesgo: si tus datos solo tienen fechas relativas como «hace 2 semanas» y no guardaste la hora de captura, no podrás arreglar después una serie temporal. Cuarta: prueba una o dos ciudades con las dos opciones durante una semana, compara el número de locales, de reseñas y el precio por 1000, y después decide. Las cifras de este artículo solo representan el 26 de octubre, tres ciudades y una categoría.
Cuándo conviene más Apify
En precio somos más baratos casi siempre, pero en los casos siguientes las herramientas de Google Maps de Apify encajan mejor, y lo decimos.
Primero, si necesitas todo el historial de reseñas de un local: nosotros paramos en 400 por local, mientras que Google Maps Scraper guarda hasta 5000 por elemento y sigue, y su Reviews Scraper baja las que indiques. Segundo, si necesitas contactos comerciales y no solo locales: correos y teléfonos de la web, contactos del Impressum de webs alemanas, austriacas y suizas, nombres y cargos, verificación de correos y perfiles sociales; no tenemos ninguno de esos extras. Tercero, si una sola ejecución debe cubrir una ciudad o un país entero: Apify divide la zona que le das, o un polígono GeoJSON en formato RFC 7946, en muchas pantallas de mapa, y su Orchestrator reparte varias ubicaciones en ejecuciones y luego las une y quita duplicados. Nuestra búsqueda para en 120 filas, así que las zonas grandes las divides tú.
Cuarto, si necesitas imágenes, horas punta, menús o precios de hotel, o el informe de competencia con IA de Apify. Quinto, si ya eres cliente Enterprise de Apify y tu trabajo principal es actualizar por enlace locales que ya conoces: DIAMOND cuesta 1,134 USD por 1000, menos que nuestros 1,389 USD. Sexto, si solo recoges unos cientos de locales al mes y no quieres recargar: el plan Free de Apify da 5 USD cada mes, y nuestra prueba de 1 USD dura solo 24 horas.
Los casos en los que EveryInfra encaja mejor también están claros: búsquedas masivas de locales por ciudad y categoría, descargas masivas de reseñas y vigilancia semanal de muchos locales, cuando no quieres pagar cuotas que no usas. También los trabajos en los que una sola clave tiene que cubrir otras plataformas; por ejemplo, puedes comparar reseñas de Yelp y Tripadvisor en la misma factura. Nuestra guía de un informe de reseñas para clínicas dentales usa este tipo de datos.
| Tu caso | Encaja mejor | Por qué (dato de este artículo) |
|---|---|---|
| Buscar locales de una ciudad por categoría | EveryInfra | 0,0278 USD frente a 1,50 USD por 1000 en Business |
| Bajar reseñas en bloque | EveryInfra | 0,0139 USD frente a 0,30 USD por 1000 en Business |
| Historial completo de reseñas de un local | Apify | nosotros paramos en 400 por local |
| Correos, contactos y perfiles sociales | Apify | no tenemos esos extras |
| Actualizar por enlace locales conocidos, con contrato Enterprise | Apify | DIAMOND 1,134 USD frente a nuestros 1,389 USD |
| Unos cientos de locales al mes, sin recargar | Apify | 5 USD gratis cada mes frente a 1 USD durante 24 horas |
Cambios de los últimos 60 días
- 22-10-2026: el nodo comunitario de Apify para n8n publicó la v0.9.0, que rellena la entrada del actor campo a campo desde su esquema; la v0.8.0, del 22 de septiembre, añadió la acción Web Fetch. Qué significa para ti: en n8n ya no hace falta escribir a mano el JSON de entrada de Google Maps Scraper, así que montarlo es más fácil.
- 19-10-2026 a 21-10-2026: el servidor MCP de Apify lanzó las versiones v0.19.0 a v0.19.3, con herramientas para crear actores y gestionar versiones. Qué significa para ti: las dos opciones funcionan ya como servidor MCP remoto en herramientas de IA, y la elección vuelve a depender del precio y la cobertura.
- 23-10-2026: Google actualizó sus páginas de Text Search (New), Place ID y precios; el límite de 60 resultados por búsqueda y el consejo de renovar los Place ID cada 12 meses siguen ahí. Qué significa para ti: uses la herramienta que uses, la profundidad de búsqueda sigue limitada y los ID siguen necesitando renovación.
- 26-10-2026: Google Maps Scraper, Reviews Scraper y Extractor de Apify cambiaron el mismo día (campo público
modifiedAt), sin cambios de precio: siguen las tarifas del 30 de junio, el 13 de marzo y el 29 de abril. Qué significa para ti: nuestra tabla de precios vale para el día en que la leímos; vuelve a leer el endpoint antes de comparar. - 26-10-2026: n8n publicó la 2.45.4, y su informe de migración enlaza ahora con la página de cambios incompatibles de la v3. Qué significa para ti: quien autoaloja n8n debería planear pronto una actualización mayor; revisa la compatibilidad de los nodos comunitarios, porque el nodo HTTP Request integrado corre menos riesgo.
- 06-10-2026: Crawlee, la biblioteca de extracción de código abierto de Apify, publicó la v4.0.0-rc.1. Qué significa para ti: los equipos que construyen su propio extractor de mapas también afrontan un cambio de versión mayor; suma ese mantenimiento al presupuesto de hacerlo en casa.
Preguntas frecuentes
¿Apify Google Maps Scraper es gratis?
En parte. El plan Free de Apify no pide tarjeta y da 5 USD de uso prepagado al mes; al gastarlos, la cuenta se bloquea hasta el ciclo siguiente, y lo que no uses no pasa al mes siguiente (precios de Apify). A precios de Free de Google Maps Scraper, 5 USD compran unos 1250 locales básicos, u 8333 reseñas con Reviews Scraper. EveryInfra no regala saldo mensual: una estrella en GitHub da 1 USD durante 24 horas. Origen de la pregunta: la sugerencia de búsqueda «apify google maps scraper free».
¿Cuánto cuesta Apify Google Maps Scraper?
Por cada 1000 locales: 4,00 USD en Free, 3,00 USD en Starter, 2,00 USD en Scale y 1,50 USD en Business, y 0,756 USD en el nivel DIAMOND de Enterprise. Detalle, filtros, contactos, reseñas e imágenes son eventos extra que se pagan aparte (endpoint público de precios, leído el 26-10-2026). Nosotros medimos 0,0278 USD por 1000 locales. Origen de la pregunta: la sugerencia de búsqueda «apify google maps scraper pricing».
¿Se puede usar Apify Google Maps Scraper en n8n?
Sí. Apify tiene el nodo comunitario de n8n @apify/n8n-nodes-apify, y se usan las operaciones Run Actor y Get Dataset Items (documentación de Apify). EveryInfra usa el nodo HTTP Request que trae n8n, sin nodo comunitario. Origen de la pregunta: la sugerencia de búsqueda «apify google maps scraper n8n».
¿Apify Google Maps Scraper tiene API?
Sí. Se ejecuta con la API de la plataforma de Apify, o con apify-client para Node.js o Python; el endpoint de ejecución síncrona admite un tope de gasto maxTotalChargeUsd (documentación de la API de Apify). En EveryInfra es una sola petición POST, con los resultados y el cobro en la misma respuesta. Origen de la pregunta: la sugerencia de búsqueda «apify google maps scraper api».
¿Qué alternativas hay al extractor de Google Maps de Apify?
En r/automation y en r/n8n hay un hilo titulado «Alternatives for google maps scraper Apify» (publicación). Quien lo abrió quería negocios locales por nicho y ciudad, y una respuesta decía que los planes de Apify suben en escalones de 0 a 40, 200 y 1000, algo duro para quien lo usa poco. Una API de datos que cobra por petición es una alternativa, y la segunda tabla de este artículo compara los precios medidos por cada 1000. Si necesitas correos, enriquecimiento de contactos o el historial completo de reseñas, Apify sigue encajando mejor. Origen de la pregunta: el hilo de Reddit.
¿La API de Google Maps es gratis?
En parte. Google Maps Platform cobra por SKU, y cada SKU tiene una cantidad gratuita al mes: por ejemplo, las primeras 5000 peticiones de Text Search Pro y las primeras 1000 de Text Search Enterprise. Después cuestan 32 y 35 USD por 1000 (lista de precios de Google, actualizada el 23-10-2026). Una búsqueda devuelve como mucho 60 locales y como mucho 5 reseñas por local. Origen de la pregunta: la sugerencia de búsqueda «is google maps api free».
Pruébalo en tres pasos
Primero, regístrate y obtén una clave de API; después reclama el saldo de prueba o recarga en la página de saldo de la consola (inicio rápido). Segundo, abre la página de una acción y ejecútala una vez con su botón de prueba: probar la búsqueda de locales, probar un local o probar las páginas de reseñas. Tercero, mira charged_usd y el número de results en la respuesta, calcula pagado ÷ filas × 1000 para tu caso y compáralo con tu factura actual. Todas las acciones están en la página de la API de datos de Google Maps y en el mercado de datos. Para una comparación de precios más amplia, lee nuestro resumen de alternativas a Apify.
Método y límites
Del lado de Apify, solo usamos material público: los precios del endpoint público api.apify.com/v2/acts, leídos para cuatro actores el 26-10-2026 a las 17:05 (hora de Singapur) y guardados en bruto, además de la página de precios, la documentación, las páginas de la Store y las publicaciones de Reddit. No abrimos cuenta en Apify ni ejecutamos sus actores, así que todos los precios de Apify de este artículo son precios unitarios públicos, no gasto medido; una factura real puede ser mayor por los costes de arranque, los eventos extra y la cuota del plan. Del lado de Google, solo usamos su lista de precios y su documentación.
Del lado de EveryInfra, las primeras 22 peticiones se hicieron el 26-10-2026 entre las 17:09 y las 17:19 (hora de Singapur); se cobraron 19, por 0,026391 USD en total. La comprobación tras la corrección (20:01 a 20:06) sumó 9 peticiones cobradas, 0,012501 USD. La muestra son clínicas dentales de tres ciudades, con pocas llamadas por acción: muestra el precio, la profundidad de página y la tasa de repetición de ese día y esos objetivos, no la tasa de éxito ni la velocidad a largo plazo, y no vale para todas las categorías. Calculamos cada precio por 1000 como lo pagado dividido entre las filas recibidas, y conservamos el script y las respuestas en bruto. No pudimos confirmar tres puntos: el compromiso mínimo de un contrato Enterprise de Apify más allá de los precios unitarios; si Google Maps Scraper cobra dos veces un local repetido dentro de una ejecución; y cuánto se repiten las páginas en general: probamos una sola búsqueda por ciudad.
Referencias
- Apify, endpoint público de precios de Google Maps Scraper (compass/crawler-google-places), leído el 26-10-2026. https://api.apify.com/v2/acts/compass~crawler-google-places
- Apify, endpoint público de precios de Google Maps Reviews Scraper, leído el 26-10-2026. https://api.apify.com/v2/acts/compass~Google-Maps-Reviews-Scraper
- Apify, endpoint público de precios de Google Maps Extractor, leído el 26-10-2026. https://api.apify.com/v2/acts/compass~google-maps-extractor
- Apify, endpoint público de precios de Google Maps Email Extractor, leído el 26-10-2026. https://api.apify.com/v2/acts/lukaskrivka~google-maps-with-contact-details
- Apify, página de Google Maps Scraper en la Store, leída el 26-10-2026. https://apify.com/compass/crawler-google-places
- Apify, página de Google Maps Reviews Scraper en la Store, leída el 26-10-2026. https://apify.com/compass/google-maps-reviews-scraper
- Apify, página de Google Maps Extractor en la Store, leída el 26-10-2026. https://apify.com/compass/google-maps-extractor
- Apify, Pricing, leída el 26-10-2026. https://apify.com/pricing
- Apify, Google Maps Scraper Orchestrator, leída el 26-10-2026. https://apify.com/lukaskrivka/google-maps-scraper-orchestrator
- Documentación de Apify, Pay-per-event pricing model. https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event
- Documentación de Apify, Actor pricing and costs. https://docs.apify.com/platform/actors/publishing/monetize/pricing-and-costs
- Documentación de Apify, Actors in Store. https://docs.apify.com/platform/actors/running/actors-in-store
- Documentación de Apify, n8n integration. https://docs.apify.com/platform/integrations/n8n
- Documentación de Apify, Apify MCP server. https://docs.apify.com/platform/integrations/mcp
- Documentación de la API de Apify, Run Actor synchronously and get dataset items. https://docs.apify.com/api/v2/act-run-sync-get-dataset-items-post
- Documentación de Apify, Webhooks. https://docs.apify.com/platform/integrations/webhooks
- GitHub, apify/n8n-nodes-apify v0.9.0, 22-10-2026. https://github.com/apify/n8n-nodes-apify/releases/tag/v0.9.0
- GitHub, apify/n8n-nodes-apify v0.8.1, 12-10-2026. https://github.com/apify/n8n-nodes-apify/releases/tag/v0.8.1
- GitHub, apify/n8n-nodes-apify v0.8.0, 22-09-2026. https://github.com/apify/n8n-nodes-apify/releases/tag/v0.8.0
- npm, @apify/n8n-nodes-apify. https://www.npmjs.com/package/@apify/n8n-nodes-apify
- GitHub, apify/apify-mcp-server v0.19.0, 19-10-2026. https://github.com/apify/apify-mcp-server/releases/tag/v0.19.0
- GitHub, apify/apify-mcp-server v0.19.3, 21-10-2026. https://github.com/apify/apify-mcp-server/releases/tag/v0.19.3
- GitHub, apify/crawlee v4.0.0-rc.1, 06-10-2026. https://github.com/apify/crawlee/releases/tag/v4.0.0-rc.1
- GitHub, n8n-io/n8n 2.45.4, 26-10-2026. https://github.com/n8n-io/n8n/releases/tag/n8n%402.45.4
- Google, Google Maps Platform pricing, actualizada el 23-10-2026. https://developers.google.com/maps/billing-and-pricing/pricing
- Google, SKU details. https://developers.google.com/maps/billing-and-pricing/sku-details
- Google, Text Search (New), actualizada el 23-10-2026. https://developers.google.com/maps/documentation/places/web-service/text-search
- Google, Place IDs, actualizada el 23-10-2026. https://developers.google.com/maps/documentation/places/web-service/place-id
- Google, REST Resource: places. https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places
- Google, Places API (New) release notes. https://developers.google.com/maps/documentation/places/web-service/release-notes
- Google, Places API usage and billing. https://developers.google.com/maps/documentation/places/web-service/usage-and-billing
- Google, Places API policies and attributions. https://developers.google.com/maps/documentation/places/web-service/policies
- Google, Google Maps Platform Terms of Service. https://cloud.google.com/maps-platform/terms
- Documentación de n8n, HTTP Request node. https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/
- Documentación de n8n, HTTP Request pagination cookbook. https://docs.n8n.io/build/code-in-n8n/cookbook/http-request-node/pagination/
- Documentación de n8n, Remove Duplicates. https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates/
- Documentación de n8n, Split Out. https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/
- Documentación de n8n, Community nodes GUI installation. https://docs.n8n.io/integrations/community-nodes/installation/gui-install/
- Documentación de n8n, MCP Client Tool. https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/
- Documentación de n8n, Schedule Trigger. https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/
- Documentación de n8n, HTTP Request credentials. https://docs.n8n.io/integrations/builtin/credentials/httprequest/
- Model Context Protocol, Specification 2025-11-25. https://modelcontextprotocol.io/specification/2025-11-25
- IETF, RFC 7946 The GeoJSON Format. https://datatracker.ietf.org/doc/html/rfc7946
- EveryInfra, catálogo de la API de datos (google_maps_reviews), leído el 26-10-2026. https://api.everyinfra.com/api/v1/social/catalog
- Reddit r/apify, «Google Maps reviews scraping is costing us $35/1k results», leído el 26-10-2026. https://www.reddit.com/r/apify/comments/1vo81i0/title_google_maps_reviews_scraping_is_costing_us/
- Reddit r/B2BLeadGenPro, «I ran the same search through Apify Google Maps Scraper…» (el autor fabrica otra herramienta), leído el 26-10-2026. https://www.reddit.com/r/B2BLeadGenPro/comments/1sxd1af/i_ran_the_same_search_through_apify_google_maps/
- Reddit r/n8n, «Alternatives for google maps scraper Apify», leído el 26-10-2026. https://www.reddit.com/r/n8n/comments/1k5jvdj/alternatives_for_google_maps_scraper_apify/
Referencia BL-52