Google Maps Scraper - Reviews, Email, Lead Score, 50+ Fields
Pricing
from $0.00005 / actor start
Google Maps Scraper - Reviews, Email, Lead Score, 50+ Fields
Extract 50+ data fields from Google Maps: phone, website, email, review texts, opening hours, ratings, images, lead score, business attributes. v4.0 adds review extraction, lead scoring, business attributes, aggregate stats. HTTP-only engine - 10x faster, no browser.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Daniel Ramacher
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Google Maps Scraper — 40+ Data Fields per Place
The fastest and most feature-rich Google Maps scraper on Apify. Built with a lightweight HTTP-only engine — no browser, no bloat, no overhead. Runs in seconds, not minutes.
Extract 50+ data fields per place: review texts, name, address, phone, website, opening hours, images, ratings, lead score, business attributes, price level, categories, coordinates, and more.
✨ Features
| Feature | Description |
|---|---|
| 50+ Fields per Place | Review texts, name, address, phone, website, rating, opening hours, images, price level, categories, coordinates, lead score, business attributes, and more |
| Review Extraction | Real review texts with author name, rating, and date — extracted from JSON-LD structured data |
| Lead Scoring | Automatic 0-100 lead quality score based on contact info, ratings, and data completeness |
| Business Attributes | Women-owned, LGBTQ+ friendly, veteran-owned, claimed status, and more identity attributes |
| Structured Address | Address broken into street, number, city, postal code, state, country |
| Aggregate Statistics | Per-query stats: average rating, rating distribution, price level distribution, data coverage % |
| HTTP-only Engine | No Playwright, no Chromium, no browser overhead — pure HTTP requests with TLS fingerprinting |
| Blazing Fast | Runs in seconds (not minutes) — up to 10× faster than browser-based scrapers |
| Batch Queries | Run multiple search queries in a single execution |
| Multi-language | Results in German, English, French, Spanish, Italian, Dutch, Polish, Turkish, Russian, Arabic, Chinese, Japanese, Korean |
| Email Extraction | Extracts email addresses from business detail pages |
| Lead Generation Ready | Structured address components, phone, website, lead score — perfect for sales prospecting |
| SEO Analysis | Categories, ratings, review counts, price levels for competitive research |
🚀 Quick Start
1. Via Apify Console (Recommended)
- Go to Opencalw Google Maps Scraper on Apify Store
- Click Try for free or Start
- Enter your search queries:
{"queries": ["Cafe Berlin", "Restaurant Munich", "Dentist Hamburg"],"maxPlaces": 50,"scrapePlaceDetails": true,"language": "de"}
- Click Run and wait for results (typically 5-30 seconds)
2. Via API
curl "https://api.apify.com/v2/acts/opencalw-google-maps-reviews/runs?token=YOUR_API_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"queries": ["Cafe Berlin", "Restaurant Munich"],"maxPlaces": 50}'
📋 Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | array[string] | — | Required. List of search terms (e.g., ["Cafe Berlin", "Pizzeria Munich"]) |
maxPlaces | integer | 50 | Max places per query (max: 500) |
scrapePlaceDetails | boolean | true | Fetch opening hours, images, price level, full contact details |
maxReviews | integer | 3 | Max review texts to extract per place (0-10). Extracts author, rating, text, date |
includeBusinessAttributes | boolean | true | Detect women-owned, LGBTQ+ friendly, veteran-owned, claimed status |
includeLeadScore | boolean | true | Calculate lead quality score (0-100) for each place |
language | enum | "de" | Google Maps interface language (de, en, fr, es, it, nl, pt, pl, tr, ru, ar, zh, ja, ko) |
📤 Output Example
Each place returns 40+ fields. Here's a sample:
{"name": "Coffee Fellows","address": "Friedrichstraße 123, 10117 Berlin","street": "Friedrichstraße","streetNumber": "123","city": "Berlin","postalCode": "10117","phone": "+49 30 123456789","website": "https://coffee-fellows.de/berlin","rating": 4.3,"reviewCount": 1247,"priceLevel": "$$","category": "Coffee Shop","placeId": "ChIJ...","coordinates": {"lat": 52.5200,"lng": 13.4050},"openingHours": [{ "day": "Monday", "hours": "07:00–20:00" },{ "day": "Tuesday", "hours": "07:00–20:00" },{ "day": "Wednesday", "hours": "07:00–20:00" },{ "day": "Thursday", "hours": "07:00–20:00" },{ "day": "Friday", "hours": "07:00–22:00" },{ "day": "Saturday", "hours": "08:00–22:00" },{ "day": "Sunday", "hours": "09:00–18:00" }],"images": [{ "url": "https://lh5.googleusercontent.com/...", "alt": "Coffee Fellows Interior" },{ "url": "https://lh5.googleusercontent.com/...", "alt": "Coffee Fellows Menu" }],"totalScore": 4.3,"url": "https://www.google.com/maps/place/?q=place_id:ChIJ..."}
Full Field List (50+)
| # | Field | Description |
|---|---|---|
| 1 | name | Place name |
| 2 | address | Full address |
| 3 | addressComponents | Structured address (street, number, city, postalCode, state, country) |
| 4 | phone | Phone number |
| 5 | website | Website URL |
| 6 | email | Email address |
| 7 | rating | Average rating (1.0–5.0) |
| 8 | reviewCount | Number of reviews |
| 9 | priceLevel | Price level ($/$$/$$$/$$$$) |
| 10 | category | Business category |
| 11 | placeId | Google Maps Place ID |
| 12 | coordinates | Lat/Lng coordinates |
| 13 | openingHours | Hours per weekday |
| 14 | images | Photo URLs (up to 5) |
| 15 | reviews | Review texts with author, rating, date (up to 5) |
| 16 | leadScore | Lead quality score (0-100) |
| 17 | businessAttributes | Women-owned, LGBTQ+ friendly, veteran-owned, etc. |
| 18 | claimedStatus | Claimed/unclaimed/unknown |
| 19 | url | Google Maps URL |
| 20+ | More fields | Accessibility, payments, amenities, hotel details, and more |
💰 Pricing
| Volume | Price | Cost per 1,000 |
|---|---|---|
| 1,000 places | $1.00 | $1.00 |
| 10,000 places | $10.00 | $1.00 |
| 100,000 places | $100.00 | $1.00 |
Free tier: 10 free results to test before you buy.
Why so affordable?
Our HTTP-only engine eliminates the expensive browser overhead. No Chromium, no Playwright, no 2GB Docker images — just pure HTTP requests with Chrome TLS impersonation. This makes us:
- Up to 10× cheaper than browser-based competitors
- Up to 10× faster per run
- More reliable (no browser crashes, no memory leaks)
Comparison
| Scraper | Price/1k | Engine | Fields | Reviews | Lead Score | Bus. Attr. | Browser? |
|---|---|---|---|---|---|---|---|
| Opencalw (this) | $1.00 | HTTP-only | 50+ | ✅ Up to 5 | ✅ 0-100 | ✅ Yes | No |
| compass/crawler-google-places | $2.10 | HTTP + Browser | 60+ | ✅ (Paid) | ❌ | ✅ (Limited) | Partial |
| scraperlink/google-maps-scraper | $0.50 | HTTP-only | 40+ | ❌ | ❌ | ❌ | No |
| solidcode/google-maps-scraper | $2.50 | HTTP-only | 30+ | ❌ | ❌ | ✅ | No |
| vortex_data/google-maps | $1.00 | HTTP-only | 46 | ❌ | ❌ | ❌ | No |
🎯 Use Cases
1. Lead Generation
Build prospect lists from Google Maps. Extract phone numbers, websites, and addresses for any industry in any city. Perfect for sales teams, real estate agents, and B2B lead generation.
Example: Find all "Dentist in Munich" — get 500 leads with phone, website, and address.
2. Local SEO Analysis
Monitor your business listings across Google Maps. Track rating changes, review counts, and competitor activity. Ideal for SEO agencies and multi-location businesses.
3. Market Research
Analyze entire industries by location. Compare price levels, ratings, and density of competitors. Understand market saturation before opening a new location.
4. Restaurant & Hospitality
Extract menus, opening hours, price ranges, and ratings for restaurants in any city. Build recommendation engines or competitive analysis dashboards.
5. Real Estate
Find agents, agencies, and property developers by location. Extract contact details and ratings for targeted outreach.
⚡ Performance
| Metric | Browser-based | Opencalw HTTP-only |
|---|---|---|
| Cold start | 30-60s (Chrome download) | < 1s |
| 50 places | 30-90s | 3-10s |
| 500 places | 5-15 min | 30-60s |
| RAM usage | 500MB-2GB | ~50MB |
| Docker image | 1-2GB | ~200MB |
| Reliability | Browser crashes | Stable |
Part of the Opencalw Ecosystem
Maximize your data extraction with our complete suite of social media and local search scrapers:
| Actor | Price | Data |
|---|---|---|
| Google Maps Scraper v4.0 (this) | $0.08/place | Reviews, lead score, 50+ fields |
| Instagram Hashtag Tracker v2.0 | $0.05/post | Posts by hashtag, likes, comments, engagement |
| YouTube Video Scraper v1.0 | $0.03/video | Search, metadata, views, likes, comments |
| TikTok Video Scraper v1.0 | $0.04/video | Search, trending, hashtag, stats, author info |
Bundle discount: Use multiple actors and save on volume pricing.
FAQ
Is this legal?
Yes. This scraper accesses publicly available information on Google Maps — the same data you see when you visit maps.google.com in your browser. It does not bypass authentication, access private data, or violate any laws. Always respect Google's Terms of Service and applicable data protection regulations (GDPR, CCPA).
What's the difference between this and compass/crawler-google-places?
compass is the market leader with 400K+ users and 60+ fields. Opencalw is the smarter alternative: same quality data, 50+ fields, plus unique features like lead scoring, review text extraction, and business attributes — all at half the price ($1.00 vs $2.10 per 1k). Our HTTP-only engine means faster runs and fewer failures.
How is this different from scraperlink/google-maps-scraper?
Both use HTTP-only engines. scraperlink is $0.50/1k with 40+ fields — very competitive. Opencalw differentiates through review text extraction, lead scoring, business attributes, detailed opening hours, image extraction, and multi-language support — features scraperlink doesn't offer.
Can I run this locally (not on Apify)?
Yes! The actor is open-source. Clone the repository, install dependencies (pip install -r requirements.txt), and run python main.py. Note that you'll need to handle Apify-specific features (push_data, input) yourself.
What languages are supported?
We support 14 languages: German, English, French, Spanish, Italian, Dutch, Polish, Turkish, Russian, Arabic, Chinese, Japanese, and Korean.
What's the maximum number of places I can scrape?
Up to 500 places per query, with multiple queries per run. Need more? Contact us for custom enterprise plans.
How are lead scores calculated?
Lead scores (0-100) use a weighted heuristic: email (25pts), phone (15pts), website (10pts), high rating (15pts), reviews (10pts), data completeness (20pts), and premium indicators (5pts). Higher scores mean better sales prospects.
Can I get the aggregate statistics?
Yes! Aggregate stats (average rating, distribution, coverage %, top categories) are saved to the key-value store under the key AGGREGATE_STATS after each run.
🔧 Technical Details
How It Works
- HTTP Request —
curl_cffisends requests with Chrome 131 TLS fingerprint - Google Maps API — Targets the same internal endpoints as the Maps frontend
- HTML Parsing — BeautifulSoup + lxml extract structured data
- JSON Extraction — Embedded JSON (
__INITIAL_STATE__) parsed for structured fields - JSON-LD Parsing — Structured data (
application/ld+json) extracted for reviews, ratings, address - Business Attribute Detection — Keyword matching for identity attributes + claimed status
- Lead Scoring — Weighted heuristic from available data fields
- Aggregate Statistics — Per-query computation of distributions and coverage metrics
- Quad-Tree Viewport — Subdivides the search area to bypass Google's 120-result limit
- Output — JSON objects pushed to Apify dataset with optional PPE charging
Requirements
- Python 3.11+
- curl-cffi >= 0.7.0
- beautifulsoup4 >= 4.12.2
- lxml >= 5.1.0
📞 Support
- Issues: GitHub Issues
- Source Code: GitHub Repository