ToolAssay

Scrape Google Maps places by search term and location

Scrape Google Maps places by search term and location: name, category, address, coordinates, rating, reviews count, phone, website, opening hours, attributes, place ID, plus optional emails and social profiles from each website. Fast, no API key. One search per call (result caps in the input schema); failed lookups are not charged.

Answeringour last check, 2026-10-24
1 of 1checks answered this week
6866 msmedian answer time
$0.01listed price per call
$0.01price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://agent-data.centorprat.workers.dev/tools/google-maps-scraper

CategorySearch and research
Provider hostagent-data.centorprat.workers.dev
Networkseip155:137, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days3 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-24 valid payment request 402$0.01 6866 ms

Example input (from the provider)

{
  "body": {
    "locations": [
      "Austin, TX"
    ],
    "maxPlacesPerSearch": 20,
    "searchTerms": [
      "dentist"
    ]
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "categoryFilter": {
              "description": "Keep places whose Google category contains any of these, e.g. [\"dentist\"].",
              "items": {
                "type": "string"
              },
              "maxItems": 3,
              "type": "array"
            },
            "country": {
              "description": "Google country code, e.g. us, gb, de.",
              "type": "string"
            },
            "coverWholeArea": {
              "description": "Split each location into a grid and search every cell, to get ALL matching places in a city or region instead of Google's top ~120-200. Slower; set maxPlacesPerSearch high.",
              "type": "boolean"
            },
            "gridCellKm": {
              "description": "Smaller cells find more places in dense areas (more requests). 2-4 km for cities, 10+ km for rural regions.",
              "type": "number"
            },
            "includeContacts": {
              "description": "Visit each place's website for emails, extra phones and social profiles (charged per place where contacts are found).",
              "type": "boolean"
            },
            "language": {
              "description": "Language code for names and texts, e.g. en, de, es.",
              "type": "string"
            },
            "locations": {
              "description": "Cities, neighbourhoods or regions, e.g. [\"Austin, TX\", \"Brooklyn, NY\"]. Each term is searched in each location.",
              "items": {
                "type": "string"
              },
              "maxItems": 1,
              "type": "array"
            },
            "maxContactPages": {
              "description": "Homepage + contact / about pages checked per website.",
              "maximum": 2,
              "type": "integer"
            },
            "maxPlacesPerSearch": {
              "description": "Per search term x location. A single search lists up to ~120-200 places; turn on 'Cover the whole area' for every place in a city (up to 10,000).",
              "maximum": 20,
              "type": "integer"
            },
            "minRating": {
              "description": "Keep places rated at least this.",
              "type": "number"
            },
            "minReviews": {
              "description": "Keep places with at least this many reviews.",
              "type": "integer"
            },
            "searchTerms": {
              "description": "What to search on Google Maps, e.g. [\"dentist\", \"pizza\", \"plumber\"]. Can include the place: [\"coffee in Lisbon\"].",
              "items": {
                "type": "string"
              },
              "maxItems": 1,
              "type": "array"
            },
            "skipClosed": {
              "description": "Drop places marked permanently closed.",
              "type": "boolean"
            },
            "website": {
              "description": "Places without a website are leads for web designers and agencies.",
              "enum": [
                "any",
                "with",
                "without"
              ],
              "type": "string"
            }
          },
          "required": []
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON