Google Maps Scraper avatar

Google Maps Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

Scrape Google Maps business data with ease πŸ“πŸ’ Extract names, addresses, phone numbers, websites, ratings, reviews, categories, and more from any search or location. Perfect for lead generation, local SEO, competitor research, and market analysis at scale πŸš€

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

google-maps-scraper

Bulk Google Maps scraper Actor with automatic proxy fallback (direct β†’ datacenter β†’ residential, sticky after residential), live dataset writes, optional review capture, and final maps.json in the Key-Value Store.

Why Choose Us?

  • Resilient proxy ladder with clear logging and stickiness after residential fallback
  • Bulk inputs: locations, keywords/terms, direct Maps URLs
  • Live dataset writes to avoid data loss; final merged maps.json in KV store
  • Optional reviews per place with best-effort scraping
  • Sorting options (rating, review_count, name, relevance)

Key Features

  • Grid-based viewport coverage per location for broader coverage
  • Deduplication by place_id
  • Configurable maxResults, gridSize, maxComments
  • Detailed Apify logs for progress and proxy events

Input

Example:

{
"locations": ["New York"],
"keywords": ["coffee shops"],
"urls": [],
"sortOrder": "relevance",
"maxComments": 0,
"maxResults": 200,
"gridSize": 15,
"proxyConfiguration": { "useApifyProxy": false }
}

Fields:

  • locations (array): City/region names for viewport generation. Optional if urls provided.
  • keywords (array, required): Keywords/terms to search.
  • urls (array): Direct Google Maps search URLs (bulk supported).
  • sortOrder (string): relevance | rating | review_count | distance | name.
  • maxComments (integer): Reviews per place (0 disables reviews).
  • maxResults (integer): Cap on total places.
  • gridSize (integer): Grid dimension per viewport (coverage vs speed).
  • proxyConfiguration (object): Defaults to direct. Actor will fallback to datacenter, then residential (sticky) on blocks.

Output

  • Dataset: one item per place with address, rating, reviews count, phone, tags, hours, lat/long, place_id, success.
  • Key-Value Store: maps.json containing the final sorted list.

Sample item (dataset / maps.json):

{
"name": "Sample Coffee",
"website": "https://samplecoffee.com",
"avg_rating": 4.6,
"total_reviews": 128,
"street_address": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001",
"country_code": "US",
"full_address": "123 Main St New York NY 10001 US",
"tags": ["Coffee shop"],
"notes": null,
"place_id": "abcd1234",
"phone": "+1 212-555-0100",
"lat": 40.75,
"long": -73.99,
"hours": [],
"success": true
}

πŸš€ How to Use the Actor (via Apify Console)

  1. Log in to https://console.apify.com and open the Actor.
  2. Fill inputs: locations/keywords or URLs, set limits and sort order.
  3. Leave proxy blank for direct start; actor auto-fallbacks to proxies on block.
  4. Run and watch logs for grid progress and proxy events.
  5. Results appear in DATASET; final merged file in OUTPUT as maps.json.

Best Use Cases

  • Local business lead lists by category and city
  • Competitive scans across regions
  • Enriching place records with ratings/phones/addresses

Frequently Asked Questions

  • Will it always get reviews? Reviews are best-effort; set maxComments>0 to enable.
  • What if Google blocks me? Actor steps through direct β†’ datacenter β†’ residential (sticky) with retries; logs each change.
  • How many results can I fetch? Up to maxResults; gridSize controls coverage vs. speed.

Support and Feedback

For questions or custom needs, reach out via the contact in actor.json description.

Cautions

  • Data is collected from public Google Maps pages.
  • Ensure compliance with local laws and Google’s terms; you are responsible for usage.