Google Maps Scraper - Business Leads, Phones & Websites
Under maintenancePricing
from $2.00 / 1,000 results
Google Maps Scraper - Business Leads, Phones & Websites
Under maintenanceScrape Google Maps business listings at scale — names, addresses, phones, websites, ratings, reviews, popular times, menus & prices, hotel and ticket data & 71 fields. Search by keyword + location, paste Maps URLs, or look up a Place ID. Fast, browserless, no ~120-result limit.
Pricing
from $2.00 / 1,000 results
Rating
4.8
(31)
Developer
Zebu Data
Maintained by CommunityActor stats
73
Bookmarked
472
Total users
28
Monthly active users
14 hours ago
Last modified
Categories
Share
Google Maps Data Scraper extracts business listings from Google Maps at scale — fast, without a browser, and with no ~120-results-per-search limit.
What does Google Maps Data Scraper do?
Google Maps Data Scraper collects detailed business and place data from Google Maps and returns it as structured JSON, CSV, or Excel. It works as an unofficial Google Maps API alternative: give it a search keyword + location (for example, restaurants in New York City), paste Google Maps URLs, or look up a specific place by its Google Place ID, and it returns up to 71 fields per place — name, full address, phone, website, rating, star-rating breakdown, popular times, price, menus, hotel details, ticket prices, categories, coordinates, Place ID, and more.
It runs on direct HTTP requests (no headless browser), so it is fast and cheap to run, and it covers the whole target area instead of stopping at Google's usual ~120-results-per-search cap.
Why use Google Maps Data Scraper?
- 🗺️ Break the ~120-results limit — an adaptive area grid scans the whole city, so you get hundreds or thousands of places per search, not just the first ~120.
- 📍 Accurate to the city — results are filtered to the location's real boundary (polygon), so a search for "New York City" doesn't drift into neighboring New Jersey.
- 📊 71 data fields per place — contact details, ratings and star-rating breakdown, popular times (including live busyness), price ranges, menus and services with prices, hotel stars and amenities, ticket prices for attractions, top reviews, photos, and more.
- ⚡ Fast & browserless — pure API-style requests, no Chromium, with concurrent enrichment.
- 🔍 Two ways to search — by keyword + location, or by pasting Google Maps URLs.
- 🌍 74 languages — choose the language of the returned data.
| Feature | This Actor | Typical alternatives |
|---|---|---|
| Coverage per search | Whole area (adaptive grid) | Often capped at ~120 |
| Method | Direct HTTP (no browser) | Browser-based (slower) |
| Location accuracy | City polygon — no spillover | Bounding box / drift |
| Fields per place | 71 | ~10–30 |
| Input | Keyword + location or Maps URLs | Varies |
| Languages | 74 | Varies |
Common use cases: building lead lists (with phone, website, and unclaimed-business flags), local market and competitor research, location analytics with popular times and ratings, and powering data-driven apps.
What data can you extract?
Each place returns the following fields (71 in total). Fields marked in italics apply only to certain kinds of places and are empty for others. In the Output tab, the Overview shows every field ordered by importance — these category-specific fields come last, with the kinds of places they apply to in the column name.
| Field | Type | Description |
|---|---|---|
title | string | Business name |
category / categories | string / array | Primary category and all categories |
category_ids | array | Language-independent category IDs (e.g. pizza_restaurant) — handy for filtering |
claimed | boolean | Whether the business is claimed by its owner (unclaimed = a sales lead) |
rating / review_count | number | Average rating and number of reviews |
reviews_distribution | object | Count of reviews per star (1–5) |
reviews_url | string | Link to the place's reviews page |
top_reviews | array | Up to 8 reviews from the place page: author, rating, date, text, owner response |
price_range / price_breakdown | string / object | Price range and its breakdown |
full_address | string | Full formatted address |
neighborhood / street_address / city / zipcode / state / country | string | Address components |
country_code / time_zone | string | ISO country code and time zone (e.g. US, America/New_York) |
latitude / longitude | number | Coordinates |
located_in / floor | string | The mall, airport or building the place is in, and its floor — places inside another place |
phone / phone_international | string | Phone (local format and E.164) |
website | string | Business website |
plus_code / plus_code_url | string | Google Plus Code |
place_id / cid / google_id / kgmid | string | Google place identifiers (kgmid = Knowledge Graph ID) |
about | object | Service options, highlights, accessibility, amenities, atmosphere, payments, etc. |
business_attributes | array | Owner attributes (e.g. "Identifies as women-owned") |
description / owner_description | string | Google's short description, and the business's own "From the business" text |
review_summary / review_tags | array / object | Highlighted review snippets and keyword tags with counts |
people_also_search_for | array | Related places |
open_time | array | Opening hours per day |
more_hours | object | Extra schedules such as delivery, takeout or happy hours — mostly restaurants |
popular_times_monday … popular_times_sunday | object | Typical hourly busyness per day |
popular_times_live | object | Live busyness at scrape time, when Google has live data |
typical_time_spent | string | How long people typically stay (e.g. "People typically spend 20 min to 2 hr here") |
current_status / permanently_closed / temporarily_closed | string / boolean | Open/closed status |
photos_count / images | number / array | Photo count and image URLs |
owner_updates | array | Posts from the business: text, date, button |
menu / menu_url | array / string | Menu items or services with prices, and the menu page link — restaurants, salons, repair services… |
order_and_booking_links | array | "Order online" / "Book online" buttons and partner links — restaurants, salons… |
hotel_stars / hotel_amenities / hotel_check_in / hotel_check_out | number / object / string | Hotel class, amenities (available or not), check-in and check-out time — hotels only |
ticket_offers | array | Ticket prices from the official site and resellers, one offer per provider — attractions & museums |
tour_offers | array | Tours and activities with price and rating — attractions & museums |
places_inside | array | Shops and facilities inside the place: name, category, rating, floor — malls, airports, museums… |
How to scrape Google Maps
- Open the Actor on Apify Store and click Try for free.
- Enter search keywords (e.g.
restaurants,coffee shops) and a Location (e.g.New York City) — or paste Google Maps URLs, or a Place ID asplace_id:ChIJ.... - Set options (optional) — choose the Language and the max result pages (each page ≈ 20 places).
- Click Start — the Actor geocodes the location, scans the area, and collects each place's details.
- Download your data as JSON, CSV, Excel, or via the Apify API.
How much does it cost?
Apify usage is billed in compute units (memory × time). Because this Actor is browserless — it uses direct HTTP requests instead of a headless Chromium browser — it consumes far less compute than browser-based Google Maps scrapers, which keeps your cost per result low. You can Try it for free on the Apify free plan; see the Pricing section on this Actor's page for the current per-result price.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | array | ["restaurants"] | What to search for on Google Maps. Each keyword is searched separately. |
location | string | "New York City" | City/area to search within. Results stay inside its real boundary. |
urls | array | [] | Optional. Google Maps URLs — a search URL scrapes its results; a place URL or ?cid=... URL returns that one place. |
language | select | English (United States) | Language of the returned data (74 options). |
maxCrawlPages | integer | 10 | Max result pages (≈ 20 places each; 10 ≈ 200, 50 ≈ 1,000). Applies per keyword and per URL, not to the whole run (e.g. 3 keywords × 10 pages ≈ up to 600 places). |
Configure everything visually on the Input tab — no code required.
Output
Each result is one place. Example (real data, some arrays trimmed):
{"search_string": "place_id:ChIJnyOF-alfwokR7sHwDUkuKoY", // the keyword, URL or place_id you searched"title": "Arepa Lady","category": "Colombian restaurant","categories": ["Colombian restaurant", "Restaurant"],"category_ids": ["colombian_restaurant", "restaurant"],"claimed": true,"rating": 4.6,"review_count": 1426,"reviews_distribution": {"1_star": 57, "2_star": 15, "3_star": 75, "4_star": 217, "5_star": 1062},"reviews_url": "https://search.google.com/local/reviews?placeid=ChIJnyOF-alfwokR7sHwDU...","price_range": "$20–30","price_range_votes": 36,"price_breakdown": {"$10–20": "35%", "$20–30": "42%", "$30–40": "7%"},"full_address": "Arepa Lady, 77-17 37th Ave, Jackson Heights, NY 11372","neighborhood": "Jackson Heights","street_address": "77-17 37th Ave","city": "Jackson Heights","zipcode": "11372","state": "New York","country": "US","country_code": "US","latitude": 40.7494972,"longitude": -73.8882711,"time_zone": "America/New_York","located_in": "", // only for places inside a mall, airport or building, e.g. "Dubai Mall""floor": "", // e.g. "L2" — only together with located_in"phone": "(917) 745-1111","phone_international": "+19177451111","website": "https://www.thearepalady.com/","plus_code": "P4X6+QM Jackson Heights, Queens, NY","plus_code_url": "https://plus.codes/P4X6+QM Jackson Heights, Queens, NY","url": "https://www.google.com/maps/place/Arepa+Lady/data=...","google_id": "0x89c25fa9f985239f:0x862a2e490df0c1ee","cid": "9667590441405563374","place_id": "ChIJnyOF-alfwokR7sHwDUkuKoY","kgmid": "/g/1q67g1mll","business_attributes": ["LGBTQ+ friendly"],"description": "Brick-&-mortar outpost of a popular food cart known for turning out South American cornmeal cakes.","owner_description": "", // the business's own "From the business" text, when the owner wrote one"about": {"service_options": ["Has outdoor seating", "Has no-contact delivery", "Offers delivery", "Offers takeout"],"highlights": ["Has fast service", "Serves local specialty"],"popular_for": ["Popular for breakfast", "Popular for lunch", "Popular for dinner", "Good for solo dining"]// ... more groups: accessibility, offerings, dining_options, amenities, atmosphere, crowd, planning, payments},"photos_count": 1006,"images": ["https://lh3.googleusercontent.com/gps-cs-s/ANWiy9SJneJpzTTXB...",// ... up to 20 image URLs],"review_summary": ["Small menu, prices were moderate, food was delicious and the service was decent", "A great place to visit with tasty food, friendly staff, and affordable pricing."],"review_tags": {"arepas": 127, "cheese arepa": 34, "outdoor seating": 3, "Arepa de Choclo Con Carne Desmechada": 26, "arepa rellena": 14},"top_reviews": [{ "author": "Carol Tsang", "rating": 4, "date": "2026-02-07", "text": "We came on a Friday night for dinner. The arepas were nice fresh and ...", "owner_response": "" }// ... up to 8 reviews shown on the place page],"people_also_search_for": [{ "Arepas Cafe": { "rating": 4.5, "rating_counts": 1901, "url": "https://www.google.com/maps/place/...data=..." } }],"current_status": "Closed · Opens 11 AM","permanently_closed": false,"temporarily_closed": false,"open_time": [ {"Sunday": "11 AM–10 PM"}, {"Monday": "12–10 PM"} /* ... through Sunday */ ],"more_hours": {}, // restaurants: e.g. { "Delivery": [ { "Monday": "12–9:30 PM" }, ... ], "Happy hours": [...] }"popular_times_monday": {"12 PM": "26% busy", "1 PM": "34% busy", "2 PM": "44% busy" /* ... hourly */ },// popular_times_tuesday … popular_times_sunday have the same hourly shape"popular_times_live": {}, // live busyness at scrape time, when Google has it: { "status": "A little busy", "busy_percent": 57 }"typical_time_spent": "People typically spend 20 min to 2 hr here","owner_updates": [], // posts from the business: [ { "text": "...", "date": "2026-10-16", "button_text": "Call now", "button_url": "tel:+1..." } ]"menu": [ // restaurants, salons, repair services…: menu items or services, price when listed{ "section": "Arepa", "name": "Arepa De Chocolo", "description": "", "price": "$10.50" },{ "section": "Arepa", "name": "Arepa De Queso", "description": "", "price": "$10.50" },// ...],"menu_url": "","order_and_booking_links": [{ "label": "Order online", "url": "https://www.google.com/searchviewer/..." }],"hotel_stars": "", // hotels only (see the hotel example below)"hotel_amenities": {}, // hotels only"hotel_check_in": "", // hotels only"hotel_check_out": "", // hotels only"ticket_offers": [], // attractions & museums (see the attraction example below)"tour_offers": [], // attractions & museums"places_inside": [] // malls, airports, museums…: shops and facilities inside the place}
Hotels and attractions also fill their own fields (real data, trimmed):
{"title": "Holiday Inn Brooklyn Downtown by IHG","hotel_stars": 3,"hotel_amenities": { "Free Wi-Fi": true, "Paid breakfast": true, "Paid parking": true, "Accessible": true, "Indoor pool": true, "Air-conditioned": true /* ... */ },"hotel_check_in": "3:00 PM","hotel_check_out": "11:00 AM"}
{"title": "Tokyo Tower","typical_time_spent": "People typically spend 45 min to 2.5 hr here","popular_times_live": { "status": "A little busy", "busy_percent": 57 },"ticket_offers": [{ "provider": "Tokyo Tower", "title": "東京タワー メインデッキ 150m", "price": "$9.49", "official": true, "url": "https://ticket.tokyotower.co.jp/" },{ "provider": "Klook", "title": "Tokyo Tower Main Deck (150m) Admission Ticket", "price": "$9.39", "official": false, "url": "https://www.klook.com/en-US/activity/4911-..." }// ... one offer per provider (Trip.com, KKday, GetYourGuide, ...)],"tour_offers": [{ "provider": "Tourzd", "title": "Tokyo Tower", "price": "$57", "rating": 4.9, "reviews": 43076, "url": "https://www.tourzd.com/..." }],"places_inside": [{ "name": "Tokyo Tower Main Deck", "category": "Observation deck", "rating": 4.3, "reviews": 204, "floor": "Floor 1", "google_id": "0x60188b00226ff6e3:0xd342750c03c422d" }]}
Fields that don't apply to a given place come back empty — for example popular_times_* for places without busyness data, price_range for places with no price info, and category-specific fields such as menu (restaurants & services), hotel_* (hotels) or ticket_offers (attractions).
Tips
- Use a specific location. A city (e.g.
New York City) gives accurate, well-bounded results; a broad region (e.g.United States) is too large to cover well. - Tune
maxCrawlPagesto your needs. It applies per keyword and per URL (≈ value × 20 places each), not to the whole run. Start small to preview, then raise it for full coverage — higher values take longer and cost more. - Keywords vs URLs. Use keyword + location for area sweeps; use Maps URLs to target a specific view you already have.
- Result counts vary slightly between runs — Google returns slightly different sets depending on the request, which is normal; the data for any given place stays consistent.
- Schedule & integrate. Run it on a schedule and push results to Google Sheets, S3, webhooks, or your database via Apify integrations.
FAQ and support
How many results can I get per search?
As many as the area contains, up to your maxCrawlPages cap. The adaptive grid scans the whole location, so you are not limited to Google's usual ~120 results per single search.
Can I scrape a specific place or a Maps URL?
Yes. Paste Google Maps URLs into the urls field:
- A search URL scrapes all its results — e.g.
https://www.google.com/maps/search/restaurants/@40.71,-74.00,12z. ThemaxCrawlPageslimit applies to each such URL on its own. - A single place's URL or a
?cid=...URL returns just that one place — e.g. a place URL orhttps://maps.google.com/?cid=1416786665941882505.
Can I look up a place by its Google Place ID?
Yes. Enter it in the keywords field with a place_id: prefix (the same ChIJ... ID you get from the Google Places API) and the Actor returns that exact place's full details — e.g. place_id:ChIJvx7i_BlawokRidb5WfdvqRM (this one opens Eataly in New York). You can look up any Place ID with Google's Place ID Finder.
Is scraping Google Maps legal?
Scraping publicly available data is generally legal, but how you use it matters — see the disclaimer below.
Related Actors
- Google Maps Store Review Scraper — collect full reviews for a store, including review text, author, rating, images, and direct review links.
GDPR and legal
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. 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.
Support
Questions, issues, or need a custom feature? Reach out through the Actor's Issues tab on Apify and we'll help.