Google Maps Business Scraper – Extract Leads Free
Pricing
$15.00/month + usage
Google Maps Business Scraper – Extract Leads Free
Extract Google Maps business data like contacts, reviews, and locations from search URLs and export it for analysis and outreach.
Pricing
$15.00/month + usage
Rating
0.0
(0)
Developer
Sovanza
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Maps Business Scraper – Extract Leads, Reviews & Insights
Extract Google Maps business data including names, phone numbers, websites, reviews, ratings, and locations with this scraper. Ideal for lead generation, local SEO, and competitor analysis. Export in JSON, CSV, or Excel format from your Apify dataset.
What is Google Maps Scraper?
Google Maps Scraper is a local business data extraction tool built on Apify that pulls business listings, contact details, reviews, and location data from Google Maps using search URLs and/or Place IDs. It is designed for:
- Lead generation agencies
- SEO professionals
- Sales teams
- Local businesses
- Data analysts
Instead of manually searching and copying data, you can extract many business leads in a structured dataset for outreach and analysis.
Why This Google Maps Scraper is Powerful
This actor is built for real business outcomes (leads → outreach → analysis):
- Extract high-quality local business leads (name, phone, website, address, coordinates)
- Collect review text (author, rating, date) up to your configured limit per place
- Analyze ratings, review counts, and listing details for competitor research
- Scale across cities and industries by running multiple search URLs in one actor run
- Automate data collection via Apify API, schedules, and webhooks
Note: This actor does not crawl linked websites for email addresses. You get phone, website URL, and social links from Maps where shown; use your own enrichment workflow if you need emails.
What Data Does Google Maps Scraper Extract?
This actor outputs one dataset item per business. Fields reflect what is available on Google Maps for that listing (DOM changes can occasionally affect individual fields).
Business information
- Business name
- Category / industry
- Full address; city and postal code (parsed from address when possible)
- Google Maps URL and Place ID
Contact details
- Phone number
- Website URL
- Social media links (when present on the listing)
Reputation and engagement
- Average rating and review count
- Reviews array:
authorName,rating,date,text(up tomaxReviewsper business)
Location data
- Latitude and longitude (when available from the page/URL)
Additional insights
- Opening hours (as scraped from the panel)
- Business status (e.g. open/closed where shown)
- Price level where available
- Photos count and image URLs (
images) — in fast mode (lowmaxReviews) image extraction may be reduced for speed - Popular times (when exposed in the UI; structure may vary)
- Scrape timestamp (
timestamp)
➡️ All structured fields are exportable as JSON, CSV, or Excel from the Apify dataset.
Advanced Features
- Flexible input: One or more Google Maps search URLs (e.g. “Restaurants in Dubai”) and/or Place IDs for direct place pages.
- Pagination: Scrolls the results list to load up to
maxResultsbusinesses per search URL. - Bulk extraction: Combine multiple
searchUrlsandplaceIdsin a single run. - Concurrency:
maxConcurrencycontrols how many places are processed in parallel (see timeouts below). - Proxy country: Optional Apify Proxy country selection to reduce blocks.
- Automation: Apify API, schedules, webhooks, and integrations (Sheets, Zapier, Make, CRMs via API).
How to Use Google Maps Scraper on Apify
Using the actor
- Open Google Maps Business Scraper on the Apify platform.
- Configure Input (see below). For larger runs with reviews, increase Run timeout in Run options (default Apify timeout is often 300 seconds).
- Click Start.
- Open the Dataset tab and export JSON, CSV, or Excel, or pull results via the Apify API.
Local development
Option A — run script (recommended):
cd google-maps-business-scraper.\run_local.ps1
Creates a .venv, installs dependencies, installs Playwright Chromium, and runs main.py. Use INPUT.json for input; if missing, defaults from the actor apply.
Option B — manual:
pip install -r requirements.txtplaywright install chromiumpython main.py
Local output is written to output.json in the actor folder (same shape as the Apify dataset).
Input configuration
Example INPUT.json:
{"searchUrls": ["https://www.google.com/maps/search/Restaurants+in+Dubai"],"placeIds": [],"maxResults": 100,"maxReviews": 20,"maxConcurrency": 2,"proxyCountry": "AUTO_SELECT_PROXY_COUNTRY"}
| Field | Type | Description |
|---|---|---|
searchUrls | array | One or more Google Maps search URLs. Results are loaded with pagination/infinite scroll. |
placeIds | array | Optional: Google Place IDs to open place pages directly (e.g. ChIJ…). |
maxResults | integer | Maximum businesses per search URL (default 100, max 1000). With many results and reviews, raise Run timeout (e.g. 600–900 s). |
maxReviews | integer | Max reviews per business (0 skips reviews). Use 5 or fewer for faster runs. |
maxConcurrency | integer | Places scraped in parallel (1–4, default 2). Lower if runs time out. |
proxyCountry | string | AUTO_SELECT_PROXY_COUNTRY, US, GB, AE, SA, DE, FR — for use with Apify Proxy. |
Output
Each dataset item follows .actor/dataset_schema.json. Typical fields:
| Field | Description |
|---|---|
businessName | Business name |
category | Category / type |
googleMapsUrl | Link to the place on Google Maps |
placeId | Place ID |
address | Full address string |
city | Parsed city when possible |
postalCode | Postal code when detected in address |
latitude, longitude | Coordinates (nullable) |
phone | Phone number |
website | Website URL |
socialMediaLinks | Array of social URLs |
rating | Average rating |
reviewCount | Total review count |
priceLevel | Price level when shown |
openingHours | Hours text |
businessStatus | Status (e.g. open/closed) |
photosCount | Photo count when available |
images | Array of image URLs |
reviews | Array of { authorName, rating, date, text } |
popularTimes | Popular times objects when available |
timestamp | ISO scrape time |
Example (illustrative; real pages vary):
{"businessName": "Example Cafe","category": "Cafe","googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ...","placeId": "ChIJ...","address": "123 Main St - Dubai - United Arab Emirates","city": "Dubai","phone": "+971 4 000 0000","website": "https://example.com","rating": "4.5","reviewCount": "120","reviews": [{"authorName": "Jane D.","rating": "5","date": "Jan 2025","text": "Great coffee and service."}],"latitude": 25.2048,"longitude": 55.2708,"timestamp": "2025-03-30T12:00:00.000Z"}
On failure after retries, the actor may push an item that includes an error field (not part of the static dataset schema file).
How extraction works
- Search flow: Opens each
searchUrl, scrolls the results feed (_scroll_results_panel) to load up tomaxResultsitems, collects place links, then opens each place and runsextract_business_from_detail_panel(). - Place ID flow: Opens the place URL for each ID and uses the same extraction logic.
- Selectors live in
extract_business_from_detail_panel()and related helpers. Google’s DOM changes over time; missing fields may require selector updates inmain.py.
Performance and timeouts
- Default Apify run timeout is often 300 seconds. If the run stops with few results, open Run options and set Timeout to 600 or 900 seconds.
- Fast mode (when
maxReviewsis low, e.g. ≤ 5): shorter waits and lighter image work so more places can finish within tight timeouts. maxReviews: 0: Skips review scraping for maximum throughput.maxConcurrency: If jobs still time out, try 1.
Proxy and reliability
- Use Apify Proxy on the platform;
proxyCountryselects region when using proxy. - The actor rotates user agents and applies random delays between actions to reduce blocking.
API route (example)
See routes/google_maps.example.js for a sample POST /api/scraper/google-maps handler that calls this actor and returns { success, data }. Point it at your Apify actor ID and APIFY_TOKEN as needed.
FAQ
How can this scraper help with lead generation?
It collects business names, phones, websites, addresses, and coordinates from Maps listings in bulk, so you can build outreach lists without manual copy-paste.
Does this actor extract emails?
No. It does not visit business websites to parse emails. Use the website field with your own enrichment tools or processes if you need email addresses.
How accurate is the data?
Data is taken from live Maps UI. Business owners can change listings at any time—validate critical fields before campaigns.
Can I scrape multiple cities?
Yes. Add multiple searchUrls (one query per city or niche) or run separate searches; combine with maxResults per search.
How do I use this for local SEO?
Export competitors’ ratings, review counts, and review text for a location to compare positioning and messaging.
Can agencies use this for prospecting?
Yes—filter by category and area, then prioritize businesses by rating, review volume, or missing website fields (as present in your export).
Can I automate runs?
Yes—Apify schedules, API, and webhooks support recurring extraction and downstream CRM or sheet workflows.
What is the best way to maximize coverage?
Use distinct search queries (e.g. different categories) rather than repeating the same keyword, and tune maxResults and maxReviews for your time budget.
Is scraping Google Maps allowed?
Only use data in compliance with Google’s terms of service and applicable privacy and marketing laws. Use collected data responsibly, especially for commercial outreach.
SEO keywords (high-intent)
google maps scraper, google maps data scraper, google maps lead scraper, google maps business scraper, scrape google maps data, google maps scraping api, local business scraper, lead generation scraper, google maps leads tool
Limitations
- No email extraction from websites in this actor.
- Field availability depends on what Google shows for each listing; some fields may be empty.
- Heavy review counts and high
maxResultsneed longer run timeouts and may hit rate limits—tunemaxReviews,maxConcurrency, and proxy settings.
License
Use and deploy in line with Apify’s terms and your own compliance obligations. See your repository or Apify actor settings for license details if specified.