๐ What is Google Maps Scraper?
Google Maps Scraper lets you extract business data from Google Maps, helping you generate leads, analyze competitors, and fuel growth with just a few clicks.
- Generate qualified leads: extract business names, websites, emails, and phone numbers to build prospect lists for your sales team
- Track competitors across regions: monitor where competitors operate, how theyโre rated, and how many reviews theyโve received
- Perform market analysis: analyze market saturation, identify service gaps, or benchmark local businesses by size, rating, and visibility
- Support partnerships: discover top-rated or high-volume locations for outreach and collaboration
- Automate research workflows: replace manual search tasks with repeatable, workflows that keep datasets fresh and consistent
The scraper expands Google Maps data extraction beyond the limitations of the official Google Places API โ and bypasses the limitation of Google Maps โ of displaying (and scraping) no more than 120 places per area.
What data does Google Maps Scraper extract?
| ๐ Title/place name | ๐ Subtitle, category, place ID, and URL |
| ๐ Address | ๐ Location, plus code and exact coordinates |
| ๐ Phone number | ๐ Website, if available |
| ๐ Company contact details from website (company email, phone number and social media profiles) | ๐ฏ Business leads enrichment (full name, work email address, phone number, job title, LinkedIn profile) |
| ๐ Social media profile enrichment (detailed profile data for Facebook, Instagram, YouTube, TikTok, Twitter) | โ List of detailed characteristics (additionalInfo) |
| ๐ Search results | ๐ Review count and review distribution |
โญ Average rating (totalScore) | ๐ผ๏ธ List of images |
| ๐จ Hotel booking URL and price + nearby hotels | ๐ Temporarily or permanently closed status |
| ๐ Updates from customers & Questions and answers | ๐ People also search |
| ๐งพ Menu | ๐ฒ Price bracket |
| ๐ Opening hours | ๐ฆ Popular times - histogram & live occupancy |
| ๐ช Table reservation provider | ๐๏ธ Multiple businesses located within indoor venues, such as malls or shopping centers. |
| ๐ค Competitor analysis report (add-on) | ๐บ๏ธ Interactive map visualization of analyzed competitors |
For maximum usefulness, Google Maps Scraper has the following abilities:
- Extract anything: names, addresses, websites, phone numbers, ratings, review counts, categories, or opening hours
- Flexible search: scrape using any number of criteria, including search query, category, location, coordinates, or URL
- Define the area to scrape: focus on specific locations, or set a wide area using coordinates or geolocation parameters
- Flexible output format: export data into almost any format, with multiple views available
- Integrate with other tools: use webhooks or our MCP server to set up workflows with other Actors or third-party tools like Make or Zapier
- Use add-ons for further enrichment: use paid add-ons to further enrich your data with contact details, images, reviews, or an AI-powered competitor analysis report
โฌ๏ธ Input
The input for Google Maps Scraper should be either a Google Maps URL or a location in combination with a search term. You can also extract any details such as images, reviews, amenities, and so on. You can set up the input programmatically or use the fields in scraperโs interface.
Search terms
Using multiple similar search terms can increase the number of scraped places but it also increases the time a run takes. We recommend using a combination of search terms that are distinct or overlap only slightly in meaning. Using a long list of duplicate search terms will just increase the time of a run without providing more results.
Example of a good list of search terms: [ restaurant, bar, pub, cafe, buffet, ice cream, tea house ]
Example of a bad list of search terms: [ restaurant, restaurants, chinese restaurant, cafe, coffee, coffee shop, takeout ]
While Google search results often include categories adjacent to your search, e.g. restaurant might also capture some cafe or bar places, but you will get better results if you use them as separate search terms, as well.
Categories
Using categories can be dangerous!
Search terms can introduce false positives, extracting some irrelevant places. Categories can be used to narrow down the results to just the ones you select.
Categories can also be dangerous because they can cause false negatives, excluding places you might want in the results. Google has thousands of categories and many are synonymous. You must list all the categories you want to match, including all synonyms; for example, Divorce lawyer, Divorce service, and Divorce attorney are three distinct categories and some places might be classified as only one of them, meaning you should input all of them. For this reason, we recommend going through the categories list carefully. For some use cases, you might want to select as many as 100 categories to ensure you donโt miss any relevant places.
To help with this, Google Maps Scraper tries to increase the chance of a match by doing the following:
- If any category of a place (each can have several categories) matches any category from your input, it will be included.
- If all words from your input are contained in a category name, it will be included. E.g.
restaurantwill matchChinese restaurantandPan Asian restaurant.
โ ๏ธ If categories are used without search terms, they will be used both as search terms and as category filters. However, for the above reasons, using categories without search terms is not recommended. We generally recommend fewer search terms and many categories.
Search without geolocation
Rather than using the standard search term and location inputs, you may also opt to use only the search term (e.g. "restaurants in berlin") or a direct Google Maps search URL (e.g. https://www.google.com/maps/search/restaurants/@52.5190603,13.388574,13z/ โ) without the location input field.
๐ค Output
The Actor stores its output in a dataset. When you run it, you can preview and download the results in many formats (JSON, CSV, Excel, XML, RSS, HTML Table).
Here is a sample of a scraped Google Maps place:
{
"title": "MI HOME Grill & Fish",
"categoryName": "Restaurant",
"address": "1250 W Main St, Norristown, PA 19401",
"phone": "+1 610-539-1500",
"website": "http://mihomegrill.com/",
"totalScore": 4.6,
"reviewsCount": 1709,
"location": { "lat": 40.121, "lng": -75.348 },
"openingHours": [{ "day": "Monday", "hours": "11 AMโ9 PM" }],
"url": "https://www.google.com/maps/place/..."
}๐จ External places (hotels)
Google sometimes shows these places when searching in certain locations, mainly for hotels. They are however not regular places with pins on the map and offer only some of the regular output fields. These places are marked with 3 extra output fields:
{
"url": "https://www.google.com/maps/place/Al Eairy Furnished Apartments Al Madinah 9/@24.48...",
"isExternalServicePlace": true,
"externalServiceProvider": "SuperTravel",
"externalId": "/g/11pkhzvq1s"
}Example cost: 100 competitors analyzed
The table below shows the additional cost of enabling this add-on for 100 places, assuming 100 reviews per place and 1 social media profile found per place. The base place-scraped cost applies regardless of this add-on.
| Event | Count | FREE | SILVER |
|---|---|---|---|
| Additional place details | 100 | $0.20 | $0.15 |
| Company contacts enrichment | 100 | $0.20 | $0.15 |
| Reviews (100 per place) | 10,000 | $5.00 | $3.70 |
| Social media profile enrichment | 100 profiles | $10.00 | $0.70 |
| Competitor analysis event | 100 | $2.50 | $1.80 |
| Total | ~$17.90 | ~$6.50 |
Reviews are the largest cost driver. Social media profile enrichment on the FREE plan is priced significantly higher than on paid plans. The exact cost depends on how many social profiles are actually found per business.
๐ Custom search area
If your location canโt be found on Google Maps or you want to customize it for a specific area, you can use the Custom search area function. Youโll have to provide coordinate pairs for an area and the scraper will create start URLs out of them. There are several types of search area geometry that you can use: Polygon, MultiPolygon and Point (a circle with a radius of 5 kilometers by default).
๐ด Circle
For a circle, we can use the Point type with our custom parameter radiusKm. Donโt forget to change the radius to fit your needs. This example covers the city of Basel in Switzerland:
{
"type": "Point",
"coordinates": ["7.5503", "47.5590"],
"radiusKm": 8
}Map view
Google Maps Scraper can produce an interactive HTML map of the analyzed competitors, stored in the actor runโs Key-Value Store. Below is a preview:
Interactive map visualization of analyzed competitors.
โ FAQ
How does Google Maps Scraper work?
It works exactly as if you were searching through Google Maps and copying information from each page you find. It opens the Google Maps website, goes to a specified location, then writes your search query into the search bar. Then it scrolls down until it reaches the end of the scroll bar or maxCrawledPlacesPerSearch. It enqueues all the places as separate pages and then copypastes all visible data into an organized document. This process is repeated for many map pages inside the input location. To understand the process fully, just try it out in your browser - the scraper does exactly the same thing, only much faster.
What are the disadvantages of the Google Maps API?
With the Google Maps API, you get $200 worth of credit usage every month free of charge. That means 28,500 map loads per month. However, the Google Maps API caps your search results to 60, regardless of the radius you specify. Our Google Maps Scraper lets you overcome these limits, providing cost-effective, comprehensive results, and also scrapes histograms for popular times, which arenโt available in the official API.
Can I scrape places from multiple locations?
In most cases, you donโt need multiple locations at all. A single broad location, such as an entire country or state, combined with a good set of search terms and categories, will usually get you the results you need.
Can I integrate Google Maps Scraper with other apps?
Yes. The Google Maps Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate your Google Maps data with Zapier, Slack, Make, Airbyte, GitHub, Google Sheets, Asana, LangChain and more.
Can I use Google Maps Scraper as its own API?
Yes, you can use the Apify API to access Google Maps Scraper programmatically. The API allows you to manage, schedule, and run Apify actors, access datasets, monitor performance, get results, create and update actor versions, and more.
To access the API using Node.js, you can use the apify-client NPM package. To access the API using Python, you can use the apify-client PyPI package.
Is it legal to scrape Google Maps data?
Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the users have chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data if you have a legitimate reason to do so, and you should also factor in Googleโs Terms of Use โ.
Your feedback
Weโre always working on improving the performance of our Actors. So if youโve got any technical feedback for Google Maps Scraper or simply found a bug, please create an issue on the Actorโs Issues tab.