Google Maps Scraper avatar

Google Maps Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

Extract business data from Google Maps including ratings, reviews, contact info, prices, coordinates, and images. Fast scraper with automatic pagination for any location or search query.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(3)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

3

Bookmarked

237

Total users

16

Monthly active users

13 days ago

Last modified

Share

Google Maps Business Scraper

A powerful Apify Actor for scraping business listings from Google Maps using browser automation with Playwright. Extract comprehensive business information including ratings, reviews, contact details, locations, and more.

πŸš€ Features

  • 🎯 Comprehensive Data Extraction: Names, ratings, reviews, addresses, phones, websites, descriptions, and more
  • πŸ“ Location Flexibility: Search any location worldwide (cities, neighborhoods, addresses)
  • πŸ” Any Search Query: Restaurants, hotels, cafes, pharmacies, shops, services, etc.
  • πŸ’° Price Information: Extract price levels and ranges where available
  • πŸ“Έ Image URLs: Get business images from Google Maps
  • πŸ—ΊοΈ Geographic Data: Extract coordinates, Place IDs, and Plus Codes
  • 🌐 Clean Data: Automatic text cleaning (addresses, websites, descriptions)
  • πŸ’Ύ Structured Output: JSON format with all fields properly formatted

πŸ“‹ Input Parameters

The actor accepts the following input parameters:

ParameterTypeRequiredDefaultDescription
searchQuerystringYes"restaurant"What to search for (e.g., 'cafe', 'hotel', 'pharmacy')
locationstringYes"New York"Where to search (e.g., 'Manhattan, NY', 'Los Angeles')
maxResultsintegerNo20Maximum number of businesses to scrape (1-100)

Example Input

{
"searchQuery": "restaurant",
"location": "Manhattan, New York",
"maxResults": 50
}

πŸ“Š Output Fields

Each business listing in the output dataset contains:

Basic Information

  • index - Sequential index in results (e.g., 0, 1, 2)
  • name - Business name (e.g., "Gramercy Tavern")
  • category - Business type (e.g., "New American restaurant")
  • url - Google Maps URL for the business

Ratings & Reviews

  • rating - Average rating from 1-5 stars (e.g., 4.7)
  • review_count - Total number of reviews (e.g., 4642)

Contact Information

  • address - Full street address (e.g., "42 E 20th St, New York, NY 10003, United States")
  • phone - Phone number with country code (e.g., "+1 212-477-0777")
  • website - Business website URL (cleaned from Google redirects)

Description & Pricing

  • description - Business description and services (cleaned text)
  • price_level - Price range indicator (e.g., "$$", "$50–100", "$100+")

Location Data

  • latitude - Geographic latitude (e.g., 40.7384555)
  • longitude - Geographic longitude (e.g., -73.9885064)
  • place_id - Google Maps Place ID (e.g., "0x89c259a1820824bd:0x2b79dcdc251b8415")
  • plus_code - Plus Code location (e.g., "P2Q6+9H New York, USA")

Media

  • images - Array of image URLs from Google Maps

Metadata

  • scraped_at - ISO timestamp when data was scraped (e.g., "2025-10-22T16:20:31.874079")

Example Output

{
"index": 0,
"url": "https://www.google.com/maps/place/Gramercy+Tavern/...",
"scraped_at": "2025-10-22T16:20:31.874079",
"name": "Gramercy Tavern",
"rating": 4.6,
"review_count": 4642,
"category": "New American restaurant",
"address": "42 E 20th St, New York, NY 10003, United States",
"phone": "+1 212-477-0777",
"website": "https://www.gramercytavern.com/",
"description": "Michelin-starred Flatiron District tavern featuring a menu of modern, seasonal American dishes. Dine-in Takeaway Delivery",
"price_level": "$100+",
"place_id": "0x89c259a1820824bd:0x2b79dcdc251b8415",
"plus_code": "P2Q6+9H New York, USA",
"latitude": 40.7384555,
"longitude": -73.9885064,
"images": [
"https://lh3.googleusercontent.com/...",
"https://lh3.googleusercontent.com/..."
]
}

πŸ› οΈ Usage Examples

1. Find Restaurants in a City

{
"searchQuery": "restaurant",
"location": "New York, NY",
"maxResults": 50
}

2. Find Hotels in a Specific Area

{
"searchQuery": "hotel",
"location": "Manhattan, New York",
"maxResults": 30
}

3. Find Cafes and Coffee Shops

{
"searchQuery": "cafe",
"location": "San Francisco, CA",
"maxResults": 25
}

4. Find Pharmacies or Medical Services

{
"searchQuery": "pharmacy",
"location": "Los Angeles, CA",
"maxResults": 20
}

πŸš€ Running the Actor

Via Apify Console

  1. Go to Apify Console
  2. Find the actor in the Store or your Actors
  3. Configure the input parameters
  4. Click "Start" to run

Via Apify CLI (Local Development)

# Install Apify CLI
npm install -g apify-cli
# Run locally
apify run
# Run with custom input
apify run --input '{"searchQuery": "restaurant", "location": "New York", "maxResults": 20}'

Via API

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "restaurant",
"location": "New York",
"maxResults": 20
}'

πŸ”§ Technical Details

Technology Stack

  • Language: Python 3.11+
  • Framework: Apify SDK 2.0+
  • Browser Automation: Playwright (Chromium)
  • Data Parsing: BeautifulSoup4, Regular Expressions
  • Data Cleaning: Advanced text processing and URL parsing

How It Works

  1. Search Construction: Builds Google Maps search URL from query and location
  2. Page Loading: Navigates to search results with optimized wait strategy
  3. Scrolling: Automatically scrolls to load all results up to maxResults
  4. URL Extraction: Collects business URLs from search results
  5. Detail Extraction: Visits each business page to extract comprehensive data
  6. Data Cleaning: Cleans addresses, websites, descriptions, and price values
  7. Output: Saves structured JSON data to Apify dataset

Data Quality Features

  • βœ… Address Cleaning: Removes newlines and extra whitespace
  • βœ… Website Extraction: Parses Google redirect URLs to get actual websites
  • βœ… Description Cleaning: Removes formatting symbols and newlines
  • βœ… Price Extraction: Flexible extraction supporting multiple formats ($$, $50-100, $100+)
  • βœ… Text Normalization: Proper text formatting across all fields

Performance

  • Speed: ~5-7 seconds per business (including page load and extraction)
  • Success Rate: 95%+ data extraction success rate
  • Reliability: Robust error handling with graceful fallbacks
  • Scalability: Efficiently handles up to 100 businesses per run

πŸ› Troubleshooting

Common Issues

1. No Results Found

  • Verify the location exists and is spelled correctly
  • Try a more specific location (e.g., "Manhattan, NY" instead of "NY")
  • Check that the search query is valid for that location

2. Missing Data Fields

  • Some businesses may not have all fields (website, phone, price, etc.)
  • The actor extracts all available data - null values are expected
  • Try different businesses or locations for more complete data

3. Slow Performance

  • Google Maps pages can be slow to load
  • Network speed affects overall runtime
  • Consider reducing maxResults for faster runs

4. Rate Limiting

  • Google may temporarily block excessive requests
  • Wait a few minutes before retrying
  • Use residential proxies if running frequently

οΏ½ Best Practices

  1. Start Small: Test with maxResults: 5-10 first
  2. Specific Locations: Use detailed locations (neighborhood/city) for better results
  3. Relevant Queries: Use search terms that match real businesses
  4. Monitor Output: Check the dataset to ensure data quality meets your needs
  5. Respect Limits: Don't scrape excessively - respect rate limits

πŸ“Š Use Cases

  • 🏒 Business Intelligence: Market research and competitor analysis
  • πŸ“ Location Data: Build location databases for apps
  • πŸ“ž Contact Lists: Generate business contact information
  • οΏ½ Sales Leads: Find potential customers by category/location
  • πŸ—ΊοΈ Mapping Projects: Create custom maps with business data
  • πŸ“ˆ Market Analysis: Analyze business density and competition

πŸ“ Version History

Version 2.0.0 (Current)

  • Simplified scraping logic for better reliability
  • Improved data cleaning (addresses, websites, descriptions)
  • Flexible price extraction supporting all formats
  • Removed unused fields (hours, menu_url, reservations_url, order_online_url)
  • Enhanced error handling and logging
  • Updated documentation and schemas

πŸ—ΊοΈ Complete Google Maps Scraper Suite

This actor is part of a comprehensive Google Maps data extraction toolkit by crawlerbros. All actors run on the free Apify plan, use no proxy by default, and return clean, structured data.

ActorWhat it does
⭐ Google Maps Reviews ScraperScrape reviews with reviewer Local Guide level, photos, mentioned items, owner replies
πŸ“Έ Google Maps Photos ScraperExtract all photos from any place β€” max-resolution URLs, contributor info, categories
πŸ• Google Maps Business Hours ScraperFull 7-day hours, timezone, current local time, next open/close, holiday hours
πŸ“Š Google Maps Popular Times ScraperBusy hours histogram for all 7 days + current busyness + typical visit time
πŸ“§ Google Maps Email ExtractorFind business emails + social media links by crawling websites
πŸ—ΊοΈ Google Maps Area ScannerGeographic grid scanning β€” bypass the 120-place limit with bounding box / circle / polygon
πŸ’Ό Google Maps Leads ScraperB2B lead generation with email + phone enrichment, US states + global countries
πŸ€– Google Maps MCP ServerUnified MCP server combining search + reviews for AI assistants
🧭 Google Maps Directions ScraperAβ†’B routing β€” distance, duration, traffic, route alternatives for driving/walking/transit
πŸ“ Google Maps Geocoding ScraperBidirectional geocoding β€” address ↔ coordinates, with address components
πŸ”— Google Maps Similar Places Scraper"People also search for" / related place discovery β€” competitor & alternative finder
🍽️ Google Maps Menu ScraperRestaurant menu items, prices, descriptions, photos
πŸ“Œ Google Maps Nearby ScraperFind places near a coordinate point β€” lightweight POI search by category
πŸ“‹ Google Maps Place List ScraperExtract Google's curated "Top X in Y" lists β€” best hotels/restaurants/things to do
🌍 Google Maps Timezone ScraperIANA timezone + current local time from coordinates

🀝 Support

For issues, questions, or feature requests:

  • Check this README for troubleshooting tips
  • Review the output data structure
  • Contact support through Apify Console

Disclaimer: This actor is for educational and research purposes. Always respect Google Maps' Terms of Service and robots.txt. Use responsibly and ethically.