Skip to content
KeklikTechnologies

Ready-made scraper on Apify

Google Maps leads scraper

Type what you're looking for and where, such as dentist in Marseille, and get every matching business on Google Maps with phone, website, address, rating, review count and opening hours. Turn on the extras for emails and social profiles from each business's website.

  • New

What you get

A few places as a run returns them. The CSV download has every column.

Google Maps Leads Scraper53 fields · CSV ↓
  • Dellarocco's Brick Oven Pizza

    Pizza restaurant · Brooklyn Heights

    • (718) 858-1010
    • mgmtdellaroccos@gmail.com
    • dellaroccospizza.com
    rating
    ★ 4.6
    reviews
    1,387
  • Front Street Pizza

    Pizza restaurant · Brooklyn

    • (718) 875-3700
    • frontstreetpizzadumbo@gmail.com
    • frontstreetpizzadumbo.com
    rating
    ★ 4.3
    reviews
    2,134
  • L'ABRI | restaurant & vigneron

    Restaurant · Marseille

    • 09 50 40 45 08
    • contact@labri-marseille.fr
    • labri-marseille.fr
    rating
    ★ 4.7
    reviews
    520

Real output · people’s names withheld

Who uses it

Sales prospecting

Local businesses of one type across your cities, with phone numbers, websites and emails for outreach.

Finding clients for an agency

Businesses without a website, with a low rating or with an unclaimed profile, which are the ones most likely to need help.

Market sizing

Every business of a type in a city with its rating and review count, to size a market or spot the gaps.

Local SEO

Categories, claimed status and review counts for the businesses that rank in your area.

What you give it

  • Search termsoptional

    What to search for, one per line, as you would type it on Google Maps: dentist, italian restaurant, plumber.

  • Locationsoptional

    Where to search, one per line: Marseille, France or 75011 Paris. Leave it empty to search the terms as typed, which gives at most about 200 places per term.

  • Google Maps URLsoptional

    Optional. A Google Maps search link is searched over the map area it shows. A place link or Place ID gives that one place.

  • Max places per searchoptional

    Stops each term and location pair after this many places. Leave it empty to cover the whole area.

  • Languageoptional

    The language of categories, opening hours, attributes and reviews, such as en, fr or de.

    Default: en

  • Min ratingoptional

    Keep only places rated at least this many stars. Google applies it to the search itself.

    Any2.0+2.5+3.0+3.5+4.0+4.5+

  • Min reviewsoptional

    Keep only places with at least this many reviews.

  • Websiteoptional

    Keep places by whether they list a website. Places without one are often prospects for web agencies.

    AnyOnly places with a websiteOnly places without a website

    Default: Any

  • Phoneoptional

    Keep places by whether they list a phone number.

    AnyOnly places with a phoneOnly places without a phone

    Default: Any

  • Skip closed placesoptional

    Leave out places marked temporarily or permanently closed.

    Off by default

  • Skip unrelated placesoptional

    Leaves out the places Google adds when an area runs out of real matches, such as osteopaths in a dentist search.

    On by default

  • Place detailsoptional

    Adds reviews per star, review keywords, delivery and takeout hours and the plus code. Charged per place.

    Off by default

  • Emails and social profiles from websitesoptional

    Visits each business's website for emails, phone numbers and social profiles. Charged only for places where the website gave something.

    Off by default

  • Reviews per placeoptional

    Adds up to this many reviews to each place. For every review of a place, use the Google Maps reviews scraper.

    Default: 0

  • Reviews sortoptional

    Which reviews "Reviews per place" picks.

    NewestMost relevantHighest ratingLowest rating

    Default: Newest

  • Max resultsoptional

    Stops the whole run after this many places. Use it to cap what a run can cost.

Example inputs

Paste one into the JSON tab of the input form on Apify.

input.json
{
  "searchTerms": [
    "dentist",
    "orthodontist"
  ],
  "locations": [
    "Marseille, France"
  ],
  "maxPlacesPerSearch": 500,
  "websiteFilter": "with",
  "contactDetails": true
}

What it does

  • Every search term is searched in every location: a city, district, postcode or region
  • Large areas are split into map tiles, so a city search goes well past the 200 places one Google Maps search shows. Dentists in Marseille gave 871 in our test
  • Up to 53 fields per place, including Place ID, coordinates and opening hours by day
  • Optional emails, phone numbers and social profiles from each business's own website
  • Filters for rating, review count, website, phone and closed places, and places they remove are free
  • Each place appears once per run, however many searches find it

Pricing

You pay Apify per result, with nothing to pay when the scraper isn’t running. The rate drops on Apify’s paid plans. Set the numbers for your run to see the cost.

Your Apify plan
  • Place

    Each place the scraper saves. Places removed by filters are free.

    $3.00 per 1,000

  • Place detailsoptional

    Each place opened for its details, when Place details is on.

    $1.50 per 1,000

  • Emails and social profilesoptional

    Each place whose website gave an email or social profile, when Emails and social profiles is on.

    $1.50 per 1,000

  • Reviewoptional

    Each review added to a place with Reviews per place.

    $0.40 per 1,000

Estimated cost of this run$3.00

Where the data can go

Download the results from Apify, or have each run send them on through Apify’s integrations. We can set any of these up for you.

Download

  • CSV
  • Excel
  • JSON
  • XML
  • HTML table

Spreadsheets and storage

  • Google Sheets
  • Google Drive
  • Amazon S3

Automation tools

  • n8n
  • Make
  • Zapier
  • Webhooks

CRMs and apps, through those tools

  • HubSpot
  • Salesforce
  • Pipedrive
  • Airtable
  • Slack

Code and AI

  • REST API
  • Python client
  • Node.js client
  • MCP for AI agents

Run it from code

Start a run and read the results with your Apify API token, which is under Settings, then API & Integrations, in the Apify console.

cURL
curl -X POST "https://api.apify.com/v2/acts/keklik~google-maps-leads-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "searchTerms": [
    "dentist",
    "orthodontist"
  ],
  "locations": [
    "Marseille, France"
  ],
  "maxPlacesPerSearch": 500,
  "websiteFilter": "with",
  "contactDetails": true
}'

Questions

Limits

The search area is a rectangle around the location, so towns at its edges can appear too: narrow the list with the city or postcode column. Emails come from the businesses' own websites, so expect them for part of the places. They are checked for junk but not verified with a mail server.

How many places can I get?

As many as Google Maps has for your search in the area. For a whole country, list its cities or regions as locations.

Why did a search return only a few places?

Google matches your term against business categories. English works almost everywhere, but if a search returns little, try the term in the local language, such as dentiste or Zahnarzt.

Can I get every review of each place?

Reviews per place adds a few. For all of them, one row per review, feed the place links or Place IDs into the Google Maps reviews scraper.

Do I need a Google account or an API key?

No. It needs no Google account, login, cookies or Places API key, and there is no proxy to set up.

Do I need an Apify account?

Yes. The scraper runs in your Apify account and Apify bills you per result. A free Apify account is enough to try it.

Can you run it for us instead?

Yes. We can run it on a schedule, clean up the results and send them to your sheet, CRM or database. Ask for a quote and we reply within one business day.

Want us to run it for you?

We can run this scraper on a schedule and send the results to a sheet, your CRM or a database. We fix it if the site changes.