

Extract data from thousands of Google Maps locations and businesses, including reviews, reviewer details, images, contact info, public emails, social profiles, opening hours, prices, reservation data, online ordering, popular times & more. Export data as JSON or CSV, run via the CoreClaw REST API, check run status, and fetch or export results programmatically.
Google Maps Scraper lets you extract business data from Google Maps, helping you generate leads, analyze competitors, and fuel growth with just a few clicks.
The scraper expands Google Maps data extraction beyond a single visible map screen. When a base location can be resolved, it can use paginated list search, country hotspot search, or bounds/grid search to collect more results than a one-screen manual lookup.
| 🔗 Title/place name | 📝 Category, place IDs, and Google Maps URL |
| 📍 Address | 🧭 Location, plus code and exact coordinates |
| ☎️ Phone number | 🌐 Website, if available |
| 📝 Company contact details from website (public emails and social media profiles) | 📱 Social media profile enrichment for Facebook, Instagram, YouTube, TikTok, and LinkedIn |
➡️ List of detailed characteristics (attributes) | 🔎 Google web search results |
⭐ Average rating (review_rating) | 📊 Review count and review distribution |
| 🖼️ List of images | 🔓 Open/closed status |
| 🕒 Opening hours | ⏱️ Popular times - peak histogram and live occupancy |
| 🍽️ Menu | 💵 Price range |
| 🪑 Reservation provider data | 🛵 Online order availability and delivery/pickup methods |
| 👥 People also search | 🧑 Owner information |
For maximum usefulness, Google Maps Scraper has the following abilities:
The input for Google Maps Scraper should be a location in combination with one or more search terms. You can also extract additional details such as reviews, website contact data, social profiles, amenities, reservation providers, online ordering, and web results. You can set up the input programmatically or use the fields in the scraper interface.
Using multiple similar search terms can increase the number of scraped places, but it also increases the time a run takes. We recommend using a combination of search terms that are distinct or overlap only slightly in meaning. Using a long list of duplicate search terms will just increase runtime without providing many more results.
Example of a good list of search terms: [restaurant, bar, pub, cafe, buffet, ice cream, tea house]
Example of a bad list of search terms: [restaurant, restaurants, chinese restaurant, cafe, coffee, coffee shop, takeout]
Google Maps search results often include categories adjacent to your search. For example, restaurant might also capture some cafes or bars, but you will usually get better coverage if you use clearly distinct terms separately.
In the CoreClaw interface, use the keyword string-list field for search terms. In lower-level runtime payloads, the active keyword may be passed as string.
⚠️ Category filtering is not a separate public input in this CoreClaw version.
Search terms can sometimes include irrelevant places. Google Maps categories returned in the output can help you filter results after export, using fields such as primary_category, category_2, category_3, category_4, and all_categories.
If you need category-like targeting, use category names as search terms, such as divorce lawyer, pet shelter, or pizza restaurant. The scraper will return the place categories it finds, and you can use those category fields to refine the exported results.
For this reason, we recommend using fewer, clearer search terms and filtering the exported results by category when needed.
The public input schema requires base_location, and we recommend using it for every run. Put the geography in base_location, not in the keyword field.
Rather than searching only for a phrase like restaurants in berlin, use:
More precise locations usually produce more accurate and stable results. Very broad or vague locations may return fewer results, less predictable ordering, or results concentrated around major cities.
If you already know the places or brands you want to research, use their names as search terms and provide the most precise base_location available. For example, combine a brand name with a city, state, or country to find matching Google Maps places and enrich the returned records with contact details, reviews, place attributes, social profiles, and other enabled fields.
| Field | Required | Default | Description |
|---|---|---|---|
keyword | Yes | hairstylist, pizza | Search terms entered as a string list in the CoreClaw interface. |
base_location | Yes | New York, USA | Location used to anchor the Google Maps search. City, state, county, region, postal code, and country inputs are supported when they can be geocoded. |
lang | No | en | Language used for Google Maps requests and returned text. Examples:en, zh-CN, fr, de, ja. |
max_results | Yes | 20 | Maximum number of places to return. Values above 5000 are automatically clamped. |
fetch_social_info | No | false | Visit merchant websites to extract public emails and social profile URLs. |
facebook | No | false | Enrich the first discovered Facebook profile when fetch_social_info is enabled. |
instagram | No | false | Enrich the first discovered Instagram profile when fetch_social_info is enabled. |
youtube | No | false | Enrich the first discovered YouTube channel when fetch_social_info is enabled. |
tiktok | No | false | Enrich the first discovered TikTok profile when fetch_social_info is enabled. |
linkedin | No | false | Enrich the first discovered LinkedIn company/profile URL when fetch_social_info is enabled. |
fetch_place_details | No | false | Extract dynamic Google Maps place attributes, such as service options, accessibility, amenities, payments, and links. |
fetch_reservation_data | No | false | Extract structured reservation provider data into reservation_data. |
fetch_online_order | No | false | Extract online ordering availability and methods such as Delivery and Pickup. |
fetch_web_result | No | false | Fetch Google web results for each place and store them in web_results. |
fetch_reviews | No | false | Fetch structured Google Maps reviews. |
max_reviews_per_place | No | 5 when reviews are enabled | Maximum reviews per place. Values above 1000 are automatically clamped. Ignored when fetch_reviews is false. |
review_sort_by | No | newest | Review sorting. Supported values:newest, oldest, highestRating, lowestRating, mostRelevant. |
review_keyword | No | empty | Optional keyword used to filter fetched reviews. |
include_reviewer_info | No | true | Include reviewer name, profile URL, profile ID, avatar URL, public review count, and photo count. |
The results are returned as structured output that can be viewed in table form or exported as JSON or CSV. JSON preserves nested fields such as reviews, attributes, reservation_data, web_results, and people_also_search. CSV is convenient for spreadsheet analysis; nested values may be flattened or serialized depending on the export.
Reviews are stored in the reviews array. For easier table processing, the first three reviews are also expanded into fields such as reviews/0/name, reviews/0/rating, reviews/0/text, reviews/1/*, and reviews/2/*.
The table view can be manipulated in different ways. You can sort or filter by contact info, location, category, rating, review count, opening status, social profile fields, reservation data, or other output columns.
Here's the amount of data you'd get for a single scraped place. Example of 1 scraped restaurant in New York:
When fetch_social_info is enabled, Google Maps Scraper visits each merchant website and extracts public contact data when available:
When social media profile enrichment is enabled, Google Maps Scraper can enrich discovered social media URLs with detailed profile information such as follower counts, descriptions, channel stats, business account status, and verification status.
Important Notes:
fetch_social_info to be enabledfacebook, instagram, youtube, tiktok, and linkedintwitter_url; profile enrichment switches are available for Facebook, Instagram, YouTube, TikTok, and LinkedInWhen fetch_reviews is enabled, Google Maps Scraper can extract detailed information about reviews on Google Maps. Note that reviewer information can include personal data, so only enable include_reviewer_info when you have a legitimate reason to process it.
| 📝 Review text | 📅 Published date and time |
| ⭐ Stars | 🔁 Review ID and URL |
| 👍 Likes/helpful votes | 🖼️ List of review images |
| 💬 Owner response date | 📍 Visited timing text |
| 👤 Reviewer's name | 🧾 Reviewer's public review count |
| 🖼️ Reviewer's avatar | 🔗 Reviewer's profile ID and URL |
Use max_reviews_per_place to control review volume. Use smaller values for faster runs.
Using free text in the Base Location field should normally be enough to start scraping. For a more precise search, use city, state, county, postal code, region, or country names.
Google Maps Scraper resolves locations into coordinates and bounds when available. For country-only searches, it can use configured hotspot cities to improve national coverage. For larger requests where bounds are available, the scraper can use a grid search strategy to cover the area more thoroughly.
Recommended examples:
New York, USALos Angeles, California, USABerlin, Germany10001, New York, USAUnited KingdomUse Base Location to define the target geography. City, postal code, state, region, and country-level inputs are usually enough for local market research, lead generation, and competitor monitoring. When the location can be resolved into bounds, the scraper can use a grid strategy for broader coverage.
The scraper chooses its collection strategy based on the resolved location and requested result count:
Very broad locations and very high max_results values take longer and may still return fewer rows than requested if Google Maps exposes fewer matching places for the query.
It works similarly to searching through Google Maps and copying information from each page you find. It resolves your base location, searches the selected keyword, pages through result candidates, fetches place details, deduplicates places, and then writes visible data into structured output. Optional enrichment steps run only when their input switches are enabled.
The official Google Places API is useful for many applications, but it has product-specific pricing, quota, and result-pagination constraints. For bulk market research, local lead generation, and review analysis, a Google Maps scraper can provide a more flexible collection of public Google Maps page data. You should still evaluate Google's Terms of Use for your use case.
The public input schema accepts one base_location per active run. To collect multiple locations, start separate runs or create a CoreClaw workflow that executes the scraper for each location and merges the exports downstream.
Use a precise base_location, reduce max_results, keep fetch_reviews disabled unless you need reviews, lower max_reviews_per_place, and enable website/social/place-detail enrichment only when those fields are required.
Yes. Enable fetch_reviews, then set max_reviews_per_place, review_sort_by, review_keyword, and include_reviewer_info as needed.
The scraper returns reviews as a nested reviews array and also flattens the first three reviews into reviews/0/*, reviews/1/*, and reviews/2/* fields. If you need every review as a separate row, export JSON and transform the reviews array in your downstream processing.
Yes. Export JSON or CSV from CoreClaw and import it into spreadsheets, databases, CRMs, BI tools, or automation workflows. You can also use the CoreClaw REST API to start scraper runs, check run status, retrieve paginated results, or export results as JSON or CSV.
Yes. You can use the CoreClaw REST API to run Google Maps Scraper programmatically. CoreClaw API requests use the api-key header and the base URL https://openapi.coreclaw.com.
A typical API workflow is:
/api/scraper and use the returned version and custom parameter schema./api/v1/scraper/run, passing scraper_slug, version, is_async, and the scraper input under input.parameters.custom.run_slug./api/v1/run/detail./api/v1/run/result/list, or export a JSON/CSV file with /api/v1/run/result/export.Web scraping is legal if you are extracting publicly available data, which is most data on Google Maps. However, you should respect boundaries such as personal data and intellectual property regulations. You should only scrape personal data if you have a legitimate reason to do so, and you should also consider Google's Terms of Use.
We're always working on improving the performance and coverage of this scraper. If you find a bug or notice missing fields, share the input settings, approximate run time, and a small output sample so the behavior can be reproduced.
Explore more popular scrapers from our marketplace
by CoreClaw
No-code Google Maps scraper fetches full details of single business. Capture business email, phone, website, social accounts, reviews, opening hours and location data, instantly export complete valid B2B leads.
by CoreClaw
Google Maps Review Scraper bulk extracts star ratings, text, reviewer details, owner responses, and image URLs. Precisely analyze customer sentiment, monitor competitors, optimize local SEO, and comprehensively boost your business reputation. Supports keyword filtering and multilingual translation, delivers structured data.