Google Maps Scraper + Data Clean avatar

Google Maps Scraper + Data Clean

Under maintenance

Pricing

from $5.00 / 1,000 valid leads

Go to Apify Store
Google Maps Scraper + Data Clean

Google Maps Scraper + Data Clean

Under maintenance

Scrape 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

Yu Liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

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_data to 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.

FieldDescriptionAlways present
business_nameBusiness name
addressFull formatted address
streetStreet address
cityCity
stateState or region
zipPostal code
countryCountry code (e.g., US)
phoneNormalized phone (+1 XXX-XXX-XXXX)
websiteCleaned website URL
avg_ratingAverage rating (0‑5)
total_reviewsTotal review count
latitudeLatitude
longitudeLongitude
place_idGoogle Place ID
categoriesBusiness categories (array)
plus_codeGoogle Plus Code❌ (rich only)
descriptionBusiness description❌ (rich only)
opening_hoursStructured opening hours❌ (rich only)
price_levelPrice level (e.g., $$)❌ (rich only)
emailBusiness email❌ (rich only)
imagesArray of image URLs❌ (rich only)
reviewsList of review objects❌ (rich only)
google_maps_urlGoogle Maps URL❌ (rich only)

How to use (Apify Console)

  1. Go to the Actor page.
  2. In the Input tab, switch to JSON mode.
  3. Paste your JSON configuration (see example above).
  4. Click Start.
  5. 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.