Google Maps Scraper - Places, Phones, Ratings, No Browser avatar

Google Maps Scraper - Places, Phones, Ratings, No Browser

Pricing

from $0.70 / 1,000 places

Go to Apify Store
Google Maps Scraper - Places, Phones, Ratings, No Browser

Google Maps Scraper - Places, Phones, Ratings, No Browser

Scrape Google Maps search results without a browser: name, category, address, phone, website, rating, review count, opening hours, coordinates and place ID for up to ~200 places per search. Any keyword and location, filters for rating, phone and website.

Pricing

from $0.70 / 1,000 places

Rating

0.0

(0)

Developer

Nada Hanad

Nada Hanad

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Scrape Google Maps search results without a browser: every place's name, category, address, phone, website, rating, review count, opening hours, coordinates and place ID, for any search term in any city. Up to about 200 places per search, fast, because it reads the same data the Maps app loads instead of rendering pages. $1.00 per 1,000 places. No login, no API key, no proxy.

What data you get

One row per place, same columns every time (named like the usual Google Maps exports, so existing sheets and integrations keep working):

  • title, categoryName, categories, placeId, cid, url (opens the place in Google Maps)
  • address, street, city, postalCode, state, countryCode, neighborhood, lat, lng, timezone
  • phone (international format) and phoneUnformatted, website, domain
  • totalScore (rating), reviewsCount, openingHours (every day of the week), imageUrl
  • searchString and rank (position in Google's list)
  • With Find emails and social profiles on: emails, facebooks, instagrams, linkedIns, twitters, youtubes, tiktoks, pinterests from each place's own website

How to use

  1. Type what you are looking for (dentist, coffee shop, plumber), one per line, and where (Austin, TX).
  2. Pick how many places per search, and optionally keep only places rated above a score, with a phone number or with a website.
  3. Run it, then download CSV, Excel or JSON, or pull the rows through the API.

Input

FieldTypeDefaultDescription
searchStringsArrayarray—Search terms, one per line. Also searchTerms, queries.
locationQuerystring—Where to search, e.g. Austin, TX. locations (array) searches several places.
maxCrawledPlacesPerSearchinteger50Per term and location. Google lists up to about 200; 0 means all.
startUrlsarray[]Google Maps search links or place links from the browser.
countryCodestring—Two letters, e.g. de, to favour one country when a city name exists in several.
languagestringenLanguage of categories, hours and addresses.
minRatingnumber0Leave out places rated below this.
skipWithoutPhonebooleanfalseOnly places with a phone number.
skipWithoutWebsitebooleanfalseOnly places with a website.
scrapeContactsbooleanfalseRead each place's website for emails and social profiles.
maxPagesPerSiteinteger3Website pages read per place.
skipWithoutEmailbooleanfalseOnly places whose website gave an email.
timeoutSecsinteger30Per request.
proxyConfigurationobjectoffNot needed.

Output example

A real row from a run with "searchStringsArray": ["dentist"], "locationQuery": "Austin, TX" on 2026-09-30:

{
"ok": true,
"type": "place",
"title": "ATX Family Dental",
"categoryName": "Dentist",
"categories": [
"Dentist",
"Cosmetic dentist",
"Dental clinic",
"Emergency dental service",
"Pediatric dentist",
"Teeth whitening service"
],
"address": "1700 S 1st St, Austin, TX 78704, United States",
"street": "1700 S 1st St",
"city": "Austin",
"postalCode": "78704",
"state": "Texas",
"countryCode": "US",
"neighborhood": "Bouldin Creek",
"lat": 30.2482229,
"lng": -97.75597049999999,
"phone": "+1 512-717-3147",
"phoneUnformatted": "+15127173147",
"website": "https://www.atxfamilydental.com/",
"domain": "atxfamilydental.com",
"totalScore": 4.9,
"reviewsCount": 911,
"openingHours": [
{
"day": "Wednesday",
"hours": "8 am–5 pm"
},
{
"day": "Thursday",
"hours": "8 am–5 pm"
},
{
"day": "Friday",
"hours": "8 am–4 pm"
},
{
"day": "Saturday",
"hours": "Closed"
},
{
"day": "Sunday",
"hours": "Closed"
},
{
"day": "Monday",
"hours": "8 am–5 pm"
},
{
"day": "Tuesday",
"hours": "8 am–5 pm"
}
],
"timezone": "America/Chicago",
"imageUrl": "https://lh3.googleusercontent.com/grass-cs/ACvplmPTjIfy6SJVu08J9Ml1pnxITskX_fUa-FefeD9CFzR8mqYfhNfOAqaRuXo0d79aElej6RbD9lYVR1_OcRUzJ0PWpI5jwfmULv8PTXAWvEY6pl5qL5EYBvcqUkSU2Hmuhh-_42D7=w800",
"placeId": "ChIJb5gBC-u0RIYRHkntaUcdJGs",
"cid": "7720327853776914718",
"fid": "0x8644b4eb0b01986f:0x6b241d4769ed491e",
"url": "https://www.google.com/maps/search/?api=1&query=ATX%20Family%20Dental&query_place_id=ChIJb5gBC-u0RIYRHkntaUcdJGs",
"searchString": "dentist in Austin, TX",
"rank": 1,
"scrapedAt": "2026-09-30T09:45:01.127Z"
}

A search or link that cannot be read comes back as one row with ok: false and a plain reason, such as Google Maps found no places for this search. Those rows are free.

Pricing

$1.00 per 1,000 places ($0.001 each). With Find emails and social profiles on, places whose website gave at least one email or profile cost $2.00 per 1,000 more. Places left out by your filters, repeats (a place found by two searches is written once) and failed searches are free.

Paid Apify plans pay less: 10% off on Bronze, 20% on Silver and 30% on Gold and higher tiers.

Use cases

  • Lead lists: every dentist, plumber or restaurant in a city with phone, website and rating, ready for a CRM.
  • Local market research: how many competitors are in an area, how they are rated and how many reviews they have.
  • Store locators and directories: addresses, coordinates and opening hours for a category or a brand.
  • Enrichment: add Google ratings, review counts and place IDs to a list of businesses.

FAQ

Do I need a Google API key? No. The Actor reads Google Maps the way its own web app does. There is no quota and no key to manage.

How many places can one search return? Google Maps lists up to about 200 places for one search. For more, split the area (dentist in North Austin, dentist in South Austin) or add related terms; repeats are merged and not charged twice.

The city name exists in several countries. Write the country in the location (Manchester, UK) or set countryCode.

Is it legal? It reads business listings that anyone can see on Google Maps without logging in. You are responsible for how you use the data, including rules for contacting businesses.

Integrations

Run it from the Apify API or a client library, schedule it in Apify Console, or connect it to n8n, Make, Zapier or any MCP client through Apify's integrations. Results are available as JSON, CSV, Excel and through the dataset API.

More tools from clearfetch

Changelog

  • 1.1.0 (2026-09) — emails and social profiles from each place's website, "only places with an email" filter.
  • 1.0.0 (2026-09) — first release: search terms × locations, search and place links, all place fields from the result list, rating/phone/website filters.