Google Maps Scraper: Places, Hours, Popular Times & Leads
Pricing
from $0.89 / 1,000 place scrapeds
Google Maps Scraper: Places, Hours, Popular Times & Leads
Scrape Google Maps places by search, area, URL or place ID: phone, website, rating, reviews, hours, popular times and emails. Export CSV, Excel, JSON or XML.
Pricing
from $0.89 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Maps Scraper: Places, Hours, Popular Times & Leads
Scrape Google Maps places by search term, map area, Maps URL or place ID: 375 coffee shops across Seattle came back in 45 seconds in our last deep-search test. Every place carries 43 fields, including the phone, website, rating, review count, price range, the full week of opening hours, attributes, coordinates, plus code and photo count. Popular times, the 1 to 5 star distribution and website emails are optional extras. No login, no Google API key. Export to CSV, JSON, Excel, or XML.
The Google Places API bills every field group separately, caps a text search at 60 results, and never returns popular times. This Actor reads the same public data the Google Maps web app shows, pages past 60 results, splits big areas to go past Google's per-view limit, and hands back one flat schema you can load anywhere.
| Who uses it | What they scrape Google Maps for |
|---|---|
| Sales and lead generation teams | Local business lists with phone, website and, with the contacts extra, emails and social profiles |
| Marketing and local SEO agencies | Ratings, review counts, categories and claimed status of every competitor in a city |
| Market researchers | Store counts, price ranges and category mixes by neighborhood, city or country |
| Data teams | Google Maps datasets with coordinates, place IDs and hours for maps, models and dashboards |
| Operations and site selection | Popular times by hour to compare foot traffic between locations |
What it does
The Actor takes search terms with a location, map coordinates, Google Maps URLs and place IDs, alone or together, and returns one row per place.
- 📌 Identity: name, place ID, CID, feature ID, Knowledge Graph ID and a working Google Maps link.
- 📍 Location: full address, street, neighborhood, city, postal code, state, country, latitude, longitude, plus code and time zone.
- ☎️ Contact: phone in display and international format, website and domain, booking links.
- ⭐ Reputation: rating, review count, price range, main and secondary categories, editorial summary.
- 🕒 Hours: the full week of opening hours and the live open status ("Open · Closes 9 PM").
- 🧾 Profile: attributes (service options, accessibility, amenities, payments), highlights, claimed status, closed flags and photo count.
- ➕ Optional extras, each off by default: place details (popular times, star distribution, menu link, owner description, typical time spent, review topics, related places, photo gallery) and website contacts (emails and social profiles from the business site).
What you can do with Google Maps data
🎯 Build local lead lists.
Search "plumbers" in every city you sell to, keep places with a website and at least 20 reviews, and turn on website contacts to get the emails and social profiles each business publishes.
📊 Benchmark competitors.
Pull every place in a category for an area and compare ratings, review counts, price ranges and claimed status in one sheet, refreshed on a schedule.
🏙 Map a market.
Turn on deep search with map coordinates to cover a whole metro area, then count places by neighborhood, category and price range.
👥 Compare foot traffic.
Turn on place details to get popular times for each hour of the week and the typical time people spend there, ready to chart.
Why choose this scraper
| What you get | |
|---|---|
| No browser, fast runs | It reads the Maps web app's own data over plain HTTP. A 5-place run took 5 seconds in our last cloud test. |
| Past the per-view limit | Google Maps lists about 180 places per map view. Deep search splits the area and keeps going. |
| Every input style | Search terms with a location, coordinates and zoom, Maps search or place URLs, short links, place IDs, CIDs and feature IDs. |
| Free filters | Minimum rating, minimum reviews, category words, open now, has a website, has a phone, skip closed places. A filtered-out place is never charged. |
| Pay only for the extras you use | Place details are charged only when the full place card comes back; website contacts only when an email or social profile is found. |
| 43 languages | Categories, weekdays, open status and descriptions in the language you pick. |
How it compares
All five scrapers below read public Google Maps places. This one returns the full place profile from the results list itself, never charges for a filter, and bills its extras only when they return data. The comparison uses each rival's public input options and Store price on September 24, 2026.
| Feature | ParseForge | compass/crawler-google-places | compass/google-maps-extractor | vortex_data/google-maps | kaix/google-maps-places-scraper |
|---|---|---|---|---|---|
| Price per 1,000 places | $1.00 | $4.00 | $5.00 | $1.00 | $0.08 |
| Filters | Free | $1.00 per 1,000 per filter | $1.00 per 1,000 per filter | Free | Free |
| Popular times and star distribution | $5 per 1,000 extra | $2 per 1,000 extra | $2 per 1,000 extra | $1 per 1,000 extra | Included |
| Emails and social profiles | $5 per 1,000, only when found | $2 per 1,000 | $4 per 1,000 | $1.50 per 1,000, only when found | No |
Honest limits. One map view of Google Maps lists about 180 places; beyond that, deep search splits the area. Review texts are not included (see the Recommended Actors below for reviews). The contacts extra reads only what a business publishes on its own site.
What a Google Maps place looks like
One row from a verified run on September 24, 2026, with both extras on. Long arrays are shortened here; a real row carries the full week of hours, every attribute, 126 popular-times slots and up to 20 photos.
{"imageUrl": "https://lh3.googleusercontent.com/gps-proxy/ALd4DhG9U9R1ij39uSEuWIxesOW7O9-g2XeiijqwI0W2Aya8cKpHvyaD0GskpHwx-HQjMj196EZB7edacAJnfoiy8gOume8YnQv2BmZK_9YWNnT8LCLSOh8d1JKYUM-YHgI43GiWwGgQAbq9_f1NFgCUbd0-KmuJjc6mImpD0DS9Ty4pCR6LdK5xbNKM=w800-h600-k-no","title": "Kizuki Ramen & Izakaya (Uptown)","placeId": "ChIJi-MkXEEJlVQRg1GlIpHiNpI","cid": "10535857491259249027","fid": "0x549509415c24e38b:0x9236e29122a55183","kgmid": "/g/11vbst1qzr","url": "https://www.google.com/maps/place/?q=place_id:ChIJi-MkXEEJlVQRg1GlIpHiNpI","categoryName": "Ramen restaurant","categories": ["Ramen restaurant","Izakaya restaurant","Japanese restaurant"],"description": "Hip venue serving Japanese noodle soups & small plates, plus whiskey, sake & beer amid artful decor.","address": "33 NW 23rd Pl, Portland, OR 97210","street": "33 NW 23rd Pl","neighborhood": "Hillside","city": "Portland","postalCode": "97210","state": "Oregon","countryCode": "US","plusCode": "84QVG8F2+R3","latitude": 45.524507,"longitude": -122.699832,"timezone": "America/Los_Angeles","phone": "(877) 839-5498","phoneUnformatted": "+18778395498","website": "https://www.kizuki.com/","websiteDomain": "kizuki.com","rating": 4.8,"reviewsCount": 668,"priceRange": "$20–30","openStatus": "Open · Closes 9 PM","permanentlyClosed": "No","temporarilyClosed": "No","ownerClaimed": "Yes","ownerId": "117812527284682176552","photosCount": 541,"language": "en","searchString": "ramen in Portland, OR","rank": 4,"menuUrl": "https://a04b2bd6-2548-4028-bb8b-552c12767296.filesusr.com/ugd/23c62c_eb130c1050b1432c8ea2994ead2127a6.pdf","ownerDescription": "Welcome to Kizuki Ramen & Izakaya – Where Ramen Excellence Awaits!\nIndulge in the authentic taste of Japan at our 18 locations, proudly named Yelp's Top Ramen S...","typicalTimeSpent": "People typically spend 30 min to 1 hr here","locatedIn": "Uptown Shopping Center","reviewsDistribution": {"oneStar": 13,"twoStar": 8,"threeStar": 19,"fourStar": 52,"fiveStar": 576},"primaryEmail": "contactus@kizuki.com","emailCount": 2,"linkedinUrl": "Not Disclosed","facebookUrl": "https://www.facebook.com/KizukiRamenUSA/","instagramUrl": "https://www.instagram.com/kizukiramen","twitterUrl": "https://twitter.com/kizukiramen","youtubeUrl": "Not Disclosed","tiktokUrl": "Not Disclosed","socialProfilesFound": 3,"openingHours": [{"day": "Monday","hours": "11 AM–9 PM"},{"day": "Tuesday","hours": "11 AM–9 PM"}],"attributes": [{"section": "Service options","name": "No-contact delivery","value": "Yes"},{"section": "Service options","name": "Delivery","value": "Yes"},{"section": "Service options","name": "Onsite services","value": "Yes"}],"highlights": ["LGBTQ+ friendly"],"bookingLinks": [],"popularTimes": [{"day": "Monday","hour": 11,"occupancyPercent": 28,"label": "Usually not too busy"},{"day": "Monday","hour": 12,"occupancyPercent": 37,"label": "Usually not too busy"}],"reviewTags": [{"tag": "garlic ramen","count": 6},{"tag": "garlic tonkotsu","count": 14}],"peopleAlsoSearch": [{"title": "Baka Umai Ramen Den","fid": "0x0:0x7426ebe098cf0126","rating": 4.8,"reviewsCount": 73,"categoryName": "Ramen"}],"imageUrls": ["https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkJha4CRklTyEfx0no68wLHBxKW8lnJGzXP9qmrDj8tUWdwBnPgMR10G16Kc0qmfHhl8W8J7xdxfxEFJTjpuwlTMM2-mAPnNiDrMBetd5JPRXpE-jGTM8EvUDhPGxPjR8eeWiGC=w1200-h900-k-no"],"emails": ["carmel@kizuki.com","contactus@kizuki.com"],"sitePhones": ["4252141088"],"scrapedAt": "2026-09-24T20:51:42.310Z","error": null}
Without extras, a row has the fields above from imageUrl through rank, plus openingHours, attributes, highlights, bookingLinks, scrapedAt and error: 43 fields in all, 63 with both extras on. A value Google does not publish reads "Not Disclosed", never an empty cell.
Configure the run
Mix search terms, coordinates, URLs and place IDs in one run. The Input tab lists every option.
Find well-reviewed dentists in Austin that list a website:
{ "searchTerms": ["dentist"], "location": "Austin, TX", "minRating": "4.5", "minReviews": 50, "requireWebsite": true, "maxItems": 500 }
Cover a whole city past the per-view limit, with popular times:
{ "searchTerms": ["coffee"], "latitude": "47.6062", "longitude": "-122.3321", "zoom": 12, "deepSearch": true, "maxPlacesPerSearch": 1000, "includePlaceDetails": true }
Refresh known places by ID or URL, with website emails:
{ "placeIds": ["ChIJb5gBC-u0RIYRHkntaUcdJGs", "8582500234709843288"], "startUrls": [{ "url": "https://www.google.com/maps/search/tacos/@34.0522,-118.2437,14z" }], "includeContacts": true }
Pricing
Pay-per-event: $1.00 per 1,000 places, dropping to $0.89 per 1,000 at higher Apify plans. You pay only for places written to your dataset; places your filters leave out are free.
| Places collected | Approximate cost |
|---|---|
| 100 | $0.10 |
| 1,000 | $1.00 |
| 10,000 | $10.00 |
Optional extras, billed only when you turn them on:
| Extra | Price |
|---|---|
| Place details (popular times, star distribution, menu, photos) | $5 per 1,000 places whose full place card came back |
| Website contacts (emails and social profiles) | $5 per 1,000 places where at least one was found |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 places as a preview. Upgrade your Apify plan to collect up to 1,000,000 places per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Google Maps Scraper.
- Enter
searchTermsand alocation, or paste Google Maps URLs or place IDs, add any filters, and click Start. - Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule the run to keep a list fresh.
Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python. It also connects to Make, Zapier, Slack, Airbyte, GitHub and Google Drive through Apify integrations.
Use with AI agents (MCP)
Give an AI agent live Google Maps search through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/google-maps-scraper"
Then prompt it in plain language:
- "List the 50 best-rated Italian restaurants in Chicago with their phone numbers and websites."
- "Find every gym within the map around 40.7128, -74.0060 at zoom 14 and tell me which ones are open now."
- "Compare the popular times of these three coffee shops and tell me the quietest hour on Saturday."
Copy this into ChatGPT, Claude, or Cursor to start:
Use the Apify Actor "parseforge/google-maps-scraper" to collect Google Maps places. Input: { "searchTerms": ["<what>"], "location": "<city or area>", "maxItems": <n>, "minRating": "<0|3|3.5|4|4.5>", "includePlaceDetails": <true|false>, "includeContacts": <true|false> }. Places come back with title, placeId, categoryName, address, city, latitude, longitude, phone, website, rating, reviewsCount, priceRange, openingHours and attributes. Call it with the ApifyClient and my APIFY_TOKEN.
Troubleshooting
Why am I getting no places?
The search term may be too narrow for the area, or the filters remove everything. Try a broader term ("restaurants" instead of a dish), a larger area, or fewer filters. The run log says how many places each filter left out.
Why fewer places than I asked for?
One map view lists about 180 places. Turn on deep search, or add more search terms or locations. Filters also remove places, and those are not charged.
Why is a field "Not Disclosed"?
Google did not publish it for that place: many places have no price range, no website, or no editorial summary. That is the place's real state on Google Maps.
Why are popular times empty for some places?
Google shows popular times only for places with enough visits. Smaller places have the star distribution and photos but no hourly chart.
Why is the run slower with extras on?
Place details open one place card per place, and website contacts read one to three pages of each business site. Raise maxConcurrency to process more places at once.
FAQ
| Question | Answer |
|---|---|
| Do I need a Google API key? | No. It reads the public data the Google Maps web app shows, so there is no API key, billing account or quota to manage. |
| How is this different from the Google Places API and its pricing? | The Places API bills each field group, caps text search at 60 results and has no popular times. Here you pay per place with the full profile included. |
| How many places per search? | About 180 per map view. With deep search on, the area is split up to three levels deep, so a city returns many hundreds. |
| Can I search by coordinates? | Yes. Set latitude, longitude and zoom, or paste a Maps search URL with @lat,lng,zoom. |
| Can I scrape specific places? | Yes. Paste place URLs, ?cid= links, short links, place IDs (ChIJ...), CIDs or feature IDs. |
| Does it get emails? | Yes, with the website contacts extra. It reads the business's own site and charges only when it finds an email or social profile. |
| Does it scrape reviews? | It returns the rating, review count, star distribution and review topics. For review texts, use a dedicated Google Maps reviews scraper. |
| Which languages are supported? | 43, from English and Spanish to Japanese and Arabic. Categories, weekdays and open status come back translated. |
| How many places per run? | Free plan: 10. Paid: up to 1,000,000, bounded by what Google Maps lists for your searches. |
| Is this an official Google product? | No. It is unofficial and reads only public Google Maps data. |
Recommended Actors
- Google Maps Contacts Scraper: local businesses with the email and phone their own website publishes.
- Google Maps Shared List Scraper: every place in a shared Google Maps list.
- Google Search Scraper: organic and paid Google results for any query.
- Website Contact Leads Scraper: emails, phones and social profiles from any list of websites.
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Open our contact form with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Google LLC. It collects only publicly available Google Maps data. You are responsible for using the data in compliance with Google's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.
