Google Maps Scraper - Phones, Websites & Ratings
Pricing
from $1.50 / 1,000 places
Google Maps Scraper - Phones, Websites & Ratings
Extract businesses from Google Maps: name, address, phone, website, rating, review count, opening hours, categories, coordinates and place ID. Big areas are split automatically to get past the 120-results limit. Free filters, no API key.
Pricing
from $1.50 / 1,000 places
Rating
0.0
(0)
Developer
Dataspace
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Maps Scraper
Extract businesses from Google Maps in minutes: name, category, address (street, city, postal code, state, country), phone, website, rating, review count, opening hours, coordinates, place ID and more. Search any city, region or country — big areas are split automatically, so you are not stuck at the ~120 places Google shows for one search.
- ✅ Gets past the 120-results limit — enter a location and the area is searched piece by piece, center first
- ✅ Free filters — minimum rating, only places with / without a website, categories, skip closed places
- ✅ Lead-friendly fields — split address, international + plain phone number, website domain, "unclaimed on Google" flag
- ✅ Fast and light — no browser, results stream in from the first second
- ✅ No duplicates — a place found by several search terms is saved and charged once
- ✅ Same input names as the popular Google Maps scrapers — switching takes a minute
- ✅ $1.50 per 1,000 places, platform usage included
What data do you get?
| Field | Example |
|---|---|
title, categoryName, categories | Mozart's Coffee Roasters · Coffee shop · [Coffee shop, Bakery, Cafe, …] |
address, street, city, postalCode, state, countryCode, neighborhood | 3825 Lake Austin Blvd · Austin · 78703 · Texas · US |
phone, phoneUnformatted | +1 512-477-2900 · +15124772900 |
website, domain | https://mozartscoffee.com/ · mozartscoffee.com |
totalScore, reviewsCount | 4.5 · 10946 |
priceLevel | $10–20 — typical price per person, when Google shows one |
openingHours | Monday 7 AM–12 AM, … |
location | lat 30.2955, lng -97.7840 |
permanentlyClosed, temporarilyClosed | false · false |
claimThisBusiness | true when the owner has not claimed the listing on Google — a great sales signal |
description, additionalInfo | Short Google description; accessibility, service options, amenities |
reserveTableUrl | Booking link (restaurants), when Google shows one |
imageUrl, imagesCount | Main photo and number of photos |
placeId, cid, fid, kgmid, url | Stable IDs and a Google Maps link for every place |
searchString, rank, scrapedAt | Which search found it, its position, and when |
The dataset has three ready-made views: Places, Leads (contact info) and All fields. Export to Excel, CSV, JSON, HTML or XML with one click.
How to use
- Enter one or more search terms, e.g.
dentist,coffee shop,car repair. - Enter a location, e.g.
Austin, TX, USA,BerlinorOntario, Canada. - Set Max places per search term and, if you want, the free filters.
- Click Start. Places appear in the table as they are found.
Example input
{"searchStringsArray": ["dentist", "orthodontist"],"locationQuery": "Chicago, IL, USA","maxCrawledPlacesPerSearch": 500,"language": "en","placeMinimumStars": "four","website": "allPlaces","skipClosedPlaces": true}
Example output (real result, shortened)
{"title": "Mozart's Coffee Roasters","categoryName": "Coffee shop","categories": ["Coffee shop", "Bakery", "Cafe", "Event venue", "Tourist attraction"],"address": "3825 Lake Austin Blvd, Austin, TX 78703, United States","street": "3825 Lake Austin Blvd","city": "Austin","postalCode": "78703","state": "Texas","countryCode": "US","phone": "+1 512-477-2900","phoneUnformatted": "+15124772900","website": "https://mozartscoffee.com/","domain": "mozartscoffee.com","location": { "lat": 30.2954696, "lng": -97.7839512 },"totalScore": 4.5,"reviewsCount": 10946,"priceLevel": null,"permanentlyClosed": false,"temporarilyClosed": false,"claimThisBusiness": false,"openingHours": [{ "day": "Monday", "hours": "7 AM–12 AM" }, { "day": "Tuesday", "hours": "7 AM–12 AM" }],"additionalInfo": { "Accessibility": ["Wheelchair-accessible car park", "Wheelchair-accessible entrance"] },"placeId": "ChIJTWZhRFW1RIYRrdGa7DPzT7w","cid": "13569331606629044653","url": "https://www.google.com/maps/search/?api=1&query=Mozart%27s+Coffee+Roasters&query_place_id=ChIJTWZhRFW1RIYRrdGa7DPzT7w","searchString": "coffee shop in Austin, TX, USA","rank": 6}
Getting more than 120 places
Google Maps shows at most about 120 places for one search, however far you scroll. When you fill in Location, this scraper looks up the area on Google Maps and, whenever a part of the map still has more places, splits it into four smaller parts and searches each one. It starts in the center and works outwards, so a small limit gives you the most central places and a large limit covers the whole area.
If you put the place into the search term instead (pizza in Chicago) or use a Google Maps URL, you get the ~120 places Google shows for that search.
Free filters
| Filter | What it does |
|---|---|
| Only these categories | Keeps places whose Google category contains one of your words, e.g. dentist |
| Minimum rating | 2 to 4.5 stars |
| Website | All places, only with a website, or only without a website (prospects for web agencies) |
| Skip closed places | Leaves out permanently and temporarily closed places |
Filters cost nothing extra: you only pay for places that are saved.
Pricing
Pay per result: $1.50 per 1,000 places, plus a tiny start fee of $0.00005 per run. Platform usage (compute and proxies) is included — you are not charged anything else. Filters are free.
| Example | Cost |
|---|---|
| 200 dentists in one city | $0.30 |
| 5,000 restaurants across a state | $7.50 |
| 20,000 leads per month | $30 |
Set a maximum cost for a run and the Actor stops when it is reached.
Use it via API
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("dataspace/google-maps-scraper").call(run_input={"searchStringsArray": ["plumber"],"locationQuery": "Manchester, UK","maxCrawledPlacesPerSearch": 300,})for place in client.dataset(run["defaultDatasetId"]).iterate_items():print(place["title"], place["phone"], place["website"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('dataspace/google-maps-scraper').call({searchStringsArray: ['plumber'],locationQuery: 'Manchester, UK',maxCrawledPlacesPerSearch: 300,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'places');
Integrations and AI agents
- Google Sheets, Excel, CSV — export from the dataset or connect the Google Sheets integration.
- Make, Zapier, n8n, webhooks — start runs and receive results in your workflows.
- AI agents (MCP) — add this Actor as a tool through the Apify MCP server and let your agent search Google Maps.
- Schedules — run it daily or weekly to track new businesses in an area.
Switching from another Google Maps scraper
The main input fields have the same names as in the most popular Google Maps scrapers: searchStringsArray, locationQuery, maxCrawledPlacesPerSearch, language, categoryFilterWords, placeMinimumStars, website, skipClosedPlaces. Most existing inputs work as they are, and output fields such as title, totalScore, reviewsCount, placeId, phone, website, street, city and postalCode use familiar names too.
Tips
- Use specific terms:
vegan restaurantreturns more relevant places thanfood. - Several related terms (
dentist,dental clinic,orthodontist) find more businesses; duplicates are removed automatically. - For a whole country, use one run per region or state — results stay focused and you can follow progress.
- Set Language to get categories and opening hours in that language.
FAQ
Is it legal to scrape Google Maps? The Actor only collects publicly visible business information (names, addresses, phone numbers, websites, ratings) without logging in and without bypassing any CAPTCHA. It does not collect reviews, reviewer names, owner names or e-mail addresses. You are responsible for using the data in line with laws such as GDPR and with Google's terms — see the Disclaimer.
Why did I get fewer places than my limit? Google has fewer matching places in that area, or your filters removed some. Try more search terms or a larger area.
Does it get e-mails or reviews? No. It returns business data that Google Maps shows publicly. It does not collect reviews or personal data.
How fast is it? Usually a few hundred places per minute, depending on the area and Google's response time.
Missing a feature? Open an issue on the Issues tab — feedback is welcome.
More scrapers by dataspace
- Google Trends Scraper — interest over time, regions, related queries
- Google News Scraper — headlines by keyword, topic and country
- Google Ads Transparency Scraper — competitors' Google ads
- Google Hotels Scraper — hotel prices and ratings
- Google Flights Scraper — flight prices and schedules
- AliExpress Search Scraper — products, prices and sales
Like it? If this Actor saves you time, please leave a review on the Reviews tab — it helps others find it. Found a problem? Open an issue and it will be fixed quickly.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Google LLC. Google and Google Maps are trademarks of Google LLC and are mentioned only to describe the publicly available data source. It collects only publicly visible business information from Google Maps — without logging in, without solving CAPTCHAs and without collecting reviews, reviewer names, owner names or e-mail addresses. You are responsible for making sure that your use of the data complies with applicable laws (including data protection laws such as GDPR and anti-spam rules for marketing) and with Google's terms.