VOOZH about

URL: https://apify.com/nocodeventure/google-maps-scraper

โ‡ฑ Google Maps Scraper ยท Apify


Pricing

from $2.10 / 1,000 results

Go to Apify Store

Powerful Apify Actor that extracts business information from Google Maps. Get names, ratings, reviews, contact details, websites, and addresses for any business type in any location worldwide.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ No-Code Venture

No-Code Venture

Maintained by Community

Actor stats

1

Bookmarked

34

Total users

1

Monthly active users

12 days ago

Last modified

Share

Google Maps Data Extractor

Powerful Apify Actor that extracts business information from Google Maps. Get names, ratings, reviews, contact details, websites, and addresses for any business type in any location worldwide.

Pricing Model โ€” Pay Per Event

This Actor uses Pay Per Event (PPE) pricing. You are charged only for the work actually performed โ€” not a flat rental fee. Charges fire in real time as each action completes:

What you pay forWhen
Proxy usageOnce per run, if a proxy is configured
Per-record proxy surchargeEach business record saved, when proxy is enabled
Website extractionEach business whose website is visited for enrichment
Review extractionEach individual review extracted
Review debug screenshotEach screenshot captured during review extraction (when enabled)
Contact page followEach business whose contact page is visited
Finish screenshotEach location where a finish screenshot is saved
Debug screenshotEach error screenshot captured

Your run stops automatically when it reaches your configured spending limit โ€” no surprises. Partial results collected up to that point are always saved to the dataset.

What It Does

This tool searches Google Maps for businesses matching your criteria and extracts their public information. Whether you need data on restaurants in Tokyo, plumbers in London, or hotels in New York โ€” this extractor handles it all.

Key Capabilities:

  • Search any business category (restaurants, hotels, dentists, gyms, etc.)
  • Target multiple locations in a single run with parallel processing
  • Extract contact information (phone, website, address)
  • Capture ratings and review counts
  • Get business hours and status
  • Optional deep extraction for complete data
  • Concurrent browser sessions for faster multi-location scraping

Output Fields

FieldDescriptionAvailability
nameBusiness nameAlways
urlGoogle Maps linkAlways
placenameLocation searched (from input)Always
ratingStar rating (1-5)Usually
reviewCountNumber of reviewsUsually
categoryBusiness typeUsually
addressFull street addressWith details
phoneContact numberWith details
websiteBusiness websiteWith details
hoursStatusOpen/closed statusWith details
priceLevelPrice indicatorWhen available
scrapedAtExtraction timestampAlways
enrichmentEmails, social links, contact pageWith enrichment
quality_scoreData completeness score (0-1)With enrichment

Sample Output

{
"name":"The Coffee House",
"url":"https://www.google.com/maps/place/...",
"placename":"New York, NY",
"rating":4.7,
"reviewCount":892,
"category":"Coffee shop",
"address":"123 Main Street, New York, NY 10001",
"phone":"+1 212-555-0123",
"website":"https://thecoffeehouse.com",
"hoursStatus":"Open ยท Closes 9 PM",
"scrapedAt":"2025-12-02T10:30:00.000Z"
}

Sample Output with Enrichment

{
"name":"The Coffee House",
"url":"https://www.google.com/maps/place/...",
"placename":"New York, NY",
"rating":4.7,
"reviewCount":892,
"category":"Coffee shop",
"address":"123 Main Street, New York, NY 10001",
"phone":"+1 212-555-0123",
"website":"https://thecoffeehouse.com",
"hoursStatus":"Open ยท Closes 9 PM",
"scrapedAt":"2025-12-02T10:30:00.000Z",
"enrichment":{
"contact_page_url":"https://thecoffeehouse.com/contact",
"emails_found":["info@thecoffeehouse.com","orders@thecoffeehouse.com"],
"social":{
"facebook":"https://facebook.com/thecoffeehouse",
"instagram":"https://instagram.com/thecoffeehouse",
"twitter":"https://twitter.com/thecoffeehouse"
}
},
"quality_score":0.9
}

Input Configuration

ParameterTypeRequiredDefaultDescription
searchQuerystringYesโ€”Business type to find (e.g., "dentists", "pizza")
locationarrayNoโ€”List of locations to search (e.g., ["Chicago, IL", "New York, NY"])
maxResultsintegerNo100How many businesses to extract per location (0 = no limit)
browserConcurrencyintegerNo1Number of parallel browser sessions (1-30). Higher = faster for multiple locations
scrapeDetailsbooleanNofalseVisit each listing for full details
proxyConfigurationobjectNoResidentialProxy settings
minDelayintegerNo1Min seconds between requests
maxDelayintegerNo3Max seconds between requests
debugScreenshotsbooleanNofalseCapture screenshots on errors for debugging

Filtering Options

ParameterTypeDefaultDescription
skipSponsoredbooleanfalseSkip all sponsored/ad listings, only return organic results
skipWithWebsitebooleanfalseOnly return listings WITHOUT a website (for lead generation)
skipWithPhonebooleanfalseOnly return listings WITHOUT a phone number
skipWithoutContactbooleanfalseSkip listings that have neither phone nor email

Website Enrichment (B2B Lead Generation)

ParameterTypeDefaultDescription
enrichWebsiteDatabooleanfalseVisit business websites to extract emails, social links, and contact pages
followContactPagebooleantrueAlso scrape contact pages for additional email addresses

Note: Website enrichment requires residential proxies for reliable results. Business websites often block datacenter IPs.

Usage Examples

Find Restaurants in a City

{
"searchQuery":"restaurants",
"location":["San Francisco, CA"],
"maxResults":50
}

Get Complete Hotel Information

{
"searchQuery":"hotels",
"location":["Miami Beach, FL"],
"maxResults":30,
"scrapeDetails":true
}

Extract Local Service Providers

{
"searchQuery":"plumbers",
"location":["Austin, TX"],
"maxResults":100,
"scrapeDetails":true
}

Multi-Location Search with Parallel Processing

Search multiple cities simultaneously using concurrent browser sessions:

{
"searchQuery":"dentists",
"location":[
"Chicago, IL",
"Houston, TX",
"Phoenix, AZ",
"Philadelphia, PA",
"San Antonio, TX"
],
"maxResults":50,
"browserConcurrency":5,
"scrapeDetails":true
}

This runs 5 browser sessions in parallel, each scraping a different city. With browserConcurrency: 5, all 5 locations are processed simultaneously instead of one-by-one.

International Search

{
"searchQuery":"sushi restaurants",
"location":["Tokyo, Japan"],
"maxResults":40,
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

Lead Generation (Businesses Without Websites)

{
"searchQuery":"cleaning services",
"location":["Amsterdam, Netherlands"],
"maxResults":50,
"skipSponsored":true,
"skipWithWebsite":true,
"skipWithoutContact":true
}

B2B Lead Generation with Enrichment (Emails & Social Links)

{
"searchQuery":"plumber",
"location":["Paris, France","Lyon, France","Marseille, France"],
"maxResults":50,
"browserConcurrency":3,
"enrichWebsiteData":true,
"followContactPage":true,
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

This extracts emails, social media links (Facebook, Instagram, LinkedIn, Twitter/X), and contact page URLs from each business website across all 3 French cities in parallel.

Practical Applications

Lead Generation Find potential customers or partners in specific industries and locations. Extract contact details for outreach campaigns.

Market Research Analyze business density, ratings distribution, and competitive landscape in target markets.

Competitor Analysis Monitor competitors' ratings, review counts, and presence across different locations.

Location Intelligence Map out business distribution for site selection, franchise planning, or market entry decisions.

Data Enrichment Supplement existing business databases with current contact information and ratings.

Running the Extractor

On Apify Platform

  1. Go to Apify Console
  2. Create new Actor from this source
  3. Build the Actor
  4. Set your input parameters
  5. Run and download results

Local Development

npminstall
# Set your Apify token for proxy access
exportAPIFY_TOKEN=your_token
# Create input.json with your parameters
npm start

Performance Tips

Multi-Location Concurrency

When scraping multiple locations, use browserConcurrency to run parallel browser sessions:

LocationsbrowserConcurrencyBehavior
11Single browser, single location
101Sequential: 10 locations one after another
105Parallel: 2 batches of 5 locations each
1010All 10 locations simultaneously

โš ๏ธ Memory considerations: Each browser uses ~500-800 MB RAM.

ConcurrencyRecommended Memory
1-5 browsers4 GB
6-10 browsers8 GB
11-20 browsers16 GB
21-30 browsers32 GB

Speed vs. Completeness

  • scrapeDetails: false โ€” Fast extraction, basic data only (website will be blank)
  • scrapeDetails: true โ€” Gets phone, website, full address (clicks each listing to open sidebar)

Proxy Options

  • Datacenter proxies โ€” Cheapest option, works for basic Google Maps searches but may trigger bot detection
  • Residential proxies โ€” More reliable for large-scale extraction, strongly recommended
  • Residential proxies required โ€” When using enrichWebsiteData (business websites often block datacenter IPs)
  • Keep delays at 1-3 seconds (default)
  • Start with smaller batches to test

โš ๏ธ Important: Without residential proxies, Google Maps may detect unusual activity and block requests. This commonly causes:

  • Reviews failing to load or being empty
  • CAPTCHA challenges appearing
  • Incomplete or missing business data
  • Requests timing out

For reliable review extraction, always use residential proxies.

Cost Optimization

Because this Actor uses Pay Per Event pricing, you only pay for what you use. The optional features below each add their own charges โ€” enable only what you need.

Reduce charges by disabling optional features

FeatureInput flagAdds charges for
Website enrichmentenrichWebsiteDataEvery business with a website
Contact page followfollowContactPageEvery business where a contact page is visited
Review extractionextractReviewsEvery individual review
Review debug screenshotsdebugReviewScreenshotsEvery screenshot taken during review loading
Finish screenshotcaptureFinishScreenshotEvery location processed
Debug screenshotsdebugScreenshotsEvery error screenshot

Proxy and memory

Without proxy โ€” works for many searches, uses minimum resources:

{
"searchQuery":"your search",
"location":["your location"],
"maxResults":100,
"proxyConfiguration":{"useApifyProxy":false}
}

With residential proxies โ€” required for large-scale extraction and website enrichment:

{
"searchQuery":"your search",
"location":["your location"],
"maxResults":500,
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

Memory requirements:

Browser concurrencyRecommended memory
1โ€“54 GB
6โ€“108 GB
11โ€“2016 GB
21โ€“3032 GB

Why residential proxies?

  • Google Maps actively detects and blocks datacenter IPs
  • Residential IPs appear as regular users
  • Much lower chance of CAPTCHAs or blocks
  • Required for enrichWebsiteData (business websites block datacenter IPs)

Reliability by proxy type:

ProxyReliability
None70โ€“80%
Datacenter80โ€“90%
Residential95%+

๐Ÿ’ก Tip: Start without proxies to test your search. If results are incomplete or you encounter blocking, switch to residential proxies.

Best Results

  • Be specific with search queries ("italian restaurants" vs "food")
  • Always include location for targeted results
  • Use realistic maxResults values (Google Maps shows ~60-120 results per search)

Data Accuracy

From Search Results:

  • Name: ~100%
  • Rating: ~90%
  • Review Count: ~90%

With Detail Extraction (scrapeDetails: true):

  • Phone: ~70%
  • Address: ~95%
  • Website: ~60% (requires scrapeDetails, otherwise blank)
  • Hours: ~80%

Some businesses don't list all information publicly.

Troubleshooting

No results returned?

  • Verify the location exists and is spelled correctly
  • Try broader search terms
  • Check that businesses exist for your query in that area

Getting blocked or reviews not loading?

  • Enable residential proxies (datacenter proxies are easily detected by Google)
  • Increase delay settings (minDelay: 2, maxDelay: 5)
  • Reduce batch size
  • Google may show "unusual activity" warnings โ€” residential proxies solve this

Missing contact details?

  • Enable scrapeDetails: true
  • Some businesses simply don't list this information

Technical Details

Stack: Node.js, Puppeteer, Crawlee, Apify SDK

Requirements: Node.js 18+

Concurrency: Supports 1-30 parallel browser sessions for multi-location scraping. Each location gets a fresh, isolated browser instance.

Rate Limiting: Single request per browser (safest for Google Maps). Multiple browsers can run in parallel.

Proxy: Residential proxies strongly recommended

Disclaimer

This project is not affiliated with, endorsed by, or sponsored by Google. Google Maps is a trademark of Google LLC.

This tool extracts publicly available information from Google Maps. Users are responsible for:

  • Complying with Google's Terms of Service
  • Following applicable data protection laws (GDPR, CCPA, etc.)
  • Using extracted data ethically and legally

Support

Having issues? Check:

  1. Input parameters are valid
  2. Proxy configuration is correct
  3. Search returns results when done manually
  4. Actor logs for specific errors

You might also like

Meta Brand Collaboration Scraper

apify/brand-collaboration-scraper

Extract branded content partnerships from Meta Ad Library. Get creators, brand partners, content types, dates, and links from Instagram and Facebook. Enrich with profile and post details. Export data, schedule runs via API, and integrate with other tools or AI workflows workflows.

Linkedin AI agent

anchor/linkedin-gpt-prompt

Extract LinkedIn profiles, and uses ChatGPT magic automatically on each profile ! Your prompt, the answer you need, the way you want. The ideal LinkedIn AI Agent

Instagram Lookalike Search

dataovercoffee/instagram-lookalike-search

๐Ÿ”ฎ Lookalike Instagram creators + ๐Ÿฐ search engagement stats from 150M+ influencers.

๐Ÿ‘ User avatar

Data Over Coffee

17

5.0

Google Maps Scraper

igview-owner/google-maps-scraper

Scrape Google Maps search results in minutes. extracts business names, addresses, phone numbers, websites, ratings, reviews, and coordinates from Google Maps for any keyword or location.

๐Ÿ‘ User avatar

Sachin Kumar Yadav

253

4.7

Google Maps Business Scraper

techionik9993/google-maps-business-scraper

Fast Google Maps lead scraper for clean business lists. Extract names, categories, ratings, addresses, phone numbers, websites, and Google Maps URLs from keyword and location searches.

10

5.0

Google Maps Scraper $0.50 Per 1K

coder_luffy/google-maps-scraper

Google Maps Scraper collects business listings from Google Maps search results, returning names, addresses, phone numbers, websites, ratings, and GPS coordinates for any business type and location