Google Maps Scraping: Complete Guide to API, Reviews & Data Extraction
Google Maps Scraping: Complete Guide to API, Reviews & Data Extraction
You want to extract business data from Google Maps. Maybe you're building a lead list. Maybe you're analyzing your competitors. Maybe you're researching market trends.
Here's the problem: Google Maps has 200 million+ businesses indexed. Manually collecting that data takes forever. The official API has limits. Free tools often break. And nobody clearly explains what's actually possible vs. what's hype.
This guide cuts through the noise. We'll walk through the official Google Maps API, explain its real limitations, show you what review data you can actually access, and introduce you to purpose-built tools that handle this at scale.
By the end, you'll know exactly which approach fits your use case — and how to avoid wasting time on solutions that don't work.
What Is Google Maps Scraping?
Google Maps scraping means extracting structured data from Google Maps listings. That includes:
- Business names, addresses, phone numbers
- Websites and email addresses
- Ratings and review counts
- Review text, dates, and authors
- Business hours and categories
- Photos and social profiles
The data is publicly visible on Google Maps. Scraping just means collecting it programmatically instead of manually copying each entry.
There are three ways to do this:
- Official Google Maps API — Built by Google, limited but reliable
- Custom Python/Selenium scrapers — Flexible but requires coding and maintenance
- Specialized scraping tools — Pre-built databases, no code needed, optimized for speed
Each has tradeoffs. Let's explore them.
The Official Google Maps API: How It Works
Google offers multiple APIs grouped into four categories: Maps, Routes, Places, and Environment. For business data and reviews, you want the Places API (specifically the Place Details endpoint).
Setting Up the Google Maps API
Here's the actual process:
Step 1: Create a Google Cloud Project
Go to console.cloud.google.com. Click "Select a project" → "New project". Give it a name. Click "Create". This takes 30 seconds.
Step 2: Enable the Places API
In the Google Cloud Console, find "APIs & Services" → "Library". Search for "Places API" (pick the newest version, not the legacy one). Click it. Click "Enable".
Step 3: Create an API Key
Go to "Credentials" → "Create Credentials" → "API Key". Copy it. Keep it safe — this key unlocks your quota.
Step 4: Get a Place ID
The Google Maps API doesn't accept business names directly. It needs a Place ID — a unique identifier for each business.
You can find Place IDs by:
- Using the Text Search endpoint (searches by name, returns Place IDs)
- Using the Nearby Search endpoint (searches by location + category, returns Place IDs)
- Manually finding them on Google Maps (inspect the URL or use a free finder tool)
Step 5: Call the Place Details Endpoint
Once you have a Place ID, you can request data. Here's what a basic request looks like:
GET https://maps.googleapis.com/maps/api/place/details/json?
place_id=ChIJIQBpAG2dC4gR_6128GltTXQ&
fields=name,rating,user_ratings_total,reviews&
key=YOUR_API_KEY
The fields parameter specifies what data you want. Common ones:
name— Business nameformatted_address— Full addressformatted_phone_number— Phonewebsite— Website URLrating— Average rating (0-5)user_ratings_total— Total number of reviewsreviews— Sample reviews (limited)opening_hours— Business hoursphotos— Photo metadata
The response comes back as JSON:
{
"result": {
"name": "Belmont University",
"rating": 4.6,
"user_ratings_total": 1247,
"reviews": [
{
"author_name": "Sarah M",
"rating": 5,
"text": "Great campus, friendly staff...",
"time": 1609459200
}
]
},
"status": "OK"
}
The Real Limitations of the Official API
Here's where most people hit a wall.
Limitation 1: Review Access Is Severely Restricted
The Place Details API returns only 5 sample reviews per request. You don't get to choose which 5. You don't get all reviews. Just 5, randomly selected from recent ones.
If you want all reviews for a business, you need to use the Google Business Profile API — which requires you to own the business. You need the business's account ID, which you can only get by claiming the listing yourself.
So: extract segmentation data (ratings, review counts)? Yes, easily. Extract full review history? Only if you own the business.
Limitation 2: Rate Limiting
Google limits API calls. Exact limits vary by API endpoint:
- Text Search: 1 request per second per API key
- Nearby Search: 1 request per second
- Place Details: No strict per-second limit, but quotas apply
If you need to extract 50,000 businesses, you're looking at hours of requests (even at 1 per second = 13+ hours minimum).
Limitation 3: Monthly Quota
Google charges per request after your free tier. Pricing:
- Text Search / Nearby Search: $0.032 per request (after 25,000 free/month)
- Place Details: $0.017 per request (after 100,000 free/month)
Extracting 100,000 businesses at $0.017 each = $1,700. That's before you account for the multiple requests needed per business (one to find the Place ID, one to get details, etc.).
Limitation 4: No Country-Wide Searches
The Nearby Search API searches within a radius. To search an entire country, you'd need to grid it out (divide it into thousands of circles) and make a request for each. That multiplies your costs and time.
Limitation 5: No Technology Detection
The API doesn't tell you what tech stack a business uses (WordPress, Shopify, HubSpot, etc.). It doesn't enrich emails from the website. It doesn't match businesses to company registries (like SIRET in France).
When the Official API Makes Sense
Use the Google Maps API if:
- You need real-time data for a small number of businesses (< 1,000)
- You're building an app that uses Maps as a feature, not the core product
- You have budget for API costs (expect $500-5,000+ monthly for serious volume)
- You own businesses and want to access your own review data
Otherwise, the API becomes expensive and slow quickly.
Custom Scrapers: Python, Selenium, and DIY Approaches
Some people build their own scrapers using Python libraries like Selenium (automates a browser) or BeautifulSoup (parses HTML).
How DIY Scraping Works
The basic idea:
- Automate a browser to visit Google Maps
- Search for businesses in a location/category
- Extract HTML from the page
- Parse the HTML to find names, ratings, addresses, etc.
- Save to CSV
Here's a simplified Python example using Selenium:
from selenium import webdriver
from selenium.webdriver.common.by import By
import csv
driver = webdriver.Chrome()
driver.get("https://www.google.com/maps")
# Search for "plumbers in New York"
search_box = driver.find_element(By.ID, "searchboxinput")
search_box.send_keys("plumbers in New York")
search_box.submit()
# Wait for results to load
time.sleep(3)
# Extract business listings
listings = driver.find_elements(By.CLASS_NAME, "Nv2PK")
data = []
for listing in listings:
name = listing.find_element(By.CLASS_NAME, "qBF1Pd").text
rating = listing.find_element(By.CLASS_NAME, "MW4etd").text
data.append({"name": name, "rating": rating})
# Save to CSV
with open("businesses.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=["name", "rating"])
writer.writerows(data)
driver.quit()
Why DIY Scraping Breaks
Google actively blocks scrapers. Here's what happens:
- CAPTCHAs — Google detects automated browser activity and shows CAPTCHAs
- IP Blocking — Google blocks your IP after multiple rapid requests
- HTML Changes — Google updates their website structure. Your CSS selectors break. You rewrite code. Repeat every 2-3 months.
- Rate Limiting — Google throttles your requests or bans your IP entirely
- Time Investment — Building, testing, and maintaining a scraper takes 40+ hours. Fixing it when it breaks takes another 10+ hours per incident.
For a side project? Maybe acceptable. For a business that depends on this data? It's a nightmare.
Reviews Extraction: What's Actually Possible
Reviews are where scraping gets interesting — and complicated.
Review Data You Can Extract
From Google Maps, you can access:
- Review text — The actual comment left by the reviewer
- Rating — 1-5 stars
- Reviewer name — The Google account name (sometimes anonymous)
- Date posted — When the review was published
- Reviewer photo — Profile picture URL
- Review count — Total number of reviews per business
This data is publicly visible. Anyone can read it on Google Maps. Extracting it programmatically is just faster.
The Official API Limitation
As mentioned, the Google Maps API returns only 5 sample reviews per business. You can't get all reviews through the official API unless you own the business.
This is intentional. Google wants to prevent bulk review scraping for competitive intelligence. They also want to prevent review manipulation (detecting fake reviews).
Workarounds (With Caveats)
Option 1: Use the Google Business Profile API
If you own the business, you can access all reviews via the Google Business Profile API. But this requires authentication and only works for your own listings.
Option 2: Build a Custom Scraper
You can scrape reviews by automating a browser to:
- Visit each business's Google Maps page
- Scroll through the reviews section
- Extract review text and metadata
- Handle CAPTCHAs and blocking
This works in theory, but:
- It's slow (each business takes 30+ seconds to scrape)
- It breaks frequently as Google changes their site
- It requires proxy rotation to avoid IP bans
- Google's ToS discourages it
Option 3: Use a Pre-Built Tool
Tools like IBLead, IBLead, and OutScraper maintain pre-indexed databases of Google Maps listings including review data. They handle the scraping once, store the data, and let you query it.
This is the most reliable approach for reviews at scale.
Is Google Maps Scraping Legal?
This is the question everyone asks.
The short answer: Scraping publicly available data is generally legal, but it's complicated.
What the Law Says
In the United States:
- Scraping public data is legal under the Computer Fraud and Abuse Act (CFAA) — as long as you're not breaking into systems or violating explicit terms
- The courts have sided with scrapers in cases like hiQ Labs v. LinkedIn (2017)
- However, Google's Terms of Service explicitly prohibit scraping
In the European Union:
- GDPR applies. You can't scrape personal data (reviewer names, emails, etc.) without consent
- Scraping business data (names, addresses, ratings) is generally legal
- You must comply with GDPR if you process or store any personal data
In Other Countries:
- Most countries allow scraping of public data
- Always check local laws
The Practical Reality
Google can't sue you for scraping. But they can:
- Block your IP — If you scrape too aggressively, your IP gets banned
- Send a cease-and-desist — They've done this to some scrapers
- Change their website — Break your scraper
The safest approach: Use tools that respect Google's infrastructure (like pre-indexed databases) rather than hammering their servers with requests.
Two Types of Data: Segmentation vs. Analysis
When you extract Google Maps data, you're usually after one of two things.
Segmentation Data (For Prospecting)
This is data that helps you categorize and target leads:
- Rating — Which businesses have high ratings vs. low ratings
- Review count — Which have lots of reviews vs. few
- Rating breakdown — What percentage have 5 stars vs. 1 star
- Business hours — Which are open now vs. closed
- Claimed status — Which businesses have claimed their Google profile
Example use case: You sell reputation management software. You want to find businesses with ratings below 3 stars. Segmentation data lets you filter for exactly that.
Analytical Data (For Intelligence)
This is data that helps you understand trends and sentiment:
- Review text samples — What are customers saying?
- Common keywords in reviews — What do people mention most?
- Review trends over time — Are ratings improving or declining?
- Reviewer demographics — Who's leaving reviews?
Example use case: You're a restaurant owner. You want to understand why your competitor has a 4.8 rating. You analyze their reviews to see what they're doing right.
Which Do You Need?
Most businesses need segmentation data (for lead gen). Some need analytical data (for competitive intelligence). The best tools provide both.
Scraping Tools: Comparison of Approaches
Let's compare the three methods side-by-side:
| Factor | Official API | DIY Scraper | Pre-Built Tool |
|---|---|---|---|
| Setup time | 30 min | 40+ hours | 5 min |
| Cost (10K businesses) | $500-1,700 | $0 (your time) | $35-100 |
| Maintenance | Low | High (breaks often) | None (tool owner maintains) |
| Review access | 5 samples only | Full (if working) | Full (if included) |
| Speed | Slow (rate limited) | Very slow | Fast (pre-indexed) |
| Reliability | High | Low | High |
| Learning curve | Medium | High | None |
| Best for | Small datasets, real-time | Learning/experimentation | Production use |
How to Choose Your Scraping Method
Choose the Official API if:
- You need real-time data (current hours, current ratings)
- You're extracting < 5,000 businesses
- You have budget for API costs
- You're building a Maps-powered app
Choose a DIY Scraper if:
- You're learning programming
- You have time to maintain it
- You only need data once or occasionally
- You're willing to accept downtime
Choose a Pre-Built Tool if:
- You need data at scale (10,000+)
- You need it reliably and fast
- You want reviews included
- You want to avoid technical headaches
IBLead: Pre-Indexed Google Maps Data at Scale
Here's the reality: Most businesses don't need real-time data. They need reliable, fast access to large datasets.
That's where pre-indexed databases come in. IBLead maintains a database of 50M+ businesses across 37 countries. The database is updated monthly. You search by city, region, country, or category. You export to CSV in seconds.
What You Get With IBLead
Every export includes:
- Contact info — Name, address, phone, email (enriched from website)
- Ratings & reviews — Average rating, review count, full review text, dates, authors
- Business details — Hours, website, categories, claimed status
- Technology detection — 160+ technologies detected (WordPress, Shopify, HubSpot, etc.)
- Social profiles — LinkedIn, Facebook, Instagram URLs
- Advanced metadata — GPS coordinates, Google Place ID, photos count
For France specifically: SIRET, SIREN, APE code, and business owner name (matched automatically with INSEE Sirene data).
Pricing
| Plan | Credits/month | Price |
|---|---|---|
| Free | 5,000 | €0 |
| Starter | 10,000 | €44/month |
| Pro | 20,000 | €89/month |
| Business | 40,000 | €179/month |
| Enterprise | 100,000 | €449/month |
1 credit = 1 business exported. All features (reviews, tech detection, filters) are included in every plan.
Example: Finding Businesses With Bad Reviews
Let's say you sell reputation management software. You want to find restaurants with ratings below 3 stars.
With the official API:
- Get Place IDs for restaurants in France (thousands of requests, hours of time)
- Call Place Details for each (more requests, more money)
- Filter by rating
- Cost: $500-1,000+
- Time: 4-8 hours
- Result: 5 sample reviews per business (not all reviews)
With IBLead:
- Log in to app.iblead.com
- Search: Category = "Restaurant", Country = "France", Rating ≤ 3
- Click "Export"
- Get CSV with all matching businesses, full reviews, contact info
- Cost: €44/month (Starter plan)
- Time: 2 minutes
- Result: All reviews, all data, ready to use
You can immediately send personalized emails: "I noticed your restaurant has a 2.8 rating on Google Maps. One reviewer mentioned slow service. We help restaurants improve their online reputation. Let's talk."
Reviews Are the Differentiator
IBLead is one of the few tools that scrapes full Google Maps reviews. Most competitors (like IBLead) give you ratings and review counts, but not the actual review text.
With review text, you can:
- Identify common complaints (slow service, rude staff, etc.)
- Personalize your pitch
- Do sentiment analysis
- Build competitive intelligence
Technology Detection
IBLead detects 160+ technologies. Examples:
- CMS: WordPress, Shopify, Wix, Squarespace
- Analytics: Google Analytics, Hotjar, Mixpanel
- CRM: HubSpot, Salesforce, Pipedrive
- Email: Mailchimp, ConvertKit, ActiveCampaign
- Payment: Stripe, PayPal, Square
Use case: You sell WordPress plugins. Search for all businesses using WordPress in your city. Export their contact info. Send targeted emails.
Practical Example: Lead Generation Campaign
Let's walk through a real-world scenario.
Goal: Find plumbers in New York with < 4.2 rating and < 50 reviews (likely small businesses, easier to convert).
Step 1: Define Your Search
- Category: Plumbers
- Location: New York, USA
- Filters: Rating ≤ 4.2, Reviews ≤ 50
Step 2: Extract Data
Using IBLead:
- Go to app.iblead.com
- Search: "Plumbers" in "New York"
Ready to get started?
Access every Google Maps business, enriched with emails and legal data.
Try IBLead freeRelated articles
10 Proven Tips to Get Customers to Leave More Google Reviews on Maps
Learn 10 actionable strategies to increase Google Maps reviews. Timing, incentives, QR codes, and response tactics that actually work.
7 Cold Email Mistakes to Avoid: Examples & Templates
Avoid these 7 cold email mistakes to avoid examples that kill response rates. Real examples, AIDA templates, and proven fixes for better outreach.
ABM Google Maps Data: The Complete Strategic Guide
Learn how abc account based marketing google maps data drives 208% more revenue. Build precise target lists with 50M+ pre-indexed businesses.