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

🔍 Search term(s)

searchStringsArrayarrayOptional

Type what you want to search for as you would write it into the Google Maps search bar, e.g. restaurant or pet shelter. The search terms should be unique because each requires the same processing time. Using similar terms is less efficient because of overlap but can slightly increase the capture rate (e.g. bar vs restaurant vs cafe).
Putting location directly into search terms, e.g. restaurant Pittsburgh, is not recommended because you will only get max 120 results per search (Google's scrolling limit on a single search) but it can be done for speed. You can also use direct place IDs here in the format place_id:ChIJ8_JBApXMDUcRDzXcYUPTGUY

📍 Location (only use ONE location at a time)

locationQuerystringOptional

Free text location definition. Generally, simpler locations work better, e.g. prefer using city and country, not city, country and state. Use OpenStreeMap webapp for visual validation of the exact covered area. If you use Zip codes, you must use them with country name (not city name!). You can always fallback to Geolocation section where you can select country, state, county, city and postalCode. Keep in mind that Location has always preference of these.

Limit the number of places per each search term/URL

maxCrawledPlacesPerSearchintegerOptional

This is the maximum number of results you will obtain for each search term or URL.
A higher number will take longer to scrape. If you want to scrape all places available, set this value to 9999999. If the number is less than 200, deeperCityScrape will be disabled

Language

languageEnumOptional

Results details will show in this language.

Value options:

"en": string"af": string"az": string"id": string"ms": string"bs": string"ca": string"cs": string"da": string"de": string"et": string"es": string"es-419": string"eu": string"fil": string"fr": string"gl": string"hr": string"zu": string"is": string"it": string"sw": string"lv": string"lt": string"hu": string"nl": string"no": string"uz": string"pl": string"pt-BR": string"pt-PT": string"ro": string"sq": string"sk": string"sl": string"fi": string"sv": string"vi": string"tr": string"el": string"bg": string"ky": string"kk": string"mk": string"mn": string"ru": string"sr": string"uk": string"ka": string"hy": string"iw": string"ur": string"ar": string"fa": string"am": string"ne": string"hi": string"mr": string"bn": string"pa": string"gu": string"ta": string"te": string"kn": string"ml": string"si": string"th": string"lo": string"my": string"km": string"ko": string"ja": string"zh-CN": string"zh-TW": string

Default value of this property is "en"

🖼 Limit number of images (images are very slow)

maxImagesintegerOptional

Maximum number of images per place. If you fill in '0' or leave the field empty, no images will be scraped. To extract all images, type 99999 into the field. The higher the number, the slower the search.

🧑‍🎨 Include the image authors (slower)

scrapeImageAuthorsbooleanOptional

Include the author name for each image. This will be slower, because it requires to fetch the information for each image individually.

Default value of this property is false

🔗 I want to scrape only data from search page (no website, phone or contact details)

onlyDataFromSearchPagebooleanOptional

The results will only show data from the search page, but no other details. This speeds up the scrape significantly. For each place it extracts ONLY isAdvertisement, title, placeId, location, address, neighborhood, street, city, postalCode, state, countryCode, categoryName, categories, url

Default value of this property is false

🌐 Include "Web results"

includeWebResultsbooleanOptional

Extract the bottom "Web results" section of place data. It slightly increases compute and proxy usage.

Default value of this property is false

Scrape inside places (e.g. malls)

scrapeDirectoriesbooleanOptional

Some places (e.g. malls) can have multiple places located inside them. Turn this option on to include those places in your results (onlyDataFromSearchPage option needs to be disabled in order to scrape directories).

Default value of this property is false

Scrape table reservation provider data

scrapeTableReservationProviderbooleanOptional

Scrape table reservation provider data like name, address, email or phone. This data is present only in restaurants that have blue "RESERVE A TABLE" button

Default value of this property is false

Deeper city scrape (more places extracted)

deeperCityScrapebooleanOptional

Enables to extract significantly more places from larger areas because each city inside the region is more focused. It also helps the scraper to skip areas without any population like deserts, mountains or oceans. This is especially important for countries with larger areas without population like Australia or Canada.

Be aware that enabling this feature increases the runtime (by extracting more places). This feature will likely become a default setting in the near future but is currently opt-in to allow for smooth transition.

Default value of this property is false

Limit number of reviews

maxReviewsintegerOptional

This is the maximum number of reviews per place. If you fill in '0' or leave the field empty, no reviews will be scraped. To extract all reviews, type '99999' into the field. Each output place item can contain maximum 5000 reviews so in case more reviews are extracted, a duplicate place is stored with the next 5000 reviews and so on. Enabling this feature might slow the search down.

Only scrape reviews newer than [date]

reviewsStartDatestringOptional

Visual format only allows YYYY-MM-DD, e.g., 2022-02-20. But if you switch to JSON, you can use date with time in ISO format (e.g. 2024-05-03T10:00:00) or relative date with number and time unit (e.g. 8 days or 3 months).

Sort reviews by

reviewsSortEnumOptional

Define the order in which reviews should be sorted.

Value options:

"newest": string"mostRelevant": string"highestRanking": string"lowestRanking": string

Default value of this property is "newest"

Filter reviews by keyword(s)

reviewsFilterStringstringOptional

If you fill in a keyword(s), only reviews containing the keyword(s) will be scraped. If you leave the field empty, all reviews will be scraped.

Default value of this property is ""

Reviews origin

reviewsOriginEnumOptional

Select whether you want all reviews (from Google, Tripadvisor, etc.) or only reviews from Google

Value options:

"all": string"google": string

Default value of this property is "all"

Scrape Personal Data from reviews

scrapeReviewsPersonalDatabooleanOptional

This settings allows you to obtain personal data about reviewer (his ID, name, URL and his photo URL) and about review (ID and URL). Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Default value of this property is true

Max amount of questions to return

maxQuestionsintegerOptional

Maximum number of questions per place. If you fill in '0' or leave the field empty, only first question and answer will be scraped. To extract all questions, type 999 into the field.

Override zoom level

zoomintegerOptional

You don't need to set this parameter. A good value is chosen automatically based on the chosen location, see readme for more info. Changing the zoom manually may cause the cost to vary significantly.

🗺 Country (combine with other geolocation parameters or the scraper will scan the whole country!)

countryCodeEnumOptional

Set the country where the search should be carried out, e.g., United States. Warning: if used without city or other geolocation parameters, the scraper will scan the whole country!
Currently, the scraper doesn't work well for full-country searching of sparsely populated countries like the United States or Russia. For these, search city by city or focus on populated states.

Value options:

"us": string"af": string"al": string"dz": string"as": string"ad": string"ao": string"ai": string"aq": string"ag": string"ar": string"am": string"aw": string"au": string"at": string"az": string"bs": string"bh": string"bd": string"bb": string"by": string"be": string"bz": string"bj": string"bm": string"bt": string"bo": string"ba": string"bw": string"bv": string"br": string"io": string"bn": string"bg": string"bf": string"bi": string"kh": string"cm": string"ca": string"cv": string"ky": string"cf": string"td": string"cl": string"cn": string"cx": string"cc": string"co": string"km": string"cg": string"cd": string"ck": string"cr": string"ci": string"hr": string"cu": string"cy": string"cz": string"dk": string"dj": string"dm": string"do": string"ec": string"eg": string"sv": string"gq": string"er": string"ee": string"et": string"fk": string"fo": string"fj": string"fi": string"fr": string"gf": string"pf": string"tf": string"ga": string"gm": string"ge": string"de": string"gh": string"gi": string"gr": string"gl": string"gd": string"gp": string"gu": string"gt": string"gn": string"gw": string"gy": string"ht": string"hm": string"va": string"hn": string"hk": string"hu": string"is": string"in": string"id": string"ir": string"iq": string"ie": string"il": string"it": string"jm": string"jp": string"jo": string"kz": string"ke": string"ki": string"kp": string"kr": string"kw": string"kg": string"la": string"lv": string"lb": string"ls": string"lr": string"ly": string"li": string"lt": string"lu": string"mo": string"mk": string"mg": string"mw": string"my": string"mv": string"ml": string"mt": string"mh": string"mq": string"mr": string"mu": string"yt": string"mx": string"fm": string"md": string"mc": string"mn": string"me": string"ms": string"ma": string"mz": string"mm": string"na": string"nr": string"np": string"nl": string"an": string"nc": string"nz": string"ni": string"ne": string"ng": string"nu": string"nf": string"mp": string"no": string"om": string"pk": string"pw": string"ps": string"pa": string"pg": string"py": string"pe": string"ph": string"pn": string"pl": string"pt": string"pr": string"qa": string"re": string"ro": string"ru": string"rw": string"sh": string"kn": string"lc": string"pm": string"vc": string"ws": string"sm": string"st": string"sa": string"sn": string"rs": string"sc": string"sl": string"sg": string"sk": string"si": string"sb": string"so": string"za": string"gs": string"ss": string"es": string"lk": string"sd": string"sr": string"sj": string"sz": string"se": string"ch": string"sy": string"tw": string"tj": string"tz": string"th": string"tl": string"tg": string"tk": string"to": string"tt": string"tn": string"tr": string"tm": string"tc": string"tv": string"ug": string"ua": string"ae": string"gb": string"um": string"uy": string"uz": string"vu": string"ve": string"vn": string"vg": string"vi": string"wf": string"eh": string"ye": string"zm": string"zw": string

📍 City (only enter ONE city name, without state or country!)

citystringOptional

Enter the city where the search should be carried out, e.g., Pittsburgh. Warning: just add a single city and don't add state or country here.

State (combine with other geolocation inputs or the scraper will scan the whole state!)

statestringOptional

Set a state where the search should be carried out, e.g. Massachusetts (mainly for US addresses).

US county (combine with other geolocation inputs or the scraper will scan the whole county!)

countystringOptional

Set the US county where the search should be carried out, e.g., Madison.

Postal code (Enter only ONE postal code. Combine with country, not city.)

postalCodestringOptional

Set the postal code of the area where the search should be carried out, e.g., 10001. Select a country as well to ensure the correct postal code is used.
Warning: you can only input one postal code at a time.

🛰 Custom search area (coordinate order must be: [longitude, latitude])

customGeolocationobjectOptional

Use this field to define the exact search area if other search area parameters don't work for you. See readme or our guide for details.

Only selected categories

categoryFilterWordsarrayOptional

You can filter places by categories. It can be a general one, e.g. restaurant, which would accept all places with categories containing restaurant e.g. Mexican restaurant, or it can be more specific, e.g. indian restaurant accepts only places with category Indian restaurant. You can also specify categories only instead of seach terms but you can use both as well. Filtering by categories currently works only for english language. Here you can see list of all supported categories.

Title must match search term

searchMatchingEnumOptional

Restrict what places are scraped based on matching their title with provided search term

Value options:

"all": string"only_includes": string"only_exact": string

Default value of this property is "all"

⭐️ Place minimum stars

placeMinimumStarsEnumOptional

Only scrape places with a rating of at least the number of selected stars. Places without any reviews are skipped as well. Be aware that limiting by reviews lowers places found per credits spent because many places are discarded.

Value options:

"two": string"twoAndHalf": string"three": string"threeAndHalf": string"four": string"fourAndHalf": string

Default value of this property is ""

⏩ Skip closed places

skipClosedPlacesbooleanOptional

Skips places that are marked as temporary or permanently closed. This is useful if you want to get only places that are currently open.

Default value of this property is false

Skip places based on having a website

websiteEnumOptional

This is useful if you want to get only places that either have or don't have a website. This option is disabled by default

Value options:

"allPlaces": string"withWebsite": string"withoutWebsite": string

Default value of this property is "allPlaces"

Google Maps URLs

startUrlsarrayOptional

Max 300 results per search URL. To overcome this limit, use geolocation parameters above ↑

Copy URLs directly from Google Maps and paste it here. Leave empty if you have already filled the Search term field.

Valid format for URLs contains either /maps/search or /maps/place. This Actor also supports uncommon formats: google.com?cid=***, goo.gl/maps, and custom place list URL.

Scrape all places (no search term)

allPlacesNoSearchActionEnumOptional

Will scrape all places visible on the map. Use the Zoom input parameter to select the level of detail. Higher zoom will scrape more places but will take longer to finish. You can test what place pins are visible with a specific zoom by changing the 16z part of the Google Maps URL.

Value options:

"all_places_no_search_ocr": string"all_places_no_search_mouse": string

Default value of this property is ""

Developer
Maintained by Apify

Actor Metrics

  • 3.3k monthly users

  • 576 stars

  • 98% runs succeeded

  • 5.9 days response time

  • Created in Nov 2018

  • Modified 2 hours ago