Google Maps Scraper (no API key)
Pricing
from $2.00 / 1,000 places
Google Maps Scraper (no API key)
Extract Google Maps places — name, address, phone, website, rating, reviews — plus emails & socials. No API key. Export JSON/CSV/Excel.
Pricing
from $2.00 / 1,000 places
Rating
0.0
(0)
Developer
FruityP
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Extract Google Maps places — name, category, address, phone, website, rating, and review count — for any business type in any location. Optionally enrich each result by crawling its website for emails, extra phones, and social links. No API key, no Google account. Clean, flat output ready for JSON / CSV / Excel.
What it does
- Search by term × location — run any list of search terms (e.g.
dentists,coffee shops,plumbers) across any list of locations (e.g.Manchester, UK,Brooklyn, NY). Every term is searched in every location. - Rich place data — name, category, full address, city, country, phone, website, star rating, review count, coordinates, and a canonical Google Maps link.
- Contact enrichment — optionally visit each business's website to pull emails, extra phone numbers, and social profile links that aren't on the map listing. Keep it tight with "related emails only".
- Clean, flat output — one record per place, ready to export.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
searchTerms | string[] | ["dentists"] | Business types / keywords. |
locations | string[] | ["Manchester, UK"] | Each term is searched in each location. |
maxPlacesPerSearch | int | 50 | Upper bound per term × location pair. |
language | string | en | Result language code. |
countryCode | string | uk | Two-letter country bias. |
scrapeContacts | bool | true | Crawl each website for emails / extra phones / socials. |
relatedEmailsOnly | bool | true | Keep only emails on the business's own domain. |
proxyConfiguration | proxy | datacenter | Free-plan friendly default; see Proxies below. |
searchTerms and locations are both required (at least one each).
Example input
{"searchTerms": ["dentists", "orthodontists"],"locations": ["Manchester, UK", "Leeds, UK"],"maxPlacesPerSearch": 50,"language": "en","countryCode": "uk","scrapeContacts": true,"relatedEmailsOnly": true,"proxyConfiguration": { "useApifyProxy": true }}
Output
Places are pushed to the default dataset, one record per place:
{"placeId": "ChIJ...","name": "Smile Dental Practice","category": "Dentist","address": "12 King St, Manchester M2 6AG, UK","city": "Manchester","country": "GB","phone": "+44 161 123 4567","website": "https://smiledental.example","rating": 4.7,"reviewsCount": 312,"lat": 53.4808,"lng": -2.2426,"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ...","emails": ["hello@smiledental.example"],"socialLinks": ["https://facebook.com/smiledental"],"extraPhones": ["+44 161 123 4568"]}
emails, socialLinks, and extraPhones are populated only when
scrapeContacts is on.
Proxies
Cookies are minted through the same proxy used for scraping (the IP must stay consistent within a search):
- Free plan (default): the default
{"useApifyProxy": true}(Apify automatic/ datacenter proxy) works out of the box for normal volumes — verified live. - High / sustained volume: switch to residential to avoid throttling:
{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}(paid plan). - Bring your own: Proxy configuration → Custom proxies:
{ "useApifyProxy": false, "proxyUrls": ["http://USER:PASS@host:PORT"] }
- The actor rotates the IP per location.
Reliability
- Each location gets a fresh session minted on its own proxy IP.
- A failed search for one term/location is logged and the run continues with the rest.
- Results are de-duplicated by place id across all searches in a run.
Legal / ethics
Collects public business-listing data only. Respect Google's Terms, applicable law, and people's privacy — don't use it to harvest personal data for spam. Contact enrichment visits only the business's own publicly listed website.