Google Maps Scraper + Data Clean
Under maintenancePricing
from $5.00 / 1,000 valid leads
Google Maps Scraper + Data Clean
Under maintenanceScrape Google Maps businesses, then automatically clean, normalize, and enrich data. Get CRM-ready leads (phone, email, website, rating) with audit trail. Pay only for valid records.
Pricing
from $5.00 / 1,000 valid leads
Rating
0.0
(0)
Developer
Yu Liu
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Share
Google Maps Lead Optimizer + Data Clean
Scrape Google Maps businesses and get cleaned, sales‑ready leads in one step. Built‑in data normalization, deduplication, PII masking, and audit trail. Pay only for valid records.
Features
- Search by keyword & location – Enter one or more search terms and a location (free text) to discover businesses exactly where you need them.
- Comprehensive business data – Extract name, address, phone, website, rating, review count, coordinates, categories, and more.
- Smart data cleaning – Automatic phone normalization (+1 XXX-XXX-XXXX), website URL cleanup, rating clamping (0‑5), and removal of commas from review counts.
- Optional rich data – Enable
enable_rich_datato fetch emails, images, full reviews, opening hours, price level, and Google Maps URL (extra cost). - Review & reviewer information – Scrape all reviews, including reviewer names, photos, and ratings. Sort reviews and retrieve up to any desired count.
- Data quality – Remove duplicates, detect outliers, handle missing values, and apply PII masking (phone, email – irreversible).
- Full audit trail – Task-level and rule-level logs, plus an ISO quality report.
- Preview mode – Test with a small number of rows before running a full extraction to control costs.
Bugs, fixes, updates, and changelog
This product is under active development. If you encounter any issues, have feature requests, or would like to provide feedback, please open an issue on our GitHub repository:
👉 here
Input Parameters (JSON)
Provide input as a JSON object. Example:
{"searchStringsArray": ["coffee shop"],"locationQuery": "Manhattan, New York","maxCrawledPlacesPerSearch": 10,"language": "en","outputFormat": "csv","previewMode": true,"previewRows": 10,"enable_rich_data": false}
Parameter reference
searchStringsArray(array, required): One or more search terms, e.g., ["dentist", "clinic"].locationQuery(string, required): Free text location, e.g., "New York, USA".maxCrawledPlacesPerSearch(integer, optional): Max results per search term (1‑5000, default 500).language(string, optional): Language code, e.g., "en", "zh-CN" (default "en").placeMinimumStars(string, optional): Minimum star rating: "0","2","2.5","3","3.5","4","4.5" (default "0").skipClosedPlaces(boolean, optional): If true, skip places marked as temporarily or permanently closed.websiteFilter(string, optional): Filter by website presence: "allPlaces", "withWebsite", "withoutWebsite".enable_rich_data(boolean, optional): If true, fetch additional fields like email, reviews, images, opening hours, price level (extra cost, default false).outputFormat(string, optional): "csv", "excel", "json" (default "csv").previewMode(boolean, optional): If true, only process first N rows (billed at actual row count).previewRows(integer, optional): Rows for preview mode (1‑10000, default 100).enablePiiMasking(boolean, optional): Mask phone numbers, emails (irreversible).
During the run
The Actor outputs detailed log messages so you can track its progress:
- Which search term is being processed
- How many raw records have been fetched
- Whether optional rich data is being requested
- Success or failure of each cleaning rule
If the input is invalid (e.g., missing required fields), the Actor will stop immediately and explain what went wrong.
Accessing results
After a successful run, the cleaned leads are stored in the Dataset tab. Each business is a separate item. You can download the results as CSV, Excel, or JSON directly from the Console, or retrieve them programmatically via the Apify API (Python, JavaScript, etc.). For details, see the Apify API documentation.
Output Fields
When enable_rich_data = false (default), you receive the core set (about 15 fields). With enable_rich_data = true, you also get optional fields.
| Field | Description | Always present |
|---|---|---|
| business_name | Business name | ✅ |
| address | Full formatted address | ✅ |
| street | Street address | ✅ |
| city | City | ✅ |
| state | State or region | ✅ |
| zip | Postal code | ✅ |
| country | Country code (e.g., US) | ✅ |
| phone | Normalized phone (+1 XXX-XXX-XXXX) | ✅ |
| website | Cleaned website URL | ✅ |
| avg_rating | Average rating (0‑5) | ✅ |
| total_reviews | Total review count | ✅ |
| latitude | Latitude | ✅ |
| longitude | Longitude | ✅ |
| place_id | Google Place ID | ✅ |
| categories | Business categories (array) | ✅ |
| plus_code | Google Plus Code | ❌ (rich only) |
| description | Business description | ❌ (rich only) |
| opening_hours | Structured opening hours | ❌ (rich only) |
| price_level | Price level (e.g., $$) | ❌ (rich only) |
| Business email | ❌ (rich only) | |
| images | Array of image URLs | ❌ (rich only) |
| reviews | List of review objects | ❌ (rich only) |
| google_maps_url | Google Maps URL | ❌ (rich only) |
How to use (Apify Console)
- Go to the Actor page.
- In the Input tab, switch to JSON mode.
- Paste your JSON configuration (see example above).
- Click Start.
- Download the cleaned dataset from the Dataset tab.
Output files
Besides the cleaned data, the Actor also stores:
- Task-level audit CSV
- Rule-level audit CSV
- Skipped rows CSV
- Quality report (HTML + JSON)
- Error report (if any)
- Debug log (if error)
All stored in the Apify Key‑Value store.
Support
Email: liuyu.digitaltwin@outlook.com
Please include your session ID when reporting issues.