Google Maps Scraper
Pricing
from $0.50 / 1,000 results
Google Maps Scraper
Extract business data from Google Maps — places, full profiles, popular times and reviews — from anywhere in the world, without an API key or a Google account. Runs fully in the cloud, outputs a clean dataset (or JSON).
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
kibalee
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Extract business data from Google Maps — places, full profiles, popular times, and reviews — from anywhere in the world, without an API key or a Google account. Runs fully in the cloud, outputs a clean dataset (or JSON).
What you can scrape
- Places by keyword, worldwide — search any query the way you type it in Google Maps. Name the area in the query and it is found automatically: "coffee shops in Paris" finds cafes in Paris, "dentists near Central Park" finds dentists around Central Park — no coordinates, no extra setup. For precise spots, set the map center to exact coordinates instead.
- Business profile per place — name, address (street & full), rating, review count, category, tagline, phone, website, opening hours per day, current open/closed status, coordinates, Google Maps link.
- Popular times — how busy a place gets: score 0–100 for every hour of every day of the week, with plain-language labels, plus live "right now" popularity.
- Reviews — full review text with author name, star rating, date, relative date, and photo attachments.
Quick start
- Run the actor with one input: the search query.
- Result: one dataset record per place. Turn on the extra options for popular times or reviews.
Example run — keyword: "coffee shop Paris", maxResults: 10:
{"keyword": "coffee shop Paris","maxResults": 10,"scrapeReviews": true,"maxReviewsPerPlace": 20}
Example result
One real record from a run of "coffee shop Paris" (arrays trimmed):
{"title": "Shukery coffee & matcha","address": "18 Av. de l'Opéra, 75001 Paris","rating": 4.8,"reviewCount": 1420,"categoryLabel": "Coffee shop","tagline": "Dogs allowed","phone": "01 53 40 83 64","website": "https://www.instagram.com/shukerycoffee/","openStatus": "Open · Closes 10 pm","schedule": {"Monday": ["7:30 am–9 pm"],"...": "..."},"popularTimes": {"Monday": [{ "hour": 9, "score": 42, "label": "Usually not too busy" },"..."]},"popularTimesReal": {"day": "Friday","hour": 12,"score": 39,"label": "Not too busy"},"reviews": []}
Input
| Field | What it does |
|---|---|
| Search query (required) | Keyword to search, e.g. coffee shops in Paris. Areas named in the query are found automatically, anywhere in the world. |
| Map center | Optional coordinates to search around. Only needed for a precise spot — usually the area in the query is enough. |
| Max results | How many places to return. |
| Scrape place details | Fetch the full profile of each place (default on). |
| Scrape popular times | Capture the 7×24 popularity histogram + live popularity (default off). |
| Scrape reviews | Add review text per place. |
| Max reviews per place | Stop after N reviews (0 = unlimited). |
| Reviews delay | Pause between review pages (raise it if reviews stop coming). |
| Concurrency | Places processed in parallel (speed vs. safety). |
| UI language / Region | Language & region Google returns labels in (default en / US). |
Record fields
| Field | What it is |
|---|---|
title | Place name |
address, addressFull | Street address, then the full address |
latitude, longitude | Coordinates |
rating, reviewCount | Average rating and how many people reviewed it |
categoryLabel, tagline | Category (e.g. "Coffee shop") and short descriptor |
phone, website | Contact details |
openStatus, schedule | Open/closed now, and opening hours per weekday |
popularTimes, popularTimesReal | 7×24 busy score 0–100 + live popularity |
reviews | Review objects when reviews are enabled |
url, placeId | Link to the place on Google Maps, plus its stable place id |
How much does it cost you?
Roughly one Google request per action:
| Action | Requests |
|---|---|
| Search (1 query) | 1 request → up to ~20 places |
| Profile per place | 1 request per place |
| Popular times | included in the profile request |
| Reviews | 1 request per ~20–25 reviews |
No API-key fees, no per-row hidden costs — you only pay Apify's platform compute for the requests actually made. Plus a few automatic requests per run (session warm-up, ~4–5 total) — a one-time cost per run, not per place. When your query names an area, the actor also looks that area up once via a free geocoder (no Google request, no API key) so it searches the area you asked for.
Billing is pay-per-event: a small fee per place saved, an extra fee per full business profile you scrape, and a small fee per 25 reviews when reviews are enabled. Exact prices: the Pricing tab on the Store page.
FAQ
Does it work outside one region? Yes — any country. Name the city, district or area in the query ("sushi in Tokyo", "cafes in Lisbon", "plumbers in Brooklyn") and it is found automatically; or pin the map center to exact coordinates.
What if the query has no area and I leave the center empty? The run stops with a clear message telling you to add an area or set the center — it never silently searches the wrong place.
Do I need proxies? Usually not — this scraper talks to Google Maps
directly, no browser. If Google ever throttles your requests ("limited
view"), add a GMAPS_PROXY environment variable (any HTTP/SOCKS proxy
URL) and the actor will route around it.
Does it use the official Google Places API? No — no API key, no $17–32 per 1,000 calls, no usage limits beyond what Google itself enforces on any visitor.
How fresh is the data? Live — every run fetches Google Maps data at that moment.
Popular times missing for some places? Normal — Google only shows popular times for places that get enough foot traffic.
Does scraping reviews need a Google account? No. Anonymous is enough and safer.