logo

Google Maps Scraper | Google Maps Location Data Collection

RealdataAPI / google-maps-scraper

Scrape the data from hundreds of locations and businesses from Google Maps in a few clicks using Google Maps Scraper. Get data for various fields like location, images, reviews, opening hours, and more. Store all the data with Google Map Scraper in a usable format. Exceed the limits of Google Maps API. Our Google Maps Location Data Collection tool is available in the USA, UK, UAE, Canada, France, Germany, Spain, Singapore, Australia, Mexico, Italy, and other countries.

What is Google Maps Data Scraper, and What Does It Scrape?

With this data scraping tool to scrape Google Maps data, you can quickly collect location and business data. Our tool for crawling Google Maps allows you to scrape and compile all the below Google Maps data.

  • Location, address, exact coordinates, and code
  • Title, category, URL, subtitle, and place ID
  • Price and a menu of restaurants
  • Websites and contact details
  • Active status of businesses
  • Popular times based on live occupancy and histogram
  • Image list
  • Average ratings, review distribution and count
  • People also search
  • Opening hours
  • Detailed characteristics with additional information
  • Web results
  • Hotel booking price, URL, and nearby available hotels
  • QnA and customer updates

The crawler also helps to collect all the reviews information details as below:

  • Stars
  • Published Date
  • Review text
  • Review URL and ID
  • Image list of reviews
  • Owner response with published date and text
  • Detailed rating for each service with review context

You must enable personal data scraping of reviewing customers explicitly in the input field.

  • Name
  • URL, ID, and image
  • Review count
  • Is local guide

Google Maps API also offers below features:

  • Review sorting and filtering
  • Translation and language setting
  • Scraping and browser configuration
  • Search area zooming with automation to ensure maximum output.
  • Define location search: it permits you to define the geographical area to extract state, country, city, zip code, etc. It increases search speed with Nomatim Maps API Integration.

How Does Google Maps Data Extractor Work?

Its working process is similar to searching anything on Google Maps and copying the displayed data from resulting pages according to requirements. The scraper opens the official platform of Google Maps, explores the mentioned location, and uses a search bar to find the exact location to scrape. Then it keeps scrolling the page until the final webpage of results. The Google location scraper enqueues each location as an individual page and copies it to paste into a usable data format. The tool shows the same process with much more speed. If you want to learn the process in detail, try it on your device.

What is the cost of using Google Maps Scraper?

Our platform offers a trial plan of 5 USD each month that you can use to extract up to two thousand Google Maps reviews using this scraper. However, platform credit consumption will vary depending on complications and custom requirements for your Google Maps data.

If you want to scrape more data often, you must buy our subscription to the personal plan at 49 USD monthly. In this plan, you will collect up to twenty thousand results from Google Maps.

Why Google Maps Scraper is Better Than Official Google Maps API?

You can scrape up to 30 thousand Maploads monthly worth 200 USD for free using the official API for Google Maps. But it restricts results to sixty only regardless of mentioned location radius. Hence if you like to extract New York-based data for restaurants, you will get output for up to 60 of thousand restaurants in the selected radius.

On the other hand, Google Maps data scrapeR has no restrictions on data results. It is affordable and offers comprehensive outputs with infographics, like histograms, that you can't get using the official Google Maps API.

Can I Scrape Google Maps Data Legally?

You can legally scrape Google Maps data if it is publicly available. But it would help if you didn't try to scrape personal data without any legitimate reason. Personal data include intellectual properties, contact details, images, and users' locations that they don't want to share with the public. Either follow the terms and conditions of Google or consult your lawyer to check the legitimacy of your reason.

How to use Google Maps Data Scraper?

You can follow your stepwise tutorial to learn how to set up and use this scraper. Additionally, you can explore our tutorial to learn how to access geolocation features using Google Maps Scraper.

Where should I use Scraped Google Maps data?

Here are some ways to use collected data from Google Maps:

  • Generate leads for business
  • Build a customer base and sales funnel
  • Search new customers
  • Track service quality and brand sentiment, and discover fake reviews
  • Development evergreen and effective marketing strategy
  • Discover and study competing businesses
  • Search platforms and locations to buy required products
  • Study location-based data for engineering or technical work

To get more ideas for utilizing collected data, visit our industry page and learn how industries use web scraping in various fields.

Do you want more scraping options?

Google Maps Reviews Scraper

If you need to scrape only Google Maps reviews, this is one of the best options. The scraper collects each review for all Google Maps places.

You have to submit the location URL to scrape its data and wait for the scraper to get you the data for Google Maps reviews that you can store and download for market research, business analysis, and other activities.

Google Maps & Contact Details

Use contact details to improve Google Maps Data Scraper results. Crawl websites for selected Google Maps locations to get contact information, and add it into a single data file. Gather location, website, email address, mobile number, social media URLs, etc. Setup contact details with Google anals and get more relevant data from the platform comfortably.

Gas Prices Scraper

Discover the lowest prices for gas refills and price update timestamps from local gas stations.

Google Places API Radar Search

It would be best to acquire your Google API key to use this scraper due to the use of the official API for Google. You have an edge in using this tool instead of the official Google API due to its restrictions to scrape selected data.

Input

Input Example of Google Maps Scraper

Here are the input options for Google Maps Data Scraper:

Input-Example-of-Google-Maps-Scraper

You can also use the JSON file of equivalent input parameters that you can see in the above image.

{ "searchStringsArray": [ "pet shelter in Prague", "place_id:ChIJ8_JBApXMDUcRDzXcYUPTGUY", ], "maxCrawledPlacesPerSearch": 10, "language": "en", "maxImages": 10, "onlyDataFromSearchPage": false, "deeperCityScrape": true, "maxReviews": 0, "scrapeReviewerName": true, "scrapeReviewerId": true, "scrapeReviewerUrl": true, "scrapeReviewId": true, "scrapeReviewUrl": true, "scrapeResponseFromOwnerText": true, "oneReviewPerRow": false, "reviewsSort": "newest", "allPlacesNoSearchAction": "" }

Output

The scraper will store its output in a usable dataset. Once it finishes its execution successfully, you can export collected data in multiple formats like CSV, XML, JSON, RSS, and more.

Output Example Google Maps Scraper

Here is the simplified output example in tabular format:

Output-Example-Google-Maps-Scraper

Or you can see a JSON formatted output example here.

{ "title": "Sdružení na ochranu zvířat v krajní nouzi", "description": "Naše zraněné přírůstky po výstavě – poškozené ouško u 6letého Pouziho, vykloubená nožka 5měsíčního bílomouratého Míši, 8měsíční černý dlouhosrstý Mikulka se zraněnou nožkou, holýma zadníma nožkama a holým ocáskem, Cyril sražený autem, neovládá zadní nožky.", "subTitle": null, "price": null, "menu": null, "categoryName": "Pet adoption service", "address": "Na Pláni 2006, 150 00 Praha 5, Czechia", "locatedIn": null, "neighborhood": "Na Pláni 2006", "street": "Na Pláni 2006", "city": "Prague 5", "postalCode": "150 00", "state": null, "countryCode": "CZ", "plusCode": "397W+49 Prague 5, Czechia", "website": "https://www.kocici-utulek.cz/", "phone": "+420 603 225 948", "temporarilyClosed": false, "claimThisBusiness": true, "location": { "lat": 50.062872, "lng": 14.3958755 }, "permanentlyClosed": false, "totalScore": 4.3, "isAdvertisement": false, "rank": 9, "placeId": "ChIJuxlGAU6UC0cRI_jkTCUIboA", "categories": [ "Pet adoption service" ], "cid": "9254343240589834275", "url": "https://www.google.com/maps/place/Sdru%C5%BEen%C3%AD+na+ochranu+zv%C3%AD%C5%99at+v+krajn%C3%AD+nouzi/@50.062872,14.3958755,17z/data=!3m1!4b1!4m5!3m4!1s0x470b944e014619bb:0x806e08254ce4f823!8m2!3d50.0628787!4d14.3958708?hl=en", "popularTimesLiveText": "Not too busy", "popularTimesLivePercent": 38, "popularTimesHistogram": {}, // See section below "openingHours": [], // See section below "additionalInfo": {}, // See section below "searchPageUrl": "https://www.google.com/maps/search/pet+shelter+in+Prague/@37.6,-95.665,4z?hl=en", "searchPageLoadedUrl": "https://www.google.com/maps/search/pet+shelter+in+Prague/@37.6,-95.665,4z?hl=en", "searchString": "pet shelter in Prague", "scrapedAt": "2022-07-28T12:42:10.969Z", "reviewsCount": 40, "reviewsDistribution": { "oneStar": 6, "twoStar": 0, "threeStar": 1, "fourStar": 2, "fiveStar": 31 }, "imageUrls": [ "https://lh5.googleusercontent.com/p/AF1QipOeEWgXD8Jjmj3DpIa7U9VeJ3E83xaRpefxbYZh=w1920-h1080-k-no", "https://lh5.googleusercontent.com/p/AF1QipN2XNEQQrjtpMIHLe0WlJHYWd4nhniifUiy9BYq=w1920-h1080-k-no", "https://lh5.googleusercontent.com/p/AF1QipOShH8UZgA-gtJlc83n2uBLhgkd5HRacPIOx_V6=w1920-h1080-k-no", "https://lh5.googleusercontent.com/p/AF1QipPrcwuF0i7y32PUwX-ff-jdkRovD7XQ6fmBWHmr=w1920-h1080-k-no" ], "imagesCount": 7, "reviews": [], "reviewsTags": [ { "title": "facebook", "count": 10 }, ], "placesTags": [ { "title": "Parking", "count": 142 } ], "orderBy": [], "peopleAlsoSearch": [ { "category": "Czech restaurants", "title": "Restaurant Mlýnec", "reviewsCount": 2561, "totalScore": 4.7 } ], "googleFoodUrl": "https://food.google.com/chooseprovider?restaurantId=/g/11hfvkwdgg&g2lbs=ADZRdks7YEfR3so8mfaIvxzxIBfhj30edVasvqVLbfhKcBJvKOet7xVoQdb2e4Fec3KE_TIOmL_bbKvopcN_U9WD4tjF-q0EeS7Pne3vmHfe3kT5b3gcraE5TVEddjqfP5a0mVdhsCri&hl=en-US&gl=us&fo_m=MfohQo559jFvMWvkddHzV46uMT_RFPQ05bfKMQVr5-7IofUJMU_hT8vrWuwRMUv3d8yCO4PgMUOzJVpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&utm_source=tactile&gei=kw8sZP6wLsibsAefq5b4DA&ei=kw8sZP6wLsibsAefq5b4DA&fo_s=OA,AH,SOE", "webResults": [] // See section below, }

You can also scrape some additional data fields for particular conditions.

Popular Times

"popularTimesHistogram": { "Su": [ { "hour": 6, "occupancyPercent": 0 }, // etc... ], "Mo": [ { "hour": 6, "occupancyPercent": 0 }, // etc... ], // etc... },

Opening hours

"openingHours": [ { "day": "Monday", "hours": "10:30 AM to 11 PM" }, { "day": "Tuesday", "hours": "10:30 AM to 11 PM" }, { "day": "Wednesday", "hours": "10:30 AM to 11 PM" }, { "day": "Thursday", "hours": "10:30 AM to 11 PM" }, { "day": "Friday", "hours": "10:30 AM to 12 AM" }, { "day": "Saturday", "hours": "11 AM to 12 AM" }, { "day": "Sunday", "hours": "11 AM to 10 PM" } ]

Additional info

"additionalInfo": { "Service options": [ { "Outdoor seating": true }, { "Delivery": true }, { "Takeout": true }, { "Dine-in": true } ], "Accessibility": [ { "Wheelchair accessible entrance": true }, { "Wheelchair accessible parking lot": true }, { "Wheelchair accessible restroom": true }, { "Wheelchair accessible seating": true } ], "Offerings": [ { "Alcohol": true }, { "Beer": true }, { "Coffee": true }, { "Happy hour food": true }, { "Hard liquor": true }, { "Wine": true } ], "Dining options": [ { "Lunch": true }, { "Dinner": true }, { "Dessert": true }, { "Seating": true } ], "Amenities": [ { "Bar onsite": true }, { "Good for kids": true }, { "Restroom": true }, { "Free Wi-Fi": true } ], "Atmosphere": [ { "Casual": true }, { "Cozy": true } ], "Crowd": [ { "Groups": true } ], "Planning": [ { "Accepts reservations": true } ], "Payments": [ { "Debit cards": true }, { "NFC mobile payments": true }, { "Credit cards": true } ] }

Reviews

"reviews": [ { "name": "What’s in your pantry?", "text": "One of the best pizza place in Pardubice. Great selection of pizzas for good value of money.", "textTranslated": null, "publishAt": "4 years ago", "publishedAtDate": "2018-08-26T15:21:22.259Z", "likesCount": 0, "reviewId": "ChdDSUhNMG9nS0VJQ0FnSUN3aU5mS3Z3RRAB", "reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUN3aU5mS3Z3RRAB!2m1!1s0x0:0x79ba84b5e3261fea!3m1!1s2@1:CIHM0ogKEICAgICwiNfKvwE%7CCgsI8oqL3AUQ-KHBew%7C?hl=en-US", "reviewerId": "117322307728195096581", "reviewerUrl": "https://www.google.com/maps/contrib/117322307728195096581?hl=en-US", "reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/AD5-WCmhximZjAUEJaQ3T-z36al5yqCsyk_VhpBZ5zv3pqs=s120-c-c0x00000000-cc-rp-mo-ba3-br100", "reviewerNumberOfReviews": 45, "isLocalGuide": true, "stars": 4, "rating": null, "responseFromOwnerDate": null, "responseFromOwnerText": null, "reviewImageUrls": [ "https://lh5.googleusercontent.com/p/AF1QipMn71E_8-sqjiLKYJbbI5gqrYhVn3n3ueHpGknt=w150-h150-k-no-p", "https://lh5.googleusercontent.com/p/AF1QipOHWWSXkDgNn_d8kbpPxMmmb7PaHQKMULJggIMe=w150-h150-k-no-p", "https://lh5.googleusercontent.com/p/AF1QipMpm926guA2_yc6hamEVQpp0GWkePyv0e6OXwgU=w150-h150-k-no-p" ], "reviewContext": { "Service": "Dine in", "Meal type": "Lunch" }, "reviewDetailedRating": { "Food": 5, "Service": 3, "Atmosphere": 4 } } ]

Hotels

"moreHotelsOptions": [ { "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_", "title": "Booking.com", "price": "$303" }, { "url": "https://www.hotels.com/Hotel-Search?selected=118998&startDate=2023-03-10&endDate=2023-03-11&", "title": "Hotels.com", "price": "$303" }, ], "similarHotelsNearby": [ { "name": "Residence U Malvaz", "rating": 4.3, "reviews": 406, "description": "Cozy hotel offering a restaurant", "price": "$70" }, { "name": "Hotel U Zlatého Stromu", "rating": 3.6, "reviews": 656, "description": "Refined rooms, plus breakfast & dining", "price": "$64" }, ]

Updates From Customers

"updatesFromCustomers": { "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", "language": "en", "postDate": "a week ago", "postedBy": { "name": "Kayla Arredondo", "url": "https://www.google.com/maps/contrib/102968882116587973980?hl=en-US", "title": "Local Guide", "totalReviews": 225 }, "media": [ { "link": "https://lh3.googleusercontent.com/ggms/AF1QipNNaoT0NSbcWOPSduvZNqJ0kSqUs-dod32FeBtr=m18", "postTime": "a week ago" } ] }

Questions & Answers

"questionsAndAnswers": { "question": "Which is the best easier way to drop off a family to Disneyland Park", "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. ", "askDate": "5 years ago", "askedBy": { "name": "Cecilia Salcedo", "url": "https://www.google.com/maps/contrib/109041536347893604294" }, "answerDate": "5 years ago", "answeredBy": { "name": "Gabby Lujan", "url": "https://www.google.com/maps/contrib/105966144333216697667" } }

Web Results

"webResults": [ { "title": "Hotel & restaurant SIGNAL, Pardubice – Updated 2023 Prices", "displayedUrl": "https://www.booking.com › hotel › signal", "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." }, { "title": "Hotel & restaurant SIGNAL, Pardubice - Booking.com", "displayedUrl": "https://www.booking.com › signal.en-gb.html", "description": "Located 2 km from Pardubice city centre, this hotel offers a traditional ... Josefa Janáčka 708, Pardubice, 53012, Czech Republic – Great location - show ..." }, { "title": "Hotel & restaurant SIGNAL, Pardubice - 2023 Reviews ...", "displayedUrl": "https://www.agoda.com › ... › Pardubice Hotels", "description": "Hotel & restaurant SIGNAL. Josefa Janáčka 708, Pardubice III, Pardubice, Czech Republic, 53012 - See map." } ],

Tips and Tricks for Search Location Definition

It is a stepwise tutorial to show you methods to customize features with geo locations and cross the limit of a hundred and twenty outputs.

Location, Postal Code, City, State, and Country

Visit the Open Street Map webpage to check the selected location that matches your input for geolocation. Google Maps Scraper uses this API for geographical location.

The text locationQuery sets up a location for you. However, if it doesn't work, you can combine city, state, country, etc.

Zooming With Automation

The Google Maps Scraper uses automation to effectively zoom the map to scrape data. It uses a higher zoom option for smaller geolocation than bigger ones. The options with higher zoom can discover more locations, but it is costly and time-consuming. Typically, if you increase zoom, it will give you diminishing outputs.

Here are a few sample values for the zoom option for some locations:

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

There is an option to override zoom input between 1 to 21 values for the world and a few homes.

Custom Search Area

If you can't find your location or want to change it according to your requirements, you can use the Custom Search Area function to create starting URLs. For example, try the Nominatim API and check the geoJSON field with Cambridge in Britain as an example. You can access many search location geometry categories. Each geometry follows the official GeoJSON-based RFC.

  • Remember that latitude and longitude have a reverse order in GeoJSON, than Google Map platform. You must use longitude as the first field and latitude as the second field.

GeoJSON is a superb tool that you can use to develop any customGeolocation with the proper data format.

The tool is compatible with all GeoJSON types, but Circle, Polygon, and MultiPolygon are the most valuable.

Polygon

The most common GeoJSON type of location is a polygon. Its point sets define locations. Consider closing the polygon using the exact coordinates for the first and last points. The customGeolocation has the following example format.

This sample covers the top portion of the city in the UK, like London.

{ "type": "Polygon", "coordinates": [ [ [ // Must be the same as last one -0.322813, // Longitude 51.597165 // Latitude ], [ -0.314990, 51.388023 ], [ 0.060493, 51.389199 ], [ 0.051936, 51.600360 ], [ // Must be the same as first one -0.322813, 51.597165 ] // ... ] ] }

MultiPolygon

It can combine multiple discontinuous polygons

{ "type": "MultiPolygon", "coordinates": [ [ // first polygon [ [ 12.0905752, // Longitude 50.2524063 // Latitude ], [ 12.1269337, 50.2324336 ], // ... ] ], [ // second polygon // ... ] ] }

Circle

You can use the point category for a circle with radiusKm as a custom parameter. Remember to vary the circle radius according to your requirements. Here is an example of Basel City in Switzerland.

{ "type": "Point", "coordinates": ["7.5503", "47.5590"], "radiusKm": 8 }

Advanced Configuration

Single Review in Every Row

Typically, every output item comes with single-place data. You will see the tabular format for every item as a single row. Studying tabular data format is challenging due to the high volume and complex data available in the dataset. Luckily, you can overcome these challenges.

You can click the input toggle oneReviewPerRow to get the result as a single review in each row. Read more if you want to adjust the already existing dataset format.

For instance, if you want to study reviews, you can set up data based download of your requirement and adjust the data format. Here is the process to get the reviews list using a location title with single reviews in each data row:

  • Please select the required format and copy the download JRL to paste it into another tab.
  • Add &unwind=reviews&fields=reviews,title at the URL end.
  • Download it by pressing Enter key. You'll see reviews in its row with unwind=reviews.

The fields=reviews,title option, will download the title and reviews by skipping other data fields. Otherwise, there will be a large output. However, if you dint use any field, there won't be any issue.

Every result location will have five thousand reviews if you dislike using oneReviewPerRow. In case of more reviews for a single location, you'll see the exact locations in the following five thousand reviews. For example, if there are fifty thousand reviews, the output dataset will have ten results for the exact location.

Changelog

Google Maps Scraper is under development. Our team is constantly working on adding new scraper features and resolving technical issues. If you want any new feature to the scraper or want us to resolve any bug, please create an issue from your console account.

Google Maps Data Scraper with Integrations

Lastly, it is possible to integrate the Google Maps location data collection tool with any web application or cloud service using Integrations available on our platform. Further, you can connect the scraper with Airbyte, Zapier, GitHub, Google Sheets, Slack, Make, Google Sheets, and other platforms. In case of an event occurrence, you can use webhooks to take any action. For example, you can receive an alert once the scraper completes the execution successfully.

Using Google Maps Data Scraper Real Data API Actor

The actor gives you programmatic permission to access our platform. We have organized the actor around RESTful HTTP endpoints to allow you to schedule, manage, and execute scrapers. It also allows you to retrieve results, track performance, access datasets, update and develop scraper versions, and more.

You can use our client PyPl and client NPM packages to access the actor using Python and Node.js, respectively.

Industries

Check out how industries are using Amazon data scraper around the world.

saas-btn.webp

E-commerce & Retail

You should have a Real Data API account to execute the program examples. Replace < YOUR_API_TOKEN> in the program using the token of your actor. Read about the live APIs with Real Data API docs for more explanation.

import { RealdataAPIClient } from 'RealdataAPI-Client';

// Initialize the RealdataAPIClient with API token
const client = new RealdataAPIClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare actor input
const input = {
    "searchStringsArray": [
        "restaurant"
    ],
    "locationQuery": "New York, USA",
    "maxCrawledPlacesPerSearch": 50,
    "language": "en",
    "maxImages": 0,
    "maxReviews": 0,
    "countryCode": "",
    "allPlacesNoSearchAction": ""
};

(async () => {
    // Run the actor and wait for it to finish
    const run = await client.actor("compass/crawler-google-places").call(input);

    // Fetch and print actor results from the run's dataset (if any)
    console.log('Results from dataset');
    const { items } = await client.dataset(run.defaultDatasetId).listItems();
    items.forEach((item) => {
        console.dir(item);
    });
})();
from RealdataAPI_client import RealdataAPIClient

# Initialize the RealdataAPIClient with your API token
client = RealdataAPIClient("<YOUR_API_TOKEN>")

# Prepare the actor input
run_input = {
    "searchStringsArray": ["restaurant"],
    "locationQuery": "New York, USA",
    "maxCrawledPlacesPerSearch": 50,
    "language": "en",
    "maxImages": 0,
    "maxReviews": 0,
    "countryCode": "",
    "allPlacesNoSearchAction": "",
}

# Run the actor and wait for it to finish
run = client.actor("compass/crawler-google-places").call(run_input=run_input)

# Fetch and print actor results from the run's dataset (if there are any)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
# Set API token
API_TOKEN=<YOUR_API_TOKEN>

# Prepare actor input
cat > input.json <<'EOF'
{
  "searchStringsArray": [
    "restaurant"
  ],
  "locationQuery": "New York, USA",
  "maxCrawledPlacesPerSearch": 50,
  "language": "en",
  "maxImages": 0,
  "maxReviews": 0,
  "countryCode": "",
  "allPlacesNoSearchAction": ""
}
EOF

# Run the actor
curl "https://api.RealdataAPI.com/v2/acts/compass~crawler-google-places/runs?token=$API_TOKEN" /
  -X POST /
  -d @input.json /
  -H 'Content-Type: application/json'

Search Queries

searchStringsArray Optional Array

Visit the search bar and type the location name you want to search on Google Maps, for example, a pet shelter, hospital, or restaurant. Since you will get a maximum of 120 search results due to restrictions in scrolling Google Maps, you can avoid searching direct locations like Hospital Pittsburgh. However, you can try it to get quick results. Searching for a location using a location ID like place_id:ChIJ8_JBApXMDUcRDzXcYUPTGUY format is also possible.

Location (Use a single location at one time)

locationQuery Optional String

It is to define text location. It would help to use zip codes with a country name instead of a city name. To visually validate the covered area, use the OpenStreeMap web application—fallback to geolocation to choose a city, state, country, county, and postal code. Remember to prefer the above location parameters.

Restrict the Location Count Per Search Query/Link

maxCrawledPlacesPerSearch Optional Integer

It is an input parameter to restrict the location count you will get for every search URL or query. If you set a higher number, it will take more time to scrape. If you want to scrape every available place, set the limit value to 9999999.

Language

language Optional Enum

You will see the output data in this communication language.

Options:

en string, hi string, de string, ca string, da string, fr string, si string, es-419 string, es string, ru string, my string

Restrict Image Count

maxImages Optional Integer

It is to set a maximum image count for every location. If you leave the field blank or enter zero, the scraper will not extract any image. Enter 99999 in the input field if you need to collect every image. It will slow down the process for a higher image count.

Only Scrape Search Page Data

onlyDataFromSearchPage Optional Boolean

The output will display search page data without any other details. It significantly fastens the scraping process. For every location, it scrapes the title, location, place id, street, state, category, postal code, neighborhood, URL, etc.

Include Web Results

includeWebResults Optional Boolean

It is to scrape the web results section at the bottom of the location data. It needs more proxy servers and platform credits.

Maximum Review Count

maxReviews Optional Integer

It is an input parameter to get the total reviews for each place. The scraper won't collect reviews if you keep the field black or enter zero. To scrape every review, enter 99999 in the input field. You can get only five thousand reviews per scrape. If you want more reviews, the scraper will store them in five thousand reviews. Using it may slow down the scraping process.

Single Review in Each Row

oneReviewPerRow Optional Boolean

The Google Maps Scraper will generate a single output row for every review if tested. It will copy other location data in every row. If you need CSV-compatible output, then use this option.

Start Date To Scrape Reviews

reviewsStartDate Optional String

YYYY-MM-DD is the general format to enter the starting date

Sort Reviews By

reviewsSort Optional Enum

Define the review sorting order.

Options:

lowestRanking string, highestRanking string, mostRelevant string, newest string

Filter Reviews using Keywords

reviewsFilterString Optional String

If you enter keywords, the scraper will extract only keywords containing reviews. It will extract all reviews if you keep the field blank.

Name of Reviewer

scrapeReviewerName Optional Boolean

If tested, the tool will scrape the reviewer's name. Please remember to avoid scraping personal data as per the legality.

Review ID

scrapeReviewId Optional Boolean

Reviewer ID

scrapeReviewerId Optional Boolean

Review URL

scrapeReviewUrl Optional Boolean

Reviewer URL

scrapeReviewerUrl Optional Boolean

Owner Text Response

scrapeResponseFromOwnerText Optional Boolean

Override Zoom Level

zoom Optional Integer

You don't need to set an override zoom level parameter. It automatically selects the excellent value based on the selected location; check the readme tab to learn more. Manually changing the zoom may increase the scraping cost.

Country Code

countryCode Optional Enum

Please enter the country code to set it up for the scraper run. For example, you can add Canada. The scraper will crawl the entire country if you don't choose any other geolocation parameter like city or state. Google Maps Scraper could perform better for whole country searches for a few countries with high populations, like Russia or the United States. For these, you can focus on cities or states.

Options:

us string, ca string, uk string, uae string, nz string, ai string, in string, au string, de string, sp string, fr string, be string, sn string, ru string, jp string

City

city Optional String

Input the city name without the country or state name to search—for example, Pittsburgh.

State Name

state Optional String

Enter the state to search with other geolocation inputs—for example, Massachusetts.

US County

county Optional String

Enter the United States county to perform a location search with a combination of other geolocation parameters—for example, Madison.

Postal Code

postalCode Optional String

Enter the postal code of the target location to allow the scraper to extract data. For example, enter 10001 as a pin code with a country combination to get accurate data.

Note: Please use only a single pincode at one time.

Search Custom Geolocation

customGeolocation Optional Object

Define the exact location to search with [longitude, latitude] coordinate order if you face issues scraping with other parameters.

Limit Locations Based on Title Matching

searchMatching Optional Enum

Limit Location scraping by matching their search title.

Options:

only_exact string, only_includes string, all string

Google Maps URLs

startUrls Optional Array

Please copy the link to Google Maps and enter it in this input field. If you've used the search query field, you can keep this field empty. The valid URL format for Google Maps URL is /maps/place or /maps/search. Here is the sample URL:

Extract Each Place Without a Search Query

allPlacesNoSearchAction Optional Enum

It will extract each location it discovers on Google Maps. You won't get the expected results if you use URLs. It also depends on zooming, so increase the zoom to scrape more locations.

Options:

all_places_no_search_mouse string, all_places_no_search_ocr string
{
  "searchStringsArray": [
    "restaurant"
  ],
  "locationQuery": "New York, USA",
  "maxCrawledPlacesPerSearch": 50,
  "language": "en",
  "onlyDataFromSearchPage": false,
  "includeWebResults": false,
  "deeperCityScrape": false,
  "oneReviewPerRow": false,
  "reviewsSort": "newest",
  "reviewsFilterString": "",
  "scrapeReviewerName": false,
  "scrapeReviewerId": true,
  "scrapeReviewerUrl": true,
  "scrapeReviewId": true,
  "scrapeReviewUrl": true,
  "scrapeResponseFromOwnerText": true,
  "searchMatching": "all",
  "allPlacesNoSearchAction": ""
}