Scraper de reseñas de Google Maps

Un scraper de reseñas de Google Maps lee las reseñas públicas de un ID de negocio: texto, valoración, fecha, autor y respuesta del propietario, hasta 100 por página. Exporta esa página o léela por la API.

Antes de empezar · La investigación en vivo requiere una fuente de datos configurada. Los datos de ejemplo están identificados. Los planes de pago aún no están disponibles.

¿Qué es un Google Maps reviews scraper?

Es un scraper de reseñas de Google Maps: lee las reseñas públicas de un ID de negocio (texto, valoración, fecha, autor y respuesta del propietario), hasta 100 por página. No busca por categoría. Exporta esa página o pide otra con su propio presupuesto.

Campos de cada reseña

Los campos que devuelve el scraper de reseñas de Google Maps varían según la reseña. Un campo solo aparece cuando la fuente de datos lo devuelve, y un campo vacío no demuestra que la información no exista.

Cómo exportar reseñas de Google Maps

  1. Elige el negocio

    Busca en «Explorar negocios», abre un negocio y elige «Colección de reseñas» en «Preparar una tarea de seguimiento». También puedes elegir «Colección de reseñas» y pegar un ID de negocio.

  2. Configura la página y ejecuta

    Elige el orden («Orden de las reseñas»), un filtro de texto opcional («Filtro de texto de las reseñas») y hasta 100 reseñas. Comprueba las unidades máximas y ejecuta.

  3. Obtén más páginas y exporta

    Abre «Páginas de resultados» para obtener las páginas siguientes de una en una, cada una con su propio presupuesto. Descarga CSV, Excel, JSON o JSONL, o combina las páginas en una exportación de cadena completa.

Para usar el scraper de reseñas de Google Maps con varios negocios, selecciónalos en «Explorar negocios» y elige «Recopilar reseñas de la selección en Investigación masiva». Cada negocio se convierte en una tarea dentro de un único presupuesto total.

API de reseñas de Google Maps

Con la API, crea una tarea del scraper de reseñas de Google Maps con un ID de negocio y un presupuesto explícito de unidades, y lee las reseñas página a página. Leer reseñas almacenadas nunca ejecuta una nueva investigación.

En un cliente MCP, usa estimate_job, luego create_job con una idempotency_key estable y max_units, y lee con get_job_results. Para la página siguiente, preview_provider_continuation devuelve la tarea exacta que debes autorizar.

curl -X POST https://mapsscraper.dev/api/v1/jobs \
  -H "Authorization: Bearer $MAPSSCRAPER_API_KEY" \
  -H "Idempotency-Key: reviews-sample-business-001" \
  -H "X-Max-Units: 1" \
  -H "Content-Type: application/json" \
  -d '{"kind":"reviews","business_id":"sample-business-id","limit":100,"review_options":{"sort_by":"newest"}}'

HTTP/1.1 202 Accepted
{"id":"6f1c2b3a-0000-4000-8000-000000000000","status":"queued","reserved":1}

curl "https://mapsscraper.dev/api/v1/jobs/6f1c2b3a-0000-4000-8000-000000000000/results?offset=0&limit=100" \
  -H "Authorization: Bearer $MAPSSCRAPER_API_KEY"

Respuesta de ejemplo, abreviada. Los valores son ilustrativos, no datos reales de empresas.

{
  "items": [
    {
      "review_id": "sample-review-id",
      "business_id": "sample-business-id",
      "review_text": "Friendly staff and a short wait.",
      "rating": 5,
      "review_language": "en",
      "author_name": "Sample Reviewer",
      "owner_response_text": "Thank you for visiting.",
      "like_count": 2,
      "_source": {
        "provider": "live_maps",
        "fetched_at": "2026-11-01T12:00:00Z"
      }
    }
  ],
  "count": 1,
  "offset": 0,
  "next_offset": null,
  "provider": "live_maps",
  "coverage": "bounded_sample",
  "fetched_at": "2026-11-01T12:00:00Z"
}

Argumentos de la herramienta MCP create_job

{
  "task": {
    "kind": "reviews",
    "business_id": "sample-business-id",
    "limit": 100,
    "review_options": {
      "sort_by": "newest"
    }
  },
  "idempotency_key": "reviews-sample-business-001",
  "max_units": 1
}

Ejemplo en Python

Crea una tarea del scraper de reseñas de Google Maps, espera a que termine, lee las reseñas y obtén una vista previa de la página siguiente. Enviar esa página es una tarea de pago independiente.

import os
import time
import uuid

import requests

API = "https://mapsscraper.dev/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MAPSSCRAPER_API_KEY']}"}


def run(task, units):
    # Keep the key: a retry of the same page must send it again.
    key = str(uuid.uuid4())
    job = requests.post(
        f"{API}/jobs",
        json=task,
        headers={**HEADERS, "Idempotency-Key": key, "X-Max-Units": str(units)},
        timeout=30,
    )
    job.raise_for_status()
    job_id = job.json()["id"]
    while True:
        status = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json()["status"]
        if status not in ("queued", "running"):
            return job_id, status
        time.sleep(5)


task = {"kind": "reviews", "business_id": "sample-business-id", "limit": 100,
        "review_options": {"sort_by": "newest"}}
units = requests.post(f"{API}/estimate", json=task, headers=HEADERS, timeout=30).json()["units"]
job_id, status = run(task, units)

if status in ("completed", "partial"):
    page = requests.get(
        f"{API}/jobs/{job_id}/results",
        params={"offset": 0, "limit": 100},
        headers=HEADERS,
        timeout=30,
    ).json()
    for review in page["items"]:
        print(review.get("rating"), review.get("review_text"))

    # The next source page is a separate paid task: preview it, then submit
    # its exact task only if you need it.
    preview = requests.get(f"{API}/jobs/{job_id}/continuation", headers=HEADERS, timeout=30).json()
    if preview["available"]:
        run(preview["task"], preview["units"])

Formatos de exportación

CSV

Se abre en cualquier hoja de cálculo. Al texto que empieza por =, +, - o @ se le antepone un apóstrofo, para que la hoja de cálculo no lo ejecute como fórmula.

Excel (XLSX)

Un libro para Excel u Hojas de cálculo de Google, para resultados de hasta unos 5 MB. Usa JSON Lines para resultados más grandes.

JSON

El resultado completo con la fuente y la hora de obtención de cada registro, y la cobertura de la tarea.

Líneas JSON

Una reseña por línea, para archivos grandes y canalizaciones de datos.

Coste y límites

En el scraper de reseñas de Google Maps, cada página de hasta 100 reseñas reserva una unidad, devuelva las reseñas que devuelva. Las tareas fallidas, canceladas e inciertas no generan ningún cargo. Leer, exportar y combinar las páginas que ya tienes no consume unidades.

Una cadena de páginas de un negocio se detiene al llegar al límite de páginas de tu espacio de trabajo (20 por defecto y 100 como máximo) o cuando la fuente de datos no tiene página siguiente.

Precios

Recursos

Preguntas sobre el scraper de reseñas de Google Maps

Documentación
¿Es esta la Google Places API?

No. MapsScraper.dev es un servicio independiente y no está afiliado a Google. Los resultados provienen de una fuente de datos empresariales de terceros y usan nuestro propio formato JSON.

¿Cuántas reseñas puedo recopilar de un negocio?

El scraper de reseñas de Google Maps devuelve hasta 100 reseñas por página. Cada página adicional es una tarea con su propio presupuesto, hasta que la fuente de datos no tenga página siguiente o se alcance el límite de páginas de tu espacio de trabajo. Un negocio puede mostrar más reseñas de las que devuelve la fuente de datos.

¿Es legal hacer scraping de Google Maps?

No podemos ofrecer asesoramiento legal. Que recopilar y usar datos de empresas sea lícito depende de dónde te encuentres, qué recopiles, para qué lo uses y los términos aplicables. La disponibilidad pública no constituye, por sí sola, un permiso para almacenar, revender o contactar a personas. Lee nuestra política de datos

Tu próxima lista empieza por un lugar.

Explora el flujo con registros de ejemplo identificados y conecta tu espacio para investigar datos reales.

Explorar un ejemplo