Pricing
from $7.00 / 1,000 results
Google Maps Business & Contact Scraper
Scrape Google Maps businesses with emails, reviews, images & social links. 33% cheaper than alternatives β emails included in base price. Compass-compatible input.
Pricing
from $7.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
12
Total users
7
Monthly active users
1.6 hours
Issues response
8 minutes ago
Last modified
Categories
Share
Google Maps Scraper β Extract Business Emails, Reviews & Contacts
Google Maps Scraper is an Apify actor that extracts business data β emails, phone numbers, reviews, images, and social links β from Google Maps. It returns 24 data fields per business at a flat $7 per 1,000 results, with emails, social links, reviews, and images all included at no extra charge. Drop-in replacement for compass/crawler-google-places.
How to Scrape Google Maps for Business Leads
- Flat $7 per 1,000 results β emails, social links, reviews, and images included, no add-on events (a comparable Compass scrape with emails runs ~$8 per 1,000 on Apify's pay-as-you-go plan; see pricing below)
- No subscription required β single all-in rate, not a tiered price that needs a paid Apify plan to unlock
- Fast β HTTP-first pipeline, no browser needed for basic scrapes (~1s per query)
- Deep email extraction β homepage + /contact + /about pages, with personal vs generic classification
- 24 data fields β more than any other scraper, including neighborhood, timezone, price level, and popular times
- Compass-compatible β same input field names, easy to switch
- Zero duplicates β deduplication by Google Maps place ID
Use Cases
- Lead generation β Build prospect lists with verified emails and phone numbers for any industry or location
- Local SEO monitoring β Track ratings, review counts, and ranking positions for your clients or competitors
- Market research β Analyze business density, pricing, and categories across geographic areas
- Sales prospecting β Find businesses without websites or with low ratings that need your services
- Real estate analysis β Map businesses around properties to assess neighborhood commercial activity
- Franchise expansion β Identify underserved markets by analyzing competitor locations and density
What Data Can You Extract? (24 fields)
Always included (from HTTP β instant, no browser): name, address, phone, website, rating, categories, coordinates, place_id, google_maps_url, neighborhood, timezone, country_code, business_photo, open_status, scraped_at
With scrapeContacts: true (website crawl):
emails, email_type (personal/generic), social_links (Facebook, Instagram, LinkedIn, X, YouTube, TikTok)
With maxReviews > 0 or maxImages > 0 (detail page):
review_count, hours (full weekly schedule), reviews (author, rating, text, time, owner response), images (Google Maps photo URLs), price_level ($-$$$$), popular_times (current busy status)
Quick Start
{"searchStringsArray":["dentist"],"locationQuery":"Austin, TX","maxCrawledPlacesPerSearch":20,"scrapeContacts":true}
Switching from Compass / crawler-google-places?
Same field names β copy your config:
searchStringsArray, locationQuery, maxCrawledPlacesPerSearch, language, scrapeContacts, scrapePlaceDetailPage, placeMinimumStars, skipClosedPlaces, maxReviews, maxImages, scrapeSocialMediaProfiles
Input Parameters
| Parameter | Default | Description |
|---|---|---|
searchStringsArray | required | Search terms |
locationQuery | null | Location (e.g., Austin, TX) |
maxCrawledPlacesPerSearch | 100 | Max results per query |
scrapeContacts | true | Extract emails & social links from business websites |
scrapeSocialMediaProfiles | all true | Toggle per platform |
maxReviews | 0 | Reviews per business (0 = skip, saves time) |
reviewsSort | newest | Sort: newest, mostRelevant, highestRating, lowestRating |
maxImages | 0 | Images per business (0 = skip, saves time) |
placeMinimumStars | "" | Min rating filter (e.g., 4, 4.5) β drops places rated below this |
skipClosedPlaces | true | Skip permanently closed businesses |
website | allPlaces | Website filter: allPlaces (no filter), withWebsite (keep only places that have a website), withoutWebsite (keep only places with no website β lead-gen) |
language | en | 19 languages supported |
geo_split | false | Auto-split large areas into grid |
geo_split_max_cells | 100 | Max grid cells (auto-adjusts) |
max_concurrency | 1 | Parallel detail pages |
proxy | null | Optional proxy config |
Sample Output β Google Maps Business Data
{"place_id":"ChIJb5gBC-u0RIYRHkntaUcdJGs","name":"ATX Family Dental","address":"1700 S 1st St, Austin, TX 78704, United States","phone":"+1 512-717-3147","website":"https://www.atxfamilydental.com/","emails":["info@atxfamilydental.com"],"email_type":"generic","rating":4.9,"review_count":802,"categories":["Dentist","Cosmetic dentist","Pediatric dentist"],"hours":{"Monday":"8 AMβ4 PM","Tuesday":"8 AMβ4 PM"},"latitude":30.2482229,"longitude":-97.7559705,"google_maps_url":"https://www.google.com/maps/place/...","social_links":{"facebook":"https://facebook.com/...","instagram":"https://instagram.com/..."},"reviews":[{"author":"John Smith","rating":5,"text":"Great dentist!","time":"2 months ago","response":"Thank you!"}],"images":["https://lh3.googleusercontent.com/..."],"neighborhood":"Bouldin Creek","timezone":"America/Chicago","country_code":"US","business_photo":"https://lh5.googleusercontent.com/...","open_status":"Open Β· Closes 4 PM","price_level":"$$","popular_times":"Not busy","scraped_at":"2026-03-27T01:00:00+00:00"}
How Much Does It Cost to Scrape Google Maps?
$0.007 per result + $0.01 per GB of memory at run start (default 4 GB β $0.04/run). Emails, social links, reviews, and images are all included β one flat rate, no add-on events.
Comparison to Compass / crawler-google-places (Apify pay-as-you-go / Free plan, scraping the same data β places + details + contact emails):
| Line item (per 1,000 places, with emails) | Compass (pay-as-you-go) | This actor |
|---|---|---|
| Base scraped place | $4.00 | included |
| + additional place details | $2.00 | included |
| + company contacts enrichment (emails, social) | $2.00 | included |
| Subtotal | ~$8.00 / 1,000 | $7.00 / 1,000 |
| Actor start | ~$0 | ~$0.04/run |
On Apify's pay-as-you-go (Free) plan β what you pay with no paid subscription β a comparable Compass scrape with emails costs about $8 per 1,000, versus our flat $7 per 1,000. Our price is a single all-in rate that needs no subscription.
Note: Compass advertises "from $1.50 / 1,000," which is its base-place price on the Business subscription tier (95% discount) and excludes emails, details, reviews, and images. On paid Apify subscription tiers Compass's add-on prices drop and can fall below $7; our actor is a flat rate regardless of plan.
Proxy Configuration
Works without proxy for small runs. For 100+ results, configure a proxy:
// Apify managed proxy{"provider":"apify","group":"RESIDENTIAL"}// Bright Data{"provider":"brightdata","username":"YOUR_USER","password":"YOUR_PASS","zone":"residential","country":"US"}// Oxylabs{"provider":"oxylabs","username":"YOUR_USER","password":"YOUR_PASS","proxy_type":"residential","country":"US"}// SmartProxy{"provider":"smartproxy","username":"YOUR_USER","password":"YOUR_PASS","proxy_type":"residential","country":"US"}// Any proxy URL{"provider":"raw_urls","urls":["http://user:pass@proxy.example.com:8080"]}
Cost Estimator
| Use case | Config | Est. cost |
|---|---|---|
| 100 businesses, basic data | default | ~$0.74 |
| 1,000 businesses with emails | scrapeContacts: true | ~$7.04 |
| 1,000 businesses + 5 reviews each | maxReviews: 5 | ~$7.04 |
| 10,000 businesses with emails | + geo_split: true | ~$70.04 |
All costs include emails, social links, reviews, and images. No add-ons.
Error Handling
| Situation | What happens |
|---|---|
| Proxy fails | Auto-retries without proxy, logs warning |
| Google blocks request | Falls back from HTTP to Playwright browser |
| Place detail page timeout | Skips place, continues with next (60s timeout) |
| Website unreachable (email extraction) | Skips emails for that business, returns other data |
| 0 search results | Returns empty dataset, no charge |
| Google consent screen | Auto-dismissed, scraping continues |
Failed places are logged but don't stop the run. You always get partial results.
Frequently Asked Questions
Do I need a proxy to scrape Google Maps? No for small runs (under 100 results). For larger scrapes, configure a residential proxy to avoid rate limits. See proxy config above.
How many Google Maps results can I scrape?
~120 per search query. Enable geo_split: true to automatically split large areas into a grid and scrape thousands of results.
Why did I get 0 (or fewer) results than expected?
Most often a filter removed them. website, placeMinimumStars, and skipClosedPlaces are applied to every search and drop places that don't match:
website: "withoutWebsite"keeps only places that have no website β businesses that do have a website are removed. (Setwebsite: "allPlaces"for no filter.)placeMinimumStarsdrops anything rated below the threshold (places with no rating are dropped too).skipClosedPlaces: truedrops permanently-closed businesses.
The run log tells you exactly what happened, e.g. Filter 'website=withoutWebsite' removed 2 place(s) and, if filters remove everything, a warning naming the active filters. Check the log and relax the filters if you expected results.
Is this cheaper than Compass / the standard Apify Google Maps scraper? On Apify's pay-as-you-go (Free) plan, yes for a scrape that includes emails: Compass charges $4 per 1,000 places + $2 details + $2 company-contacts enrichment β $8 per 1,000, while this actor is a flat $7 per 1,000 with emails, social links, reviews, and images included. Compass's headline "$1.50 / 1,000" is its base-place price on a paid Business subscription and excludes emails. If you run a high-volume paid Apify subscription, Compass's discounted add-ons can drop below $7; this actor stays a flat rate with no subscription needed.
Why are some emails missing? Not all businesses list emails on their website. Service businesses (law firms, dentists, plumbers) typically have better email coverage than restaurants or retail shops.
How do I extract Google Maps reviews?
Set maxReviews to any number greater than 0. Each review includes author name, star rating, review text, date, and owner response.
How fast is the Google Maps scraper? Basic data: ~1s per query. With email extraction: ~5s per business. With reviews and images: slower (requires browser rendering).
Can I cache Google Maps data between runs?
Yes. Set cache_provider: "apify" to reuse detail page data across runs. Only places that changed get re-scraped.
Related Actors
Building a full data pipeline? Pair this actor with our other scrapers β same proxy config format, same Pydantic-validated output.
Lead generation
- LinkedIn Profile Scraper β Scrape LinkedIn profiles via your li_at cookie. Structured fields, full experience history, optional email/phone/contact enrichment.
Lead generation / Hiring
- LinkedIn Jobs Scraper β Scrape LinkedIn job listings with 30 fields per job β company enrichment, salary, recruiter info, full description. No login required.
E-commerce intelligence
- TikTok Shop Product Scraper β Scrape TikTok Shop products across 10 regions (US, GB, VN, TH, PH, MY, SG, JP, MX, BR) β variants, prices, seller info, ratings, sold counts.
