Google Maps Scraper avatar

Google Maps Scraper

Try for free

No credit card required

Go to Store
Google Maps Scraper

Google Maps Scraper

compass/crawler-google-places
Try for free

No credit card required

Extract data from hundreds of Google Maps locations and businesses. Get Google Maps data including reviews, images, contact info, opening hours, location, popular times, prices & more. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.

Do you want to learn more about this Actor?

Get a demo

📍 What is Google Maps Scraper?

This tool expands Google Maps data extraction beyond the limitations of the official Google Places API. Simply add a search query, category, location, coordinates, or URL to scrape Google place details like contact info, ratings, reviews, and more. Whether you're targeting a few places or an entire region, this tool will get the job done.

  • Scrape areas using search or target specific places one by one
  • Scrape Google Maps search by URLs, search queries or Google place categories
  • Extract location, contact details, opening hours, popular times, price category, placeIDs, and other essential Google places data
  • Extract reviews, images, questions, accessibility, gas prices, web results, and other additional Google places data
  • Define area to scrape in multiple ways: free text, defined geolocation parameters, using pairs of coordinates, or using Google Maps URL
  • Bypass the limitation of Google Maps of displaying (and scraping) no more than 120 places per area

🗺 How can I use Google Maps Scraper?

This Google Maps Scraper allows you to extract place data from Google Maps in two ways: place by place using URLs or placeIDs, or entire areas by search and location parameters. With this tool, you will be able to scrape a specific list of places, just a certain category, or even an entire country!

Feature categoryFeature descriptionExamples of using
Extract data from specific places🔗 By Google place URL
💳 By Google place IDs
- Add a Google place URL to start scraping
- Add a list of Google place IDs to start scraping
Extract places by areas🗝 By search query
🎢 By category
📍 By location
📐 By coordinates
🔗 By Google Maps search URL
- Use any search query like on Google Maps website
- Scrape places by category (e.g., "dentist", "duty free store", or "gym")
- Specify areas for scraping by geolocation parameters (country, state, city, US county, or zipcode area)
- Define areas for scraping using coordinates
General settings🌎 Set language
🎯 Match specific name
⭐️ Filter out places by rating
⏩ Skip closed places
⬇️ Export data in various formats
🦾 Get data through API
🗺 Visualized map of scraped places
- Scrape only places that are 3 stars and higher
- Choose to skip places that are temporarily or permanently closed
-Set up the language of Google Maps scraping, e.g. scrape Google Maps results in Spanish
- Scrape a franchise or only places that match a specific name (e.g., PizzaHut)
- Customize the automatic zooming on maps for more efficient scraping

Here's the amount of data you'd get for a single scraped place (this one 📍 so you can compare). See many more output examples in Output examples ⬇️).

Example of 1 scraped restaurant in New York:

1{
2  "searchString": "Direct Detail URL: https://www.google.com/maps/place/Kim's+Island/@40.5107736,-74.2482624,17z/data=!4m6!3m5!1s0x89c3ca9c11f90c25:0x6cc8dba851799f09!8m2!3d40.5107736!4d-74.2482624!16s%2Fg%2F1tmgdcj8?hl=en&entry=ttu",
3  "rank": null,
4  "searchPageUrl": null,
5  "searchPageLoadedUrl": null,
6  "isAdvertisement": false,
7  "title": "Kim's Island",
8  "subTitle": null,
9  "description": null,
10  "price": "$10–20",
11  "categoryName": "Chinese restaurant",
12  "address": "175 Main St, Staten Island, NY 10307",
13  "neighborhood": "Tottenville",
14  "street": "175 Main St",
15  "city": "Staten Island",
16  "postalCode": "10307",
17  "state": "New York",
18  "countryCode": "US",
19  "website": "http://kimsislandsi.com/",
20  "phone": "(718) 356-5168",
21  "phoneUnformatted": "+17183565168",
22  "claimThisBusiness": false,
23  "location": {
24    "lat": 40.5107736,
25    "lng": -74.2482624
26  },
27  "locatedIn": null,
28  "plusCode": "GQ62+8M Staten Island, New York",
29  "menu": "http://kimsislandsi.com/",
30  "totalScore": 4.5,
31  "permanentlyClosed": false,
32  "temporarilyClosed": false,
33  "placeId": "ChIJJQz5EZzKw4kRCZ95UajbyGw",
34  "categories": [
35    "Chinese restaurant",
36    "Delivery Restaurant"
37  ],
38  "fid": "0x89c3ca9c11f90c25:0x6cc8dba851799f09",
39  "cid": "7838756667406262025",
40  "reviewsCount": 91,
41  "reviewsDistribution": {
42    "oneStar": 4,
43    "twoStar": 3,
44    "threeStar": 3,
45    "fourStar": 10,
46    "fiveStar": 71
47  },
48  "imagesCount": 28,
49  "imageCategories": [
50    "All",
51    "Menu",
52    "Food & drink",
53    "Vibe",
54    "By owner",
55    "Street View & 360°"
56  ],
57  "scrapedAt": "2024-11-28T12:28:50.519Z",
58  "reserveTableUrl": null,
59  "googleFoodUrl": null,
60  "hotelStars": null,
61  "hotelDescription": null,
62  "checkInDate": null,
63  "checkOutDate": null,
64  "similarHotelsNearby": null,
65  "hotelReviewSummary": null,
66  "hotelAds": [],
67  "openingHours": [
68    {
69      "day": "Monday",
70      "hours": "Closed"
71    },
72    {
73      "day": "Tuesday",
74      "hours": "11 AM to 9:30 PM"
75    },
76    {
77      "day": "Wednesday",
78      "hours": "11 AM to 9:30 PM"
79    },
80    {
81      "day": "Thursday",
82      "hours": "11 AM to 12 AM"
83    },
84    {
85      "day": "Friday",
86      "hours": "12 to 9:30 AM, 11 AM to 10:30 PM"
87    },
88    {
89      "day": "Saturday",
90      "hours": "11 AM to 10:30 PM"
91    },
92    {
93      "day": "Sunday",
94      "hours": "12 to 9:30 PM"
95    }
96  ],
97  "peopleAlsoSearch": [
98    {
99      "category": "People also search for",
100      "title": "Island Kitchen Chinese",
101      "reviewsCount": 70,
102      "totalScore": 3.4
103    },
104    {
105      "category": "People also search for",
106      "title": "New Island",
107      "reviewsCount": 116,
108      "totalScore": 3.9
109    },
110    {
111      "category": "People also search for",
112      "title": "Islander Taste Chinese Restaurant",
113      "reviewsCount": 119,
114      "totalScore": 4.2
115    },
116    {
117      "category": "People also search for",
118      "title": "Kum Fung",
119      "reviewsCount": 168,
120      "totalScore": 3.8
121    }
122  ],
123  "placesTags": [],
124  "reviewsTags": [
125    {
126      "title": "prices",
127      "count": 6
128    },
129    {
130      "title": "delivery",
131      "count": 4
132    },
133    {
134      "title": "spareribs",
135      "count": 3
136    },
137    {
138      "title": "dumpling",
139      "count": 2
140    },
141    {
142      "title": "lo mein",
143      "count": 2
144    }
145  ],
146  "additionalInfo": {
147    "Service options": [
148      {
149        "Takeout": true
150      },
151      {
152        "Dine-in": true
153      }
154    ],
155    "Popular for": [
156      {
157        "Lunch": true
158      },
159      {
160        "Dinner": true
161      },
162      {
163        "Solo dining": true
164      }
165    ],
166    "Accessibility": [
167      {
168        "Wheelchair accessible entrance": true
169      },
170      {
171        "Wheelchair accessible seating": true
172      },
173      {
174        "Assistive hearing loop": false
175      },
176      {
177        "Wheelchair accessible parking lot": false
178      },
179      {
180        "Wheelchair accessible restroom": false
181      }
182    ],
183    "Offerings": [
184      {
185        "Comfort food": true
186      },
187      {
188        "Healthy options": true
189      },
190      {
191        "Quick bite": true
192      },
193      {
194        "Small plates": true
195      }
196    ],
197    "Dining options": [
198      {
199        "Lunch": true
200      },
201      {
202        "Dinner": true
203      }
204    ],
205    "Amenities": [
206      {
207        "Restroom": false
208      }
209    ],
210    "Atmosphere": [
211      {
212        "Casual": true
213      }
214    ],
215    "Planning": [
216      {
217        "Accepts reservations": false
218      }
219    ],
220    "Payments": [
221      {
222        "Credit cards": true
223      },
224      {
225        "Debit cards": true
226      },
227      {
228        "NFC mobile payments": true
229      },
230      {
231        "Credit cards": true
232      }
233    ],
234    "Children": [
235      {
236        "Good for kids": true
237      }
238    ]
239  },
240  "gasPrices": [],
241  "questionsAndAnswers": [],
242  "updatesFromCustomers": null,
243  "ownerUpdates": [],
244  "url": "https://www.google.com/maps/search/?api=1&query=Kim's%20Island&query_place_id=ChIJJQz5EZzKw4kRCZ95UajbyGw",
245  "imageUrl": "https://lh5.googleusercontent.com/p/AF1QipMyThXuZMjeiMZfTM42rbJJGm-q54JNzL3xsCn_=w408-h306-k-no",
246  "kgmid": "/g/1tmgdcj8",
247  "webResults": [],
248  "parentPlaceUrl": null,
249  "tableReservationLinks": [],
250  "bookingLinks": [],
251  "orderBy": [
252    {
253      "name": "kimsislandsi.com",
254      "orderUrl": "http://kimsislandsi.com/"
255    }
256  ],
257  "images": [
258    {
259      "imageUrl": "https://lh5.googleusercontent.com/p/AF1QipMyThXuZMjeiMZfTM42rbJJGm-q54JNzL3xsCn_=w1920-h1080-k-no",
260      "authorName": "Sebastian Sinisterra (CitySeby)",
261      "authorUrl": "https://maps.google.com/maps/contrib/103237729589375373179",
262      "uploadedAt": "2017-05-30T00:00:00.000Z"
263    }
264  ],
265  "imageUrls": [
266    "https://lh5.googleusercontent.com/p/AF1QipMyThXuZMjeiMZfTM42rbJJGm-q54JNzL3xsCn_=w1920-h1080-k-no"
267  ],
268  "reviews": [
269    {
270      "name": "Rocco Castellano",
271      "text": "Excellent  food great service n always  on time",
272      "textTranslated": null,
273      "publishAt": "a month ago",
274      "publishedAtDate": "2024-10-11T01:23:42.544Z",
275      "likesCount": 0,
276      "reviewId": "ChdDSUhNMG9nS0VJQ0FnSURuNV9DVnFRRRAB",
277      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSURuNV9DVnFRRRAB!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgIDn5_CVqQE%7CCgwInvyhuAYQyOjhgwI%7C?hl=en",
278      "reviewerId": "108813127648936384314",
279      "reviewerUrl": "https://www.google.com/maps/contrib/108813127648936384314?hl=en",
280      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjXRb3lzFb-4SdRMWMlaaECCmdFwULv7bvKKVOK-3mmDcBWyJnY3XQ=s120-c-rp-mo-ba4-br100",
281      "reviewerNumberOfReviews": 74,
282      "isLocalGuide": true,
283      "reviewOrigin": "Google",
284      "stars": 5,
285      "rating": null,
286      "responseFromOwnerDate": null,
287      "responseFromOwnerText": null,
288      "reviewImageUrls": [],
289      "reviewContext": {},
290      "reviewDetailedRating": {
291        "Food": 5,
292        "Service": 5,
293        "Atmosphere": 5
294      }
295    },
296  ],
297  "userPlaceNote": null,
298  "restaurantData": {}
299}

💰 How much will scraping Google Maps cost you?

In our experience, you can get between 15,000 and 20,000 results within the $49 Starter plan. However, when it comes to scraping, it can be challenging to estimate the resources needed to extract data as use cases may vary significantly. That's why the best course of action is to run a test scrape with a small sample of input data and limited output. You’ll get your price per scrape, which you’ll then have to multiply by the number of scrapes you intend to do.

Watch this video for a few helpful tips. And don't forget that choosing a higher plan will save you money in the long run.

You also might want to consider using our newer scrapers - 🏎 Google Maps Extractor ($6/1,000 places) or 💼 Google Maps Business Scraper ($4/1,000 places). They offer fewer features, but are lightweight, fast, and come with predictable pricing.

⬇️ Input example

The input for Google Maps Scraper should be either a Google Maps URL or a location + search term combo. You can also set up extracting any details on top such as images, reviews, amenities, and so on.

You can set up the input programmatically or use the fields in scraper’s interface:

How to use search terms and categories

Search terms

Each search term is scraped separately for the whole area. Thus 10 search terms will take 10 times as long as a single search term. Use only a smaller count of non-overlapping search terms to optimize the scraping process. A big list of very similar search terms will increase the runtime without providing much additional data.

Example of a good list of search terms: [restaurant, hotel, grocery, pharmacy] Example of a bad list of search terms: [restaurant, restaurants, chinese restaurant, cafe, coffee, coffee shop, takeout]

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 more results if you use them as separate search terms. There isn't a hard rule on when to use a single search term or multiple, you might need a test run on a small location for your particular search terms and make a tradeoff. In any case, avoid very similar search terms.

Categories

Using categories is dangerous!

Search terms can introduce false positive results (e.g. categories you don't want). Categories can be used to narrow down the results only to the ones you select.

Categories are dangerous because they can cause false negatives, excluding places you want in the results. Google has thousands of categories and there are many synonymous ones. Moreover, the categories are selected by the place owners so they can always introduce arbitrary ones. You must list all categories you want to match, including all synonyms! E.g. Divorce lawyer, Divorce service, and Divorce attorney are distinct categories and some places might have only one of them and you have to include that one.

To help with this, our Actor tries to increase the chance of a match:

  • 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. restaurant will match Chinese restaurant and Pan 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.

⬆️ Output example

The results will be wrapped into a dataset which you can find in the Storage tab. Note that the output is organized in table and tabs for viewing convenience:


Once the run is finished, you can download the dataset in various data formats (JSON, CSV, Excel, XML, HTML). Note that you can always set up additional fields to filter out specific Google Maps data before you decide to export it.

This is what you’d get for:

⭐️ Reviews

1"reviews": [
2    {
3      "name": "Rocco Castellano",
4      "text": "Excellent  food great service n always  on time",
5      "textTranslated": null,
6      "publishAt": "a month ago",
7      "publishedAtDate": "2024-10-11T01:23:42.544Z",
8      "likesCount": 0,
9      "reviewId": "ChdDSUhNMG9nS0VJQ0FnSURuNV9DVnFRRRAB",
10      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSURuNV9DVnFRRRAB!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgIDn5_CVqQE%7CCgwInvyhuAYQyOjhgwI%7C?hl=en",
11      "reviewerId": "108813127648936384314",
12      "reviewerUrl": "https://www.google.com/maps/contrib/108813127648936384314?hl=en",
13      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjXRb3lzFb-4SdRMWMlaaECCmdFwULv7bvKKVOK-3mmDcBWyJnY3XQ=s120-c-rp-mo-ba4-br100",
14      "reviewerNumberOfReviews": 74,
15      "isLocalGuide": true,
16      "reviewOrigin": "Google",
17      "stars": 5,
18      "rating": null,
19      "responseFromOwnerDate": null,
20      "responseFromOwnerText": null,
21      "reviewImageUrls": [],
22      "reviewContext": {},
23      "reviewDetailedRating": {
24        "Food": 5,
25        "Service": 5,
26        "Atmosphere": 5
27      }
28    },
29    {
30      "name": "Katelyn Cohen",
31      "text": "I been going here for 11 years me and my family love the food it has good prices I go here all the time best place to get Chinese food in the world and NY",
32      "textTranslated": null,
33      "publishAt": "3 years ago",
34      "publishedAtDate": "2020-12-24T01:36:17.156Z",
35      "likesCount": 4,
36      "reviewId": "ChdDSUhNMG9nS0VJQ0FnSURTNXMzdjRnRRAB",
37      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSURTNXMzdjRnRRAB!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgIDS5s3v4gE%7CCgsIkeGP_wUQ4OfsSg%7C?hl=en",
38      "reviewerId": "104641749393917170180",
39      "reviewerUrl": "https://www.google.com/maps/contrib/104641749393917170180?hl=en",
40      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjWQApN9YqmYBdc8IWvLzbMLMzRZ1uc0cRpT0Jw5DONJ_cY5crwjEw=s120-c-rp-mo-br100",
41      "reviewerNumberOfReviews": 2,
42      "isLocalGuide": false,
43      "reviewOrigin": "Google",
44      "stars": 5,
45      "rating": null,
46      "responseFromOwnerDate": "2021-01-23T20:14:35.000Z",
47      "responseFromOwnerText": "Thank you for your support and trust,it’s our pleasure!😊",
48      "reviewImageUrls": [
49        "https://lh5.googleusercontent.com/p/AF1QipPP1aUFXkKd56fIPq_1QzEPICaJ9XcT9gf3lIZU=w1920-h1080-k-no-p",
50        "https://lh5.googleusercontent.com/p/AF1QipPP56i_SEY_Rz-qRk_iwTZv24Dg9bTpJspmI59C=w1920-h1080-k-no-p"
51      ],
52      "reviewContext": {},
53      "reviewDetailedRating": {}
54    },
55    {
56      "name": "Richard Chan",
57      "text": "This place has incredible service. The food here is great and the dumplings are immaculate. All the staff members are incredibly nice and friendly. You can also tell that they reguraly change their oil based on the taste. They also offer to bring my food out too me due to me being to big to fit through the door. This place is a 10/10 and I would recommend friends and family coming to eat in this place.",
58      "textTranslated": null,
59      "publishAt": "2 years ago",
60      "publishedAtDate": "2022-06-16T18:22:02.601Z",
61      "likesCount": 4,
62      "reviewId": "ChdDSUhNMG9nS0VJQ0FnSUNPcmE2YXRRRRAB",
63      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUNPcmE2YXRRRRAB!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgICOra6atQE%7CCgwIyumtlQYQkMDpngI%7C?hl=en",
64      "reviewerId": "115487239877451343603",
65      "reviewerUrl": "https://www.google.com/maps/contrib/115487239877451343603?hl=en",
66      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjXIbPPLwAKieiswv4uasaglfSaRg2IdnX_K1Kax0YOvXVVjYpm4=s120-c-rp-mo-br100",
67      "reviewerNumberOfReviews": 3,
68      "isLocalGuide": false,
69      "reviewOrigin": "Google",
70      "stars": 5,
71      "rating": null,
72      "responseFromOwnerDate": null,
73      "responseFromOwnerText": null,
74      "reviewImageUrls": [],
75      "reviewContext": {},
76      "reviewDetailedRating": {}
77    },
78    {
79      "name": "Stacie Stewart",
80      "text": "Really impressed. Ordered for the first time on Sunday. Lo mein. Chicken over brocollli and the beef with veg all great. Super fresh. Will be back",
81      "textTranslated": null,
82      "publishAt": "a year ago",
83      "publishedAtDate": "2023-11-28T15:12:21.794Z",
84      "likesCount": 2,
85      "reviewId": "ChdDSUhNMG9nS0VJQ0FnSUNsNTZfcXN3RRAB",
86      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUNsNTZfcXN3RRAB!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgICl56_qswE%7CCgwI1YaYqwYQyK-G-wI%7C?hl=en",
87      "reviewerId": "117999165895892339235",
88      "reviewerUrl": "https://www.google.com/maps/contrib/117999165895892339235?hl=en",
89      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjVQldk278BqdyD3DoCQImtBNbzgPCEbr6Unc9PjBKccgpUTe2c=s120-c-rp-mo-br100",
90      "reviewerNumberOfReviews": 30,
91      "isLocalGuide": false,
92      "reviewOrigin": "Google",
93      "stars": 5,
94      "rating": null,
95      "responseFromOwnerDate": null,
96      "responseFromOwnerText": null,
97      "reviewImageUrls": [],
98      "reviewContext": {
99        "Service": "Take out",
100        "Meal type": "Dinner",
101        "Price per person": "$10–20"
102      },
103      "reviewDetailedRating": {
104        "Food": 5,
105        "Service": 5
106      }
107    },
108    {
109      "name": "Joan",
110      "text": "I just ordered the boneless spareribs combo. I just want you to know the spareribs were great, but the fried rice tastes disgusting. Maybe it is old and shouldn't be used anymore or it was just a bad day.",
111      "textTranslated": null,
112      "publishAt": "2 years ago",
113      "publishedAtDate": "2022-08-02T22:06:02.619Z",
114      "likesCount": 0,
115      "reviewId": "ChZDSUhNMG9nS0VJQ0FnSUN1dGVPU0xBEAE",
116      "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUN1dGVPU0xBEAE!2m1!1s0x0:0x6cc8dba851799f09!3m1!1s2@1:CIHM0ogKEICAgICuteOSLA%7CCgwIyr-mlwYQqJWwpwI%7C?hl=en",
117      "reviewerId": "110503721202693066085",
118      "reviewerUrl": "https://www.google.com/maps/contrib/110503721202693066085?hl=en",
119      "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjXzI2ik4ljVi5jLSsgG8Ab9ARU2byA3EIyz1kWzMChYlEJZCNE=s120-c-rp-mo-br100",
120      "reviewerNumberOfReviews": 14,
121      "isLocalGuide": false,
122      "reviewOrigin": "Google",
123      "stars": 3,
124      "rating": null,
125      "responseFromOwnerDate": null,
126      "responseFromOwnerText": null,
127      "reviewImageUrls": [],
128      "reviewContext": {
129        "Service": "Delivery",
130        "Meal type": "Dinner",
131        "Price per person": "$10–20"
132      },
133      "reviewDetailedRating": {}
134    }
135]

📊 Popular times

1"popularTimesHistogram": {
2    "Su": [
3        {
4            "hour": 6,
5            "occupancyPercent": 0
6        },
7        // etc...
8    ],
9    "Mo": [
10        {
11            "hour": 6,
12            "occupancyPercent": 0
13        },
14        // etc...
15    ],
16    // etc...
17},

⌚️ Opening hours

1"openingHours": [
2    {
3        "day": "Monday",
4        "hours": "10:30 AM to 11 PM"
5    },
6    {
7        "day": "Tuesday",
8        "hours": "10:30 AM to 11 PM"
9    },
10    {
11        "day": "Wednesday",
12        "hours": "10:30 AM to 11 PM"
13    },
14    {
15        "day": "Thursday",
16        "hours": "10:30 AM to 11 PM"
17    },
18    {
19        "day": "Friday",
20        "hours": "10:30 AM to 12 AM"
21    },
22    {
23        "day": "Saturday",
24        "hours": "11 AM to 12 AM"
25    },
26    {
27        "day": "Sunday",
28        "hours": "11 AM to 10 PM"
29    }
30]

🧑‍🦽Additional info

1"additionalInfo": {
2    "Service options": [
3        {
4            "Outdoor seating": true
5        },
6        {
7            "Delivery": true
8        },
9        {
10            "Takeout": true
11        },
12        {
13            "Dine-in": true
14        }
15    ],
16    "Accessibility": [
17        {
18            "Wheelchair accessible entrance": true
19        },
20        {
21            "Wheelchair accessible parking lot": true
22        },
23        {
24            "Wheelchair accessible restroom": true
25        },
26        {
27            "Wheelchair accessible seating": true
28        }
29    ],
30    "Offerings": [
31        {
32            "Alcohol": true
33        },
34        {
35            "Beer": true
36        },
37        {
38            "Coffee": true
39        },
40        {
41            "Happy hour food": true
42        },
43        {
44            "Hard liquor": true
45        },
46        {
47            "Wine": true
48        }
49    ],
50    "Dining options": [
51        {
52            "Lunch": true
53        },
54        {
55            "Dinner": true
56        },
57        {
58            "Dessert": true
59        },
60        {
61            "Seating": true
62        }
63    ],
64    "Amenities": [
65        {
66            "Bar onsite": true
67        },
68        {
69            "Good for kids": true
70        },
71        {
72            "Restroom": true
73        },
74        {
75            "Free Wi-Fi": true
76        }
77    ],
78    "Atmosphere": [
79        {
80            "Casual": true
81        },
82        {
83            "Cozy": true
84        }
85    ],
86    "Crowd": [
87        {
88            "Groups": true
89        }
90    ],
91    "Planning": [
92        {
93            "Accepts reservations": true
94        }
95    ],
96    "Payments": [
97        {
98            "Debit cards": true
99        },
100        {
101            "NFC mobile payments": true
102        },
103        {
104            "Credit cards": true
105        }
106    ]
107}

🏨 Hotels

1"moreHotelsOptions": [
2  {
3    "url": "<https://www.booking.com/hotel/us/pittsburgh-3454-forbes.html?&checkin=2023-03-10&checkout=2023-03-11&group_adults=2&req_adults=2&show_room=33940104_356536769_2_2_0&lang=en&selected_currency=USD&exrt=1.00000000&ext_price_total=345.21&ext_price_tax=42.39&xfc=USD&group_children=0&req_children=0&&exfcam=_2&ts=1673860104&no_rooms=1&utm_source=metagha&utm_medium=mapresults&utm_campaign=US&utm_term=hotel-339401&utm_content=dev-desktop_los-1_bw-53_dow-Friday_defdate-1_room-0_gstadt-2_rateid-public_aud-0_gacid-_mcid-10_ppa-0_clrid-0_ad-0_gstkid-0_checkin-20230310_&aid=2127489&label=metagha-link-MRUS-hotel-339401_dev-desktop_los-1_bw-53_dow-Friday_defdate-1_room-0_gstadt-2_rateid-public_aud-0_gacid-_mcid-10_ppa-0_clrid-0_ad-0_gstkid-0_checkin-20230310_>",
4    "title": "Booking.com",
5    "price": "$303"
6  },
7  {
8  "url": "<https://www.hotels.com/Hotel-Search?selected=118998&startDate=2023-03-10&endDate=2023-03-11&>",
9  "title": "Hotels.com",
10  "price": "$303"
11  },
12],
13"similarHotelsNearby": [
14  {
15    "name": "Residence U Malvaz",
16    "rating": 4.3,
17    "reviews": 406,
18    "description": "Cozy hotel offering a restaurant",
19    "price": "$70"
20  },
21  {
22    "name": "Hotel U Zlatého Stromu",
23    "rating": 3.6,
24    "reviews": 656,
25    "description": "Refined rooms, plus breakfast & dining",
26    "price": "$64"
27  },
28],
29"hotelReviewSummary": {
30    "overall": {
31        "rating": 4.3,
32        "rooms": {
33            "rating": 3.4,
34            "reviews": [
35                "Guests liked the large rooms, though some said they were dated & maintenance could be improved",
36                "Rooms had views",
37                "Some guests mentioned bathroom cleanliness could be improved"
38            ]
39        },
40        "location": {
41            "rating": 4.35,
42            "reviews": [
43                "Near the city center; shopping, sightseeing, restaurants & bars nearby",
44                "Near public transit & the train station",
45                "Easily accessible by car"
46            ]
47        },
48        "servicesAndFacilities": {
49            "rating": 4.2,
50            "reviews": [
51                "Guests appreciated the friendly, professional staff",
52                "Conference space",
53                "Some guests said management could be improved"
54            ]
55        }
56    },
57},
58"hotelAds": [
59    {
60        "title": "Quality Inn & Suites North Mesquite I-30",
61        "googleUrl": "http://www.google.com/travel/clk?pc=AA80OsyEKcU8peDzfXQPvpUG67kThVMYt85_l5PBUvzONEzm22E30zXIXryhMcv0fx-v-vXnQGIgqZhdJEtg4KHVb9yU_i2purmPtJJGGfRHGdvoAOBSb5Es6Q97G5hl&pcurl=https://travel-productads.koddi.com/PropertyAdvocateAPI/ClickRedirect?client%3DChoice%26channel%3DGHPA%26placement%3Dmapresults%26campaign%3D%26hotel%3DTXM53%26destinationUrl%3Dhttps://www.choicehotels.com/TXM53-rates?checkInDate%3D2023-10-31%26checkOutDate%3D2023-11-01%26srp%3DSAPR1%26adults%3D2%26minors%3D0%26mc%3DHAGOHPUS%26meta%3DPMFGPADUSSAPR1_TXM53_mapresults_UA_1_desktop_2023-10-31_default___organic%26gal%3D%26pmf%3Dhpagoogle%26gpa%3DGPADSAPR1%26rooms%3D1%26gmp%3DMetaOrganic%26product%3Dmapresults",
62        "isOfficialSite": true,
63        "price": "UAH 3,301",
64        "url": "https://travel-productads.koddi.com/PropertyAdvocateAPI/ClickRedirect?client=Choice&channel=GHPA&placement=mapresults&campaign=&hotel=TXM53&destinationUrl=https://www.choicehotels.com/TXM53-rates?checkInDate=2023-10-31&checkOutDate=2023-11-01&srp=SAPR1&adults=2&minors=0&mc=HAGOHPUS&meta=PMFGPADUSSAPR1_TXM53_mapresults_UA_1_desktop_2023-10-31_default___organic&gal=&pmf=hpagoogle&gpa=GPADSAPR1&rooms=1&gmp=MetaOrganic&product=mapresults"
65    },
66    {
67        "title": "Priceline",
68        "googleUrl": "http://www.google.com/travel/clk?pc=AA80OswzeSZnWc2GmNOarZNhUy6VjtVUcK1-PukCoK5E2QdYOn4bEYCV0qiVDdVrP9_peY2pAak4rl0np9-nJvvmPkrqrfQodCIXRy5j9HGCzrNnTtR14xh3oEmD3_dWOIfMiVY&pcurl=https://www.priceline.com/r/?channel%3Dmeta%26product%3Dhotel%26theme%3Dghalistings%26refid%3DPLGOOGLEMSS%26refclickid%3DUA_HP%257C1355603_mapresults_1%257C20231031%257Cdesktop%257Cdefaultdate%7Cpublic%7C%7C%7C13%257C2%257C0%7C0%26hotelid%3D1355603%26checkin%3D20231031%26checkout%3D20231101%26rooms%3D1%26currency%3DUSD%26displayedCurr%3DUAH%26pOSCountryCode%3DUA%26taxDisplayMode%3DBP%26cityid%3D3000021516%26adults%3D2%26land%3DL%26metaid%3DjEaTJFi32p0SD8afEYFLBreXOYQj6zSfalpufEB8GYEio8Cydl0_T3F5VOCbPgeEqSvUJXpBrn1qr1wMxewrNLQaT-ZaAl5KC29DC8VOxBTlhK42D_VSf0bdeeFXnEjk3JO0RbUY4vmkCdlkpWaG76n4VGXSe-4zBDpLMKdOyzP5WX1T8Fly6Mi_Cd-cxKmxkCinAwZb_UmvSj0pJm9zq1SfiyGSg_ZU8g6M_DmKnfBYQBUfoaKycD9i9qSIIq7DggIm4b_xNveZdVmSnfFzIw%26dblcnt%3Dtrue%26user_num_adults%3D2%26pdtax%3D358.54%26pdt%3D3117.80",
69        "isOfficialSite": false,
70        "price": "UAH 3,118",
71        "url": "https://www.priceline.com/r/?channel=meta&product=hotel&theme=ghalistings&refid=PLGOOGLEMSS&refclickid=UA_HP|1355603_mapresults_1|20231031|desktop|defaultdate|public|||13|2|0|0&hotelid=1355603&checkin=20231031&checkout=20231101&rooms=1&currency=USD&displayedCurr=UAH&pOSCountryCode=UA&taxDisplayMode=BP&cityid=3000021516&adults=2&land=L&metaid=jEaTJFi32p0SD8afEYFLBreXOYQj6zSfalpufEB8GYEio8Cydl0_T3F5VOCbPgeEqSvUJXpBrn1qr1wMxewrNLQaT-ZaAl5KC29DC8VOxBTlhK42D_VSf0bdeeFXnEjk3JO0RbUY4vmkCdlkpWaG76n4VGXSe-4zBDpLMKdOyzP5WX1T8Fly6Mi_Cd-cxKmxkCinAwZb_UmvSj0pJm9zq1SfiyGSg_ZU8g6M_DmKnfBYQBUfoaKycD9i9qSIIq7DggIm4b_xNveZdVmSnfFzIw&dblcnt=true&user_num_adults=2&pdtax=358.54&pdt=3117.80"
72    }
73]

✍️ Updates from customers

1"updatesFromCustomers": {
2    "text": "Disneyland California Adventure small area with large park all inclusive celebrations. This is a glimpse into Los Reyes parade.  I'm a true fan. Thanks",
3    "language": "en",
4    "postDate": "a week ago",
5    "postedBy": {
6        "name": "Kayla Arredondo",
7        "url": "<https://www.google.com/maps/contrib/102968882116587973980?hl=en-US>",
8        "title": "Local Guide",
9        "totalReviews": 225
10    },
11    "media": [
12        {
13            "link": "<https://lh3.googleusercontent.com/ggms/AF1QipNNaoT0NSbcWOPSduvZNqJ0kSqUs-dod32FeBtr=m18>",
14            "postTime": "a week ago"
15        }
16    ]
17}

❓Questions and answers

1"questionsAndAnswers": [{
2    "question": "Which is the best easier way to drop off a family to Disneyland Park",
3    "answer": "best way for drop off family is at down town Disney. Drop them off then you can take a short walk to the park. ",
4    "askDate": "5 years ago",
5    "askedBy": {
6        "name": "Cecilia Salcedo",
7        "url": "<https://www.google.com/maps/contrib/109041536347893604294>"
8    },
9    "answerDate": "5 years ago",
10    "answeredBy": {
11        "name": "Gabby Lujan",
12        "url": "<https://www.google.com/maps/contrib/105966144333216697667>"
13    }
14}]

🌐 Web results

1"webResults": [
2    {
3        "title": "Hotel & restaurant SIGNAL, Pardubice – Updated 2023 Prices",
4        "displayedUrl": "<https://www.booking.com> › hotel › signal",
5        "description": "Located 1.2 mi from Pardubice city center, this hotel offers a ... Josefa Janáčka 708, Pardubice, 53012, Czech Republic – Great location - show map."
6    },
7    {
8        "title": "Hotel & restaurant SIGNAL, Pardubice - Booking.com",
9        "displayedUrl": "<https://www.booking.com> › signal.en-gb.html",
10        "description": "Located 2 km from Pardubice city centre, this hotel offers a traditional ... Josefa Janáčka 708, Pardubice, 53012, Czech Republic – Great location - show ..."
11    },
12    {
13        "title": "Hotel & restaurant SIGNAL, Pardubice - 2023 Reviews ...",
14        "displayedUrl": "<https://www.agoda.com> › ... › Pardubice Hotels",
15        "description": "Hotel & restaurant SIGNAL. Josefa Janáčka 708, Pardubice III, Pardubice, Czech Republic, 53012 - See map."
16    }
17],

🖼 Image authors

1{
2    "images": [
3        {
4            "imageUrl": "https://lh5.googleusercontent.com/p/AF1QijfewfPM7p9nKx5nYTe1T-dwfjiwofjwi=w1920-h1080-k-no",
5            "authorName": "owpokes",
6            "authorUrl": "https://maps.google.com/maps/contrib/57239857238562329823052835232942342342338523",
7            "uploadedAt": "2024-02-05T00:00:00.000Z"
8        }
9    ]
10}

🏩 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:

1{
2  "url": "https://www.google.com/maps/place/Al Eairy Furnished Apartments Al Madinah 9/@24.4857006,39.6083984,14z/data=!3m1!4b1!4m9!3m8!5m2!4m1!1i2!8m2!3d24.4857006!4d39.6083984!16s%2Fg%2F11pkhzvq1s!17BQ0FF",
3  "isExternalServicePlace": true,
4  "externalServiceProvider": "SuperTravel",
5  "externalId": "/g/11pkhzvq1s"
6}

Visualizing scraped results

Google Maps Scraper provides a visual map page that renders the scraped places. You can zoom in and out to for different granulatity. The map is shown in the "Live View" tab on the actor run page and also stored in the Key-Value Store as results-map.html record.


🧑‍🏫 How do I use Google Maps Scraper?

To understand how to set up and run the scraper, you can follow our step-by-step guide or watch this short video tutorial ▷ on YouTube:

📚 Resources on how to scrape Google Maps

Guides

Videos

📍📡 Location vs. Geolocation

Location, country, state, county, city, and postal code

Using free text in 📍 Location field should normally be enough. But you can instead turn to 📡 Geolocation parameters field and use a combination of country, state, county, city, and postalCode in if 📍 Location isn’t specific enough for your search.

This scraper uses Open Street Map for geolocation API. You can easily check the location matching your geolocation input on the official Open Street Map page.

📡 Geolocation parameters section

This section will teach you to customize geolocation features, overcome the 120 results limit or skip large areas such as lakes or forests.

You can also follow this video guide or this step-by-step explanation.

🔎 Automatic zooming to overcome the Google Maps limit

If you look at Google Maps website, you’ll notice that when zooming out, you can see less of Google places pins. You'll also notice that zooming in on smaller areas (making zoom higher) can uncover many of those hidden pins. The advantage of higher zoom is that it can find - and scrape - more places (shown as pins). However, locations with higher zoom also take significantly longer to scrape and are more computationally expensive. Generally, there are diminishing returns for increasing zoom.

By default, you don’t have to set up this parameter. The scraper automatically zooms on the location on Google Maps to ensure the most efficient scraping based on the size of the scraped area. But of course, you can override the default zoom. zoom can be any number between 1 (a whole globe) and 21 (a few houses). Currently, example zoom values for various locations are (maximum for automatic is 17):

  • United States - 10 zoom (10,371,139 km2)
  • Germany - 12 zoom (380,878 km2)
  • London - 15 zoom (1,595 km2)
  • Manhattan - 16 zoom (87.5 km2)
  • Soho - 17 zoom (0.35 km2)

If you need guidance on how to run the Google Maps Scraper with zoom, follow our step-by-step tutorial 🔗 or video guide ▷ on YouTube.

🛰 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. As an example, see the geojson field in Nominatim Api (example of Cambridge in Great Britain).

There are several types of search area geometry that you can use in Google Maps Scraper: Polygon, MultiPolygon and Point (Circle). All of them follow the official Geo Json RFC and all types are supported. We’ve found the polygons and circle to be the most useful ones when it comes to scraping.

Note that the order of longitude and latitude is reversed in GeoJson 🔄 compared to the Google Maps website. The first field must be longitude ↕️, the second field must be latitude ↔️.

We recommend using Geojson.io to create customGeolocation of any type/shape in correct format. You can watch this video on how to use it together with our scraper.

💠 Polygon

The most common type is a polygon, which is a set of points that define the scraped area. Note that the first and last pair of coordinates must be identical (to close the polygon). This example covers most of the city of London, UK:

1{
2    "type": "Polygon",
3    "coordinates": [
4        [
5            [
6                // Must be the same as last one
7                -0.322813, // Longitude
8                51.597165 // Latitude
9            ],
10            [
11                -0.314990,
12                51.388023
13            ],
14            [
15                0.060493,
16                51.389199
17            ],
18            [
19                0.051936,
20                51.600360
21            ],
22            [
23                // Must be the same as the first one
24                -0.322813,
25                51.597165
26            ]
27        // ...
28        ]
29    ]
30}

💠💠 MultiPolygon

MultiPolygon can combine more polygons that are not continuous together (can be an island + part of mainland). Same as with the polygon, make sure the first and the last pair of coordinates in each polygon are identical.

1{
2    "type": "MultiPolygon",
3    "coordinates": [
4        [ // first polygon
5            [
6                [
7                    12.0905752, // Longitude
8                    50.2524063  // Latitude
9                ],
10                [
11                    12.1269337,
12                    50.2324336
13                ],
14                // ...
15            ]
16        ],
17        [
18            // second polygon
19            // ...
20        ]
21    ]
22}

🔘 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:

1{
2    "type": "Point",
3    "coordinates": ["7.5503", "47.5590"],
4    "radiusKm": 8
5}

✨ How to choose the best tool to scrape Google Maps?

📍 Google Maps Scraper was Apify's original solution for scraping Google Maps. Developed in 2016, this web scraper can extract all data from Google places but it was built with pay-per-platform-usage pricing model. Despite its great capabilities, due to its legacy Google Maps Scraper might get too slow for some use cases and be less predictable price-wise (hence, the paragraph above ⬆️).

To address this concern, in 2024 we developed two new Google Maps scrapers that use a much faster scraping method and a more predictable price-per-result pricing model: 🏎 Google Maps Extractor and 💼 Google Maps Business Scraper. The speed of these new scrapers can get up to 50 times faster than that of the original Google Maps Scraper. All three scrapers are being continuously improved, but they cover slightly different use cases. We encourage you to explore them and pick the right Google Maps scraper for you:

📍 Google Maps Scraper🏎 Google Maps Data Extractor💼 Google Maps Business Scraper
Scrape by: Location 📍 + search term 🔍
Scrape by: Location 📍 + Google Maps category 🏛
Scrape by: Google Maps search URLs 🔗
Scrape by: Google place URLs 🔗 or placeIDs 🆔
Define location: by city, country, state, US county, or postal code
Define geolocation and coordinates (polygons, multipolygons, circles)
Speed🚙 Slower🏎💨 Extremely fast🏎 Very fast
Extracts place details: contact details, prices, opening hours, rating, etc. Full list here Full list here Full list here
Extracts images, reviews, web results, order by info, Q&A and updates
Pricing for 1,000 results⚠️ depends on complexity of your search$6 for 1,000 places$4 for 1,000 places
📍 Google Maps Scraper🏎 Google Maps Data Extractor💼 Google Maps Business Scraper

❓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. So, if you want to scrape data for bars in New York, for example, you'll get results for only 60 of the thousands of bars in the area.

Google Maps Scraper imposes no rate limits or quotas and provides more 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?

While Google Maps Scraper supports only single location query, you can use Google Maps Scraper Orchestrator to scrape multiple locations with a single list. It will automatically run the Google Maps Scraper for each location in the list and merge the results. It also fully uses your Apify account memory for maximum speed. If you want to use only Google Maps Scraper, you can add multiple locations using customGeolocation with multiple polygons.

How can I increase the speed of the scraper?

You can increase the run memory up to 32 GB per run. To speed up the scraping even more, you can run several runs at once to fully utilize all your account memory. To make this simpler, you can use the Google Maps Scraper Orchestrator to split locations or search terms over multiple runs, deduplicate the results and collect them to a single dataset.

What Google Maps data can I scrape?

With this Google Maps scraper, what you see is what you get. You can use this tool to get the following data from Google Maps:

🔗 Title/name 📝 Subtitle, category, place ID, and URL
📍 Address🌍 Location, plus code and exact coordinates
☎️ Phone🌐 Website, if available
🏷 Menu💲 Price bracket
🔒 Temporarily or permanently closed status⛽️ Gas prices
⭐️ Average rating (totalScore)📊 Review count and review distribution
➕ List of detailed characteristics (additionalInfo)📸 List of images
🧑‍🍳 Opening hours⌚️ Popular times - histogram & live occupancy
🏨 Hotel booking URL and price + nearby hotels🔍 People also search
🙋 Updates from customers & Questions and answers🌐 Web results

Can I use the Google Maps scraper to extract Google reviews?

Yes. This Google Maps scraper also supports the extraction of detailed information about reviews on Google Maps. Note that Personal data extraction about reviewers is also possible but has to be explicitly enabled in input (see the Legality of scraping Google Maps section).

📝 Review text📅 Published date
🌟 Stars🆔 Review ID & URL
✅ Response from the owner - text📷 List of review images
💬 Review context📊 Detailed rating per service
🧛 Reviewer’s name ✍️ Reviewer’s number of reviews
🖼 Reviewer’s ID, URL & photo 👋 IsLocalGuide

How can I get one review per row in the output?

If you need to view reviews in a table with each review in a separate row, you can click on the Reviews (if any) Export dataset view.

To use this view via API, you need to add &view=reviews to the dataset export URL. E.g. https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true&format=json&view=reviews

If you don't use the Reviews (if any) view, each output place item will contain a maximum of 5,000 reviews (in table format, it means a lot of columns). So if there are more reviews for that place, a duplicate place will be stored with the next 5,000 reviews, and so on. For instance, in a case of 50,000 reviews, the resulting dataset will have 10 items for the same place. We have this limitation due to the size limit of a single item in the Apify dataset.

Here is the text with "Facebook Games Scraper" replaced by "Google Maps Scraper":

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.

You can also use webhooks to carry out an action whenever an event occurs, for example, get a notification whenever Google Maps Scraper successfully finishes a run.

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.

For detailed information and code examples, see the API tab or refer to the Apify API documentation.

Can I use this Google Maps Scraper API in Python?

Yes, you can use the Apify API with Python. To access the Google Maps Scraper API with Python, use the apify-client PyPI package. You can find more details about the client in our Python Client documentation.

What are other tools for scraping Google Maps services?

Use the dedicated scrapers below if you want to scrape specific Google Maps data. Each of them is built particularly for the relevant map scraping case be it reviews only, gas prices, OCR from pins, or itineraries. Feel free to browse them:

📩 Google Maps Email Extractor⭐️ Google Maps Reviews Scraper
🪢 Google Maps Scraper Orchestrator⭐️ AI Text Analyzer for Google Reviews
🧭 Google Maps Itinerary🍃 Fast Google Maps Scraper
🍎 Apple Maps Scraper ⛽️ Gas Prices Scraper

Web scraping is legal if you are extracting publicly available data which is most data on Google Maps. However, you should respect boundaries such as personal data and intellectual property regulations. You should only 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.

Developer
Maintained by Apify

Actor Metrics

  • 3.4k monthly users

  • 606 stars

  • 98% runs succeeded

  • 5.8 days response time

  • Created in Nov 2018

  • Modified 8 hours ago