Google Maps Scraper avatar
Google Maps Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

John Adeolu

John Adeolu

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

22 days ago

Last modified

Share

A professional Apify Actor that extracts comprehensive business data from Google Maps, including names, addresses, phone numbers, websites, ratings, reviews, opening hours, photos, and coordinates.

Features

  • πŸ” Search by Query & Location: Search for businesses using keywords and location
  • πŸ“ Complete Business Data: Extract name, address, phone, website, ratings, reviews, hours, photos, and coordinates
  • ⭐ Reviews Extraction: Optional detailed reviews with ratings, text, author, and date
  • 🌍 Multi-language Support: Configure language for results
  • πŸ”„ Pagination Support: Automatically scrolls and loads more results
  • πŸš€ High Performance: Efficient scraping with proper error handling and retries
  • πŸ”’ Proxy Support: Built-in Apify Proxy support for reliable scraping

Input

FieldTypeRequiredDescription
searchQueryStringYesSearch query for businesses (e.g., "restaurants in New York", "dentists near me")
locationStringNoLocation for the search (e.g., "New York, NY" or "coordinates: 40.7128,-74.0060")
maxResultsNumberNoMaximum number of results to extract (default: 20, max: 500)
includeReviewsBooleanNoWhether to include reviews for each business (default: false)
maxReviewsNumberNoMaximum number of reviews per business if includeReviews is true (default: 5, max: 50)
languageStringNoLanguage code for results (default: "en")
startUrlsArrayNoDirect Google Maps URLs to scrape (if provided, searchQuery and location are ignored)

Example Input

{
"searchQuery": "restaurants in Manhattan",
"location": "New York, NY",
"maxResults": 50,
"includeReviews": true,
"maxReviews": 10,
"language": "en"
}

Output

The actor saves results to the Apify Dataset. Each business entry includes:

{
"name": "Example Restaurant",
"rating": 4.5,
"reviewsCount": 1234,
"address": "123 Main St, New York, NY 10001",
"phone": "+1 212-555-1234",
"website": "https://example.com",
"category": "Restaurant",
"openingHours": "Mon-Fri: 10:00 AM - 10:00 PM",
"latitude": 40.7128,
"longitude": -74.0060,
"photoUrl": "https://maps.googleapis.com/...",
"reviews": [
{
"author": "John Doe",
"rating": "5",
"text": "Great food and service!",
"date": "2 weeks ago"
}
],
"timestamp": "2024-01-10T12:00:00.000Z"
}

Usage

Local Development

  1. Install dependencies:
$npm install
  1. Run the actor:
$npm start

Apify Platform

  1. Create a new actor on Apify
  2. Upload the actor files
  3. Configure input parameters
  4. Run the actor

Using Apify CLI

apify create google-maps-scraper
cd google-maps-scraper
# Copy files to the actor directory
apify push
apify call --memory=4096

Output Dataset

Results are saved to the Apify Dataset with the following schema:

  • name: Business name
  • rating: Average rating (number)
  • reviewsCount: Total number of reviews
  • address: Full address
  • phone: Phone number
  • website: Business website URL
  • category: Business category/type
  • openingHours: Opening hours information
  • latitude: GPS latitude coordinate
  • longitude: GPS longitude coordinate
  • photoUrl: URL to business photo
  • reviews: Array of review objects (if includeReviews is true)
  • timestamp: ISO timestamp of extraction

Best Practices

  1. Rate Limiting: The actor includes built-in delays to respect Google Maps. For high-volume scraping, consider using Apify Proxy.

  2. Max Results: Start with smaller values (20-50) to test before scaling up.

  3. Reviews: Enabling reviews increases scraping time significantly. Use only when necessary.

  4. Language: Set the language parameter to match your target audience for better results.

  5. Error Handling: The actor includes comprehensive error handling. Check the actor logs for any issues.

Limitations

  • Google Maps may implement rate limiting or CAPTCHA challenges for high-volume requests
  • The actor respects Google Maps' structure and may need updates if Google changes their UI
  • Reviews extraction requires additional page interactions and may slow down scraping
  • Maximum 500 results per run (configurable via maxResults)

Troubleshooting

No results found

  • Verify the searchQuery is correct and returns results on Google Maps
  • Check if the location parameter is valid
  • Try increasing wait times if pages load slowly

Missing data fields

  • Some businesses may not have all fields (e.g., phone, website)
  • Google Maps structure may vary by region
  • Check actor logs for extraction warnings

Scraping too slow

  • Reduce maxResults
  • Disable includeReviews if not needed
  • Check your internet connection and Apify platform resources

Changelog

Version 1.0.0

  • Initial release
  • Basic business data extraction
  • Reviews extraction support
  • Multi-language support
  • Pagination handling

License

ISC

Support

For issues, questions, or contributions, please visit the actor's page on Apify Store.