Google Maps Scraper — Places, Leads & Contact Data
Pricing
from $4.00 / 1,000 results
Google Maps Scraper — Places, Leads & Contact Data
Scrape Google Maps places by search query. Returns name, full address, latitude/longitude, phone, website, rating, review count, category, price level, neighborhood, timezone, place ID and CID. HTTP-only — no browser, fast and cheap.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
yossef Nagy
Maintained by CommunityActor stats
0
Bookmarked
64
Total users
34
Monthly active users
9 hours ago
Last modified
Categories
Share
Google Maps Scraper
Extract business data from Google Maps at scale. Get names, addresses, phone numbers, websites, ratings, reviews, opening hours, and more for any type of business in any location.
What does Google Maps Scraper do?
This Actor searches Google Maps for businesses matching your query and extracts structured data for each result. It uses grid-based search for comprehensive coverage, finding businesses that don't appear in standard search results.
No browser required — uses Google Maps' internal APIs directly for fast, efficient extraction.
Features
- Comprehensive data: name, address, phone, website, rating, reviews, hours, categories, coordinates, and more
- Grid-based search: covers entire areas systematically, not just the first page of results
- Scale: extract hundreds or thousands of businesses per run
- Place details: optionally fetch full business details including opening hours and amenities
- Reviews: optionally extract customer reviews for each business
- Lead enrichment (experimental): optionally find emails and social-media profiles from each business's own website — off by default, billed separately, never changes the base scrape
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | — | Search query including location, e.g. "restaurants in New York" |
maxResults | integer | No | 100 | Maximum businesses to extract (0 = unlimited) |
language | string | No | "en" | Language code for results |
zoom | integer | No | 13 | Google Maps zoom level (1-21) |
includeDetails | boolean | No | true | Fetch detailed place info (hours, phone, website) |
includeReviews | boolean | No | false | Fetch customer reviews |
reviewsLimit | integer | No | 5 | Max reviews per business |
proxyUrl | string | No | — | HTTP proxy URL (recommended for reliability) |
Output
Each business in the dataset contains:
{"name": "Joe's Pizza","address": "7 Carmine St, New York, NY 10014","phone": "+1 212-366-1182","website": "https://www.joespizzanyc.com","rating": 4.5,"reviews_count": 12847,"category": "Pizza restaurant","categories": ["Pizza restaurant", "Italian restaurant"],"latitude": 40.7304,"longitude": -74.0022,"place_id": "ChIJr3k0v6VZwokRPCxBJnIcdTA","google_maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJr3k0v6VZwokRPCxBJnIcdTA","hours": {"monday": "10:00 AM - 2:00 AM","tuesday": "10:00 AM - 2:00 AM"},"price_level": 1}
Lead enrichment (experimental add-on)
Experimental / beta. This add-on is new and under active testing. It is off by default and does not change the base scraper's behavior, output, or cost when left off. Turn it on only if you want extra contact data and are comfortable with a feature that is still being refined.
When enabled, the scraper visits each business's own website (plus its contact / about / imprint pages) and extracts:
- Emails (
includeEmails) — deduplicated and syntax-checked, and the domain must actually accept mail (MX-validated) before an email counts. - Social profiles (
includeSocials) — Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, WhatsApp.
You can also filter which businesses are kept:
| Field | Type | Default | Description |
|---|---|---|---|
includeEmails | boolean | false | Find email addresses on each business website |
includeSocials | boolean | false | Find social-media profile links |
emailOnly | boolean | false | Only keep businesses for which an email was found (implies includeEmails) |
socialOnly | boolean | false | Only keep businesses for which a social profile was found (implies includeSocials) |
onlyWithWebsite | boolean | false | Only keep businesses that have a real website |
onlyWithoutWebsite | boolean | false | Only keep businesses WITHOUT a website (prospects for web/design agencies) |
Enrichment adds these fields to each output record (all are null when nothing is found, or when the add-on is off):
{"email": "hello@business.com","emails": ["hello@business.com", "sales@business.com"],"facebook": "https://facebook.com/business","instagram": "https://instagram.com/business","linkedin": null,"twitter": null,"youtube": null,"tiktok": null,"whatsapp": null,"website_reachable": true}
Enrichment runs over HTTP only (no browser), tries cheap datacenter proxies first and only escalates to residential when a site blocks it. It is billed separately, per enriched lead — a lead counts only when at least one email or social profile is actually found on the business's website.
Usage examples
Basic search:
restaurants in New York
Specific business type:
dentists in Los Angeles, CA
International search:
hotels near Paris, France
Tips
- Include location in your query for best results: "plumbers in Chicago" not just "plumbers"
- Use a proxy for reliable extraction — Google blocks datacenter IPs
- Start with a small
maxResultsto test, then scale up - Enable
includeDetailsto get phone numbers, websites, and opening hours (slightly slower) - Adjust zoom level: lower zoom (10-12) covers larger areas, higher zoom (14-17) finds more businesses in small areas
Proxy
Google Maps blocks requests from datacenter IPs. For reliable extraction, provide an HTTP proxy URL in the proxyUrl input field.
Limitations
- Results depend on what Google Maps returns for your query and location
- Some businesses may have incomplete data (missing phone, website, or hours)
- Rate limiting may apply for very large extractions