Google Maps Scraper (Cheap)
Pricing
from $0.49 / 1,000 results
Google Maps Scraper (Cheap)
Google Maps Scraper pulls verified business listings from Google Maps and delivers structured, ready-to-use data. Give it a list of search queries and get back names, addresses, phone numbers, websites, ratings, GPS coordinates, opening hours, and more for every business it finds.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Share
Google Maps Places Scraper

Pulling business details off Google Maps by hand is slow work — you open a pin, copy the phone number, jot down the address, then do it again a few hundred times. This scraper skips all of that. Type the searches you would type into the Maps box, and you get back a clean table of places: business name, full address, phone, website, star rating, review count, and the exact GPS coordinates. Run one search or feed it a long list of categories and cities at once.
What you get
Every place comes back as one tidy row, and fields that Google does not show stay as null so your columns line up when you load the data into a sheet or database. Each row carries:
- Identity —
businessName,categoryList,placeId,placeIdHex,mapsPath,mapsUrl,thumbnailUrl - Location —
fullAddress,cityName,stateCode,stateName,postalCode,countryCode,districtName,lat,lng,timeZone - Contact —
phoneNumber,phoneInternational,websiteUrl - Reputation and hours —
starRating,reviewsTotal,hoursToday,openStatus - Extras —
businessAttributes,accessibilityFeatures, plus thesearchQuerythat found it and acollectedAttimestamp
Quick start
- Press Try for free and open the input form.
- Add your phrases to Search terms, one per line, for example
coffee shops in Portland, OR. - Set Result language and Region bias if you want results localized, then cap the run with Results per search term or Total results cap.
- Pick a proxy type, hit Start, and export the rows as JSON, CSV, Excel, or XML once it finishes.

Use cases
- Lead lists for sales — build a list of businesses in a category and city, complete with phone and website
- Local market research — measure how many competitors sit in a neighborhood and how they are rated
- Store and franchise planning — map existing locations before choosing where to expand
- Directory and dataset building — seed your own listings site with names, addresses, and coordinates
- Review benchmarking — compare star ratings and review counts across a whole category
- Field sales routing — geocode prospects by
lat/lngto plan efficient visit routes
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchTerms | array of strings | Yes | Phrases to look up on Google Maps, one search each. Be specific, e.g. pediatric dentist near 30301. |
languageCode | string | No | ISO language code for the wording of names and addresses. Default en. |
regionCode | string | No | Two-letter region code that biases results toward a country. Default us. |
resultsPerQuery | integer | No | Most places to gather per phrase; the actor pages until it hits this. Default 120. |
totalResultsLimit | integer | No | Overall cap on places kept across all phrases in one run. Default 1000000. |
proxyConfiguration | object | No | Proxies used for requests. Defaults to Datacenter; switch to Residential if Google blocks requests. |
Example input
{"searchTerms": ["vegan restaurants in austin, TX","yoga studios near 94110 San Francisco CA"],"languageCode": "en","regionCode": "us","resultsPerQuery": 120,"totalResultsLimit": 1000000,"proxyConfiguration": {"useApifyProxy": true}}
Output
Each place becomes one row with a fixed set of fields. Anything Google does not publish for a place comes back as null, so the dataset stays rectangular and easy to load.
Example output
{"businessName": "Sunrise Vegan Kitchen","fullAddress": "1204 South Lamar Boulevard, Austin, TX 78704","cityName": "Austin","stateCode": "TX","stateName": "Texas","postalCode": "78704","countryCode": "US","lat": 30.2541,"lng": -97.7642,"starRating": 4.6,"reviewsTotal": 832,"phoneNumber": "(512) 555-0148","phoneInternational": "+15125550148","websiteUrl": "https://sunrisevegankitchen.com","categoryList": ["Vegan restaurant", "Cafe"],"placeId": "ChIJAbCdEf123456789","placeIdHex": "0x8644b59abcdef012","districtName": "Zilker","timeZone": "America/Chicago","mapsPath": "/g/abc123","mapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJAbCdEf123456789","thumbnailUrl": "https://lh5.googleusercontent.com/p/AF1QipExampleThumbnailReference","hoursToday": "8 AM-9 PM","openStatus": "Open","businessAttributes": ["Women-owned"],"accessibilityFeatures": ["Wheelchair accessible entrance"],"searchQuery": "vegan restaurants in austin, TX","collectedAt": "2026-06-29T12:00:00.000000+00:00"}
Output fields
| Field | Type | Description |
|---|---|---|
businessName | string | Name of the place as shown on Google Maps |
fullAddress | string | Complete street address with street, city, state, and ZIP |
cityName | string | City pulled from the address |
stateCode | string | Two-letter state abbreviation, such as FL, NY, CA |
stateName | string | Spelled-out state name, such as Florida, New York |
postalCode | string | ZIP or postal code from the address |
countryCode | string | Two-letter country code, such as US |
lat | number | Latitude of the place |
lng | number | Longitude of the place |
starRating | number | Average Google Maps score from 1.0 to 5.0 |
reviewsTotal | integer | Number of Google Maps reviews for the place |
phoneNumber | string | Main phone in local format, e.g. (305) 555-1234 |
phoneInternational | string | Same number in international format, e.g. +13055551234 |
websiteUrl | string | Link to the place's website |
categoryList | array | Category labels for the place, such as Roofing contractor |
placeId | string | Google's unique place identifier in ChIJ format |
placeIdHex | string | Internal hexadecimal place identifier |
districtName | string | Neighborhood or district tied to the place |
timeZone | string | IANA time zone, e.g. America/New_York |
mapsPath | string | Short Google Maps path, e.g. /g/abc123 |
mapsUrl | string | Direct Google Maps link built from the place ID |
thumbnailUrl | string | Link to the place's thumbnail photo |
hoursToday | string | Opening hours for today, e.g. 8 AM-5 PM or Open 24 hours |
openStatus | string | Live open or closed text, e.g. Open or Closed - Opens 8 AM |
businessAttributes | array | Identity labels, such as Women-owned or LGBTQ+ friendly |
accessibilityFeatures | array | Accessibility options, such as Wheelchair accessible entrance |
searchQuery | string | The phrase that found this place |
collectedAt | string | ISO 8601 timestamp of when the row was captured |
Tips for best results
- Be specific with each phrase. A search like
plumbers in 77001 Houston TXreturns sharper results thanplumbers. - Use
resultsPerQueryto control depth. Set it low while you test the output, then raise it for a full pull. - Keep
totalResultsLimitas a guardrail. When you queue dozens of phrases, it stops a run from growing larger than you expect. - Switch to Residential proxies if you get blocked. Datacenter handles most runs; residential helps when you see repeated blocks or empty pages.
- Set the right
regionCode. When a phrase could match places in more than one country, the region bias keeps results where you want them.
How can I use Google Maps places data?
How can I use the Google Maps Places Scraper to build a local lead list?
Queue phrases like hvac contractors in phoenix, AZ and the scraper returns each business with its phone, website, address, and rating. Filter by starRating or reviewsTotal to find established prospects, then export to CSV and drop them straight into your CRM or outreach tool.
How can I scrape Google Maps business data for several cities at once?
Add one phrase per city to searchTerms and the actor runs them in parallel, tagging every row with the searchQuery that produced it. That makes it easy to slice the dataset by market afterward and compare coverage, ratings, and density across locations.
How can I get GPS coordinates from Google Maps for mapping or routing?
Every place comes back with lat and lng alongside the full address, so you can plot results on a map, cluster them by neighborhood, or build optimized field-sales routes without geocoding the addresses yourself.
How can I research competitors and reviews in a category?
Search a category in your area and read starRating, reviewsTotal, categoryList, and openStatus across the results to see who leads on reputation, which segments are crowded, and where there is room for a new entrant.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.