Google Maps Scraper: Places, Hours, Popular Times & Leads avatar

Google Maps Scraper: Places, Hours, Popular Times & Leads

Pricing

from $0.89 / 1,000 place scrapeds

Go to Apify Store
Google Maps Scraper: Places, Hours, Popular Times & Leads

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge

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 itWhat they scrape Google Maps for
Sales and lead generation teamsLocal business lists with phone, website and, with the contacts extra, emails and social profiles
Marketing and local SEO agenciesRatings, review counts, categories and claimed status of every competitor in a city
Market researchersStore counts, price ranges and category mixes by neighborhood, city or country
Data teamsGoogle Maps datasets with coordinates, place IDs and hours for maps, models and dashboards
Operations and site selectionPopular 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 runsIt 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 limitGoogle Maps lists about 180 places per map view. Deep search splits the area and keeps going.
Every input styleSearch terms with a location, coordinates and zoom, Maps search or place URLs, short links, place IDs, CIDs and feature IDs.
Free filtersMinimum 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 usePlace details are charged only when the full place card comes back; website contacts only when an email or social profile is found.
43 languagesCategories, 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.

FeatureParseForgecompass/crawler-google-placescompass/google-maps-extractorvortex_data/google-mapskaix/google-maps-places-scraper
Price per 1,000 places$1.00$4.00$5.00$1.00$0.08
FiltersFree$1.00 per 1,000 per filter$1.00 per 1,000 per filterFreeFree
Popular times and star distribution$5 per 1,000 extra$2 per 1,000 extra$2 per 1,000 extra$1 per 1,000 extraIncluded
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 foundNo

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 collectedApproximate cost
100$0.10
1,000$1.00
10,000$10.00

Optional extras, billed only when you turn them on:

ExtraPrice
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

  1. Create a free Apify account with $5 in credit.
  2. Open the Google Maps Scraper.
  3. Enter searchTerms and a location, or paste Google Maps URLs or place IDs, add any filters, and click Start.
  4. 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

QuestionAnswer
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.

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.