Google Maps Scraper - Business Leads & Emails
Pricing
from $0.60 / 1,000 place scrapeds
Google Maps Scraper - Business Leads & Emails
Scrape Google Maps places by keyword and location, URL or Place ID: name, address, phone, website, rating, review count, hours, categories, coordinates. Whole cities are split into map cells for full coverage. Optional emails and socials from websites. Free filters. No login, no API key.
Pricing
from $0.60 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
Eimantas V
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Google Maps Scraper extracts business listings from Google Maps: name, address, phone, website, rating, review count, opening hours, categories, coordinates and IDs, plus optional emails and social profiles from each business's website. Search by keyword and location, or paste Google Maps URLs and Place IDs. No login, no API key, no browser, from $0.40 per 1,000 places.
{"title": "Italala Caffè","categoryName": "Coffee shop","address": "Vokiečių g. 1, Vilnius, 01130 Vilniaus m. sav.","phoneUnformatted": "063033363","website": "https://www.italala.lt/","totalScore": 4.7,"reviewsCount": 1519,"location": { "lat": 54.6785822, "lng": 25.2859445 },"openingHours": [{ "day": "Monday", "hours": "8 am–8 pm" }, { "day": "Tuesday", "hours": "8 am–8 pm" }],"placeId": "ChIJ6-1bDxWU3UYRue3sXBtJaiQ","emails": ["ciao@italala.lt"],"instagrams": ["https://www.instagram.com/italalacaffe"]}
Measured on Apify: 3,000 Manhattan restaurants in 2 min 7 s; 300 Chicago dentists with place details and website contacts in 60 s.
What does Google Maps Scraper do?
It searches Google Maps the way you would, "dentist" in "Austin, Texas", and returns every place as one row. A large location is split into map cells automatically, so a city returns thousands of places instead of the ~120 that one Google Maps search shows. Field and input names are the same as in compass/crawler-google-places, so existing inputs and integrations keep working.
- Search a term in a city, region, country, postal code or a polygon you draw. Or paste Google Maps place links, search links, share links, Place IDs and CIDs.
- Lead data in every row: phone in local and international format, website, full address split into street, city, postal code and state, rating, review count, categories, hours for the whole week, coordinates, Place ID and CID.
- Optional add-ons: emails, phones and social profiles (Facebook, Instagram, LinkedIn, X, YouTube, TikTok, Pinterest) from each business's website, and place details with the 1-5 star breakdown, review topics and the top reviews.
- Free filters: category, minimum rating, with or without a website, closed places, exact name match, inside the location only. A place a filter drops is never charged.
- Only pay for results. Searches that find nothing, unknown locations and invalid IDs return an error row and are never charged. Each place is delivered once per run, even when several searches find it.
- Built for automation. Run it on a schedule, call it from the API, or connect it to Make, Zapier, n8n, Google Sheets or an AI agent through Apify's MCP server.
Why it is fast and cheap
It reads the same data endpoints the Google Maps website loads in your browser, over plain HTTP, without running a browser. One request returns up to ~150 places with all their fields, so 1,000 places take a handful of requests and a few seconds. That is why the price is a fraction of browser-based scrapers'.
What data can you extract from Google Maps?
| Field | Example | What it is |
|---|---|---|
title | Italala Caffè | Business name |
categoryName, categories | Coffee shop | Main category, and all of them |
address, street, city, postalCode, state, countryCode | Vokiečių g. 1, Vilnius… | Full address and its parts |
phone, phoneUnformatted | (0-630) 33363, 063033363 | Local and international format |
website | https://www.italala.lt/ | The business's own site |
totalScore, reviewsCount | 4.7, 1519 | Average rating and number of reviews |
openingHours, additionalOpeningHours | [{"day":"Monday","hours":"8 am–8 pm"}] | Hours for each weekday; delivery, kitchen and happy hours |
location | {"lat":54.678,"lng":25.286} | Coordinates of the pin |
placeId, cid, fid, kgmid | ChIJ6-1bDxWU3UYRue3sXBtJaiQ | Google's IDs (Places API Place ID included) |
url | https://www.google.com/maps/search/?api=1&… | Opens the place on Google Maps |
description | Bread-themed branch of the famed Italian market… | Google's editorial summary |
additionalInfo | {"Accessibility":[{"Wheelchair accessible entrance":true}]} | Attributes and the owner's highlights |
permanentlyClosed, temporarilyClosed | false | Closed status |
claimThisBusiness | false | true when no owner manages the listing: a local-marketing lead |
reserveTableLinks, orderOnlineLinks | [{"name":"opentable.com","url":…}] | Booking and ordering links |
imageUrl, imagesCount, imageUrls | 1183 | Main photo, number of photos, photo URLs |
searchString, searchLocation, rank, insideSearchArea | coffee shop, 2 | Which search found the place, and where |
emails, phones, facebooks, instagrams, linkedIns, twitters, youtubes, tiktoks, pinterests | ["ciao@italala.lt"] | Contacts add-on: from the business's website |
reviewsDistribution, reviewsTags, reviews, plusCode, ownerDescription, hotelStars | {"fiveStar":1266,…} | Place details add-on |
How to scrape Google Maps places
- Click Try for free. Type what you are looking for in Search terms ("plumber", "coffee shop") and where in Location ("Austin, Texas, USA").
- Set Places per search. You pay per place, so this is also your cost cap.
- Turn on the add-ons you need, then click Start. 1,000 places take about a minute.
- Open the Output tab (views: Overview, Contacts / leads, Location, Ratings, Top reviews, Opening hours), or download JSON, CSV, Excel or HTML.
How much does it cost to scrape Google Maps?
You pay per place, and the price drops on higher Apify plans. Add-ons are charged only for places where they returned data.
| Apify plan | Per 1,000 places | Place details add-on | Contacts add-on (only where found) |
|---|---|---|---|
| Free | $1.00 | $0.60 | $1.20 |
| Starter | $0.80 | $0.50 | $1.00 |
| Scale | $0.70 | $0.45 | $0.90 |
| Business | $0.60 | $0.40 | $0.80 |
| Enterprise | $0.40 - $0.50 | $0.30 - $0.35 | $0.60 - $0.70 |
- 5,000 restaurants in a city on the Starter plan: 5,000 x $0.0008 = $4.00.
- 1,000 dentists with place details and contacts on Starter: $0.80 + $0.50 for details + about $0.73 for contacts (found for ~73 % of dentists with a website, ~63 % of all) = about $2.03.
- Filters are free: places they drop are never charged. A run also costs $0.00005 per GB of memory to start.
- The Free plan's $5 monthly credit covers about 5,000 places.
Input
{"searchStringsArray": ["dentist", "orthodontist"],"locationQuery": "Austin, Texas, USA","maxCrawledPlacesPerSearch": 500,"website": "withWebsite","scrapeContacts": true}
| Field | Default | Notes |
|---|---|---|
Search terms (searchStringsArray) | restaurant | One per line; each is searched in every location |
Location (locationQuery) | New York, USA | One per line; split into map cells for full coverage |
Places per search (maxCrawledPlacesPerSearch) | 100 | Per term and location: your main cost lever |
Max places in total (maxItems) | none | Optional cap for the whole run |
Language (language) | en | Language of categories, hours and summaries |
| Country, state, county, city, postal code | none | Instead of Location, as separate fields |
Custom search area (customGeolocation) | none | GeoJSON polygon, or a point with radiusKm |
Google Maps URLs (startUrls), Place IDs (placeIds) | none | Single places, or a search link with its map view |
| Filters | off | Category, minimum rating, website, closed, exact name, inside the location (on) |
Place details (scrapePlaceDetailPage) | off | Star breakdown, review topics, top reviews, plus code, owner description |
Contacts from website (scrapeContacts) | off | Emails, phones and social profiles from the business's site |
Image URLs per place (maxImages) | 0 | Photo URLs in imageUrls |
| Proxy | automatic | Leave empty: the Actor picks the address itself |
Output
Each place is one row. The Overview view shows the key columns; every export includes all fields. With place details on, reviews holds the top reviews:
{"stars": 5,"text": "Everything was absolutely perfect. The service, pastries, and drinks were 11/10…","publishedAtDate": "2026-05-17T15:30:22.997Z","reviewerName": "Austeja G","isLocalGuide": true,"reviewDetailedRating": { "Food": 5, "Service": 5, "Atmosphere": 5 },"reviewContext": { "Price per person": "€10–15", "Reservation": "Reservations not required" }}
A search, URL or Place ID that cannot be read becomes a row with "recordType": "error" instead of failing the run. Error rows are never charged:
errorCode | Meaning |
|---|---|
LOCATION_NOT_FOUND | The location is not on the map. Write it as "City, Country" |
NOT_FOUND | No place for this Place ID, CID or link |
BAD_AREA | The custom search area is not valid GeoJSON |
BLOCKED, RATE_LIMITED, UNREACHABLE | Google refused or did not answer; run again |
PARSE_FAILED | Google changed its format; please report it in the Issues tab |
The run's RUN_SUMMARY record has the totals: places, add-ons charged, map views, places each filter dropped, and why the run stopped.
Tips and limits
- Different terms find different places. "plumber" and "electrician" add places; "plumber" and "plumbers" mostly find the same ones.
- "Only places inside the location" is on by default. A city's map rectangle also covers its neighbours; turn it off to keep them (each row has
insideSearchArea). - Reviews: the top ones only. Google shows up to 5 reviews per place to visitors who are not signed in, and this Actor never signs in. Full review history, popular times and price levels are only shown to signed-in Google users, so they are not included.
- Attributes are the groups Google's website shows to visitors who are not signed in (accessibility and the owner's highlights).
- Review counts: Google sometimes hides them from visitors who are not signed in. The Actor detects that and asks again from another session; in the rare case Google keeps hiding it,
reviewsCountis null and the run log says how many. - Charge limit: the run stops cleanly at your maximum charge per run, with everything found so far saved and charged correctly.
FAQ
Is it legal to scrape Google Maps?
This Actor collects business listings that Google Maps shows to anyone, plus what businesses publish on their own websites. It does not log in. Reviewer names are personal data under the GDPR: turn off Include reviewer names if you do not need them, and check with a lawyer what your use case allows. Google Maps is a trademark of Google LLC; this Actor is not affiliated with or endorsed by Google.
Can I use it through the API, Make, Zapier or n8n?
Yes. Start runs from the Apify API or any integration, schedule them, and get the dataset as JSON, CSV or Excel. The output schema links the places, the leads view and the run summary.
Can AI agents use it?
Yes, through Apify's MCP server. The input fields and the Store description are written so an agent can fill them in from a request like "dentists in Austin with emails".
I switched from compass/crawler-google-places. Do I need to change my input?
Usually not: searchStringsArray, locationQuery, maxCrawledPlacesPerSearch, language, countryCode, city, state, county, postalCode, customGeolocation, startUrls, placeIds, the filters, scrapePlaceDetailPage and scrapeContacts work the same, and the output uses the same field names. Inputs for features this Actor does not have (full review history, people leads) are ignored.
Why did I get fewer places than I asked for?
The area holds fewer places for that term, filters dropped some (never charged), several searches found the same places (each is delivered once), or the run hit your maximum charge or timeout. RUN_SUMMARY says which.
Related scrapers
- Website Tech Stack & Lead Enrichment Scraper: technologies, ad pixels, emails and DNS for the websites you found here.
- Trustpilot Reviews Scraper: every review a company has on Trustpilot, with the company's replies.
- Google Ads Transparency Scraper: which of these businesses advertise on Google, and with what ads.
Support
Found a bug or missing a field? Open an issue in the Issues tab with the run link; issues get an answer within a few days.