

Pull business records in bulk from Google Maps — covering reviews and reviewer details, photos, contact info (full name, email, job title), opening hours, prices and more. From there, export the data, trigger runs via API, schedule and watch them, or wire the results into your other tools.
Google Maps Scraper turns public Google Maps pages into structured business data for lead generation, competitor tracking, local market research, and enrichment workflows. Enter search terms plus a location, choose the details you need, and export clean records without opening every place page by hand.
Instead of stopping at one visible map screen, the scraper resolves your base location and chooses a collection strategy for the requested scope: paginated list search, country hotspot search, bounds/grid search, or a center-point fallback. This gives you broader but controlled coverage while keeping the search terms, enrichment switches, and output fields explicit.
| 🔗 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 focuses on data you can act on:
Start with one or more search terms and a required base_location. You can then enable additional details such as reviews, website contact data, social profiles, amenities, reservation providers, online ordering, and web results. Set up the input in the CoreClaw interface or pass the same fields programmatically.
Multiple similar search terms can uncover a few extra places, but they also make the run slower and may create more overlap. Use terms that are distinct or only lightly overlapping. A long list of duplicates usually increases runtime without adding many useful records.
Example of a good list of search terms: [dentist, orthodontist, oral surgeon, pediatric dentist, teeth whitening, emergency dentist]
Example of a bad list of search terms: [dentist, dentists, dental clinic, dental office, dentist near me, best dentist, local dentist]
Google Maps search results often include nearby categories. For example, dentist might also capture dental clinics or cosmetic dentistry providers, but you will usually get cleaner coverage by using 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.
Search terms can sometimes include irrelevant places. Use category names as search terms when you need category-like targeting, such as cosmetic dentist, emergency dentist, or teeth whitening service.
The scraper returns Google Maps category fields such as primary_category, category_2, category_3, category_4, and all_categories. In the CoreClaw table view and exports, you can filter or select fields by business info, contact and outreach data, social media URLs, social profile enrichment, ratings and reviews, and business details.
For this reason, we recommend using fewer, clearer search terms first, then refining the exported results with the returned category and field groups.
The public input schema requires base_location, and we recommend using it for every run. Put the geography in base_location, not inside the keyword field.
Rather than searching only for a phrase like dentists in austin, use:
Precise locations usually produce more stable results. Very broad or vague locations can return fewer rows than requested, 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 | dentist, orthodontist | Search keywords to scrape from Google Maps. Enter terms you would normally type into the Google Maps search bar. Use specific keywords for better efficiency, and put geography in base_location instead of this field. |
base_location | Yes | Austin, Texas, USA | Target location used to anchor the Google Maps search. Precise city, state, county, region, or country inputs usually produce more accurate and stable results when they can be geocoded. Country-only searches may distribute results across configured hotspot cities. |
lang | No | en | Language used for Google Maps requests and returned text. Use en or en-US for English output, or the target-market language when place names, category names, or review text should be localized. |
max_results | Yes | 20 | Maximum number of Google Maps places to return. Use smaller values for fast runs and larger values for broader coverage. Very large values may require grid or hotspot scanning, take longer, and be limited internally for runtime stability. |
email_verification | No | false | Validate email_1 through email_4 with the Check_Email endpoint, then export validation status and business-email flags. |
fetch_social_info | No | false | Visit merchant websites to extract public emails and social profile URLs. Enable this before using platform-specific social profile enrichment. |
facebook | No | false | When used with fetch_social_info, visit the first discovered Facebook profile URL and enrich Facebook page details. |
instagram | No | false | When used with fetch_social_info, visit the first discovered Instagram profile URL and enrich Instagram profile details. |
youtube | No | false | When used with fetch_social_info, visit the first discovered YouTube channel URL and enrich YouTube channel details. |
tiktok | No | false | When used with fetch_social_info, visit the first discovered TikTok profile URL and enrich TikTok profile details. |
linkedin | No | false | When used with fetch_social_info, visit the first discovered LinkedIn company/profile URL and enrich LinkedIn details. |
fetch_place_details | No | false | Crawl Google Maps place-detail attributes. Service options, links, parking, payments, accessibility, amenities, and other merchant attributes are exported dynamically in attributes. |
fetch_reservation_data | No | false | Extract structured Google Maps reservation provider data into reservation_data, including availability, provider count, provider names, and provider URLs when available. |
fetch_online_order | No | false | Extract Google Maps online ordering availability and supported ordering methods into online_order_available and online_order_methods. |
fetch_web_result | No | false | Request Google web results for each place by title, state, and city, then enrich the output with related merchant information in web_results. |
fetch_reviews | No | false | Scrape user reviews for each merchant, including rating, review text, and optional reviewer information. Review scraping increases runtime, especially when many reviews are requested. |
max_reviews_per_place | No | 5 when reviews are enabled | Maximum reviews to fetch for each place. Ignored when fetch_reviews is false; values above 1000 are automatically limited to 1000. |
review_sort_by | No | newest | Review sorting method used when fetch_reviews is enabled. Supported values: newest, oldest, highestRating, lowestRating, mostRelevant. |
review_keyword | No | empty | Optional keyword used to filter fetched reviews when fetch_reviews is enabled. |
include_reviewer_info | No | true | Include reviewer name, profile URL, profile ID, avatar URL, review count, and photo count in structured review output. |
Every run returns a structured dataset that can be reviewed in a table, filtered by business workflow, or exported in 8 formats: CSV, JSON, JSONL, XLS, XLSX, HTML, XML, and RSS. Table view is best for checking, sorting, and filtering results before export. JSON and JSONL preserve nested fields such as reviews, attributes, reservation_data, web_results, and people_also_search; spreadsheet formats are better for CRM imports, lead review, and market analysis.
CoreClaw organizes output into focused field groups so you can work with the data by use case instead of reading every column at once. These views are subsets of the same run result, so you can start with a commercial summary view and still export the full JSON record when you need every field.
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/*.
Use this view to qualify places, map territory coverage, remove duplicates, and segment markets by category or location. It gives you the business identity, category stack, address, status, and map URL needed for local market analysis.
Use this view to build outreach lists for sales, partnerships, and local business development. It keeps the fields most teams need first: website, phone, public email, and category context for personalization.
Use this view to find where each business is active online. Social URLs help marketing and sales teams verify brand presence, enrich CRM records, and choose the right outreach channel.
Use this view when you need more than URLs. Enriched profile metrics such as followers, verification, company size, post counts, and business account status help prioritize accounts by reach and credibility.
Use this view to benchmark reputation, spot strong or weak competitors, and identify businesses with recent customer activity. Rating distribution, popular times, review metadata, and review text can support local market research, lead scoring, and service-gap analysis.
Use this view to understand operating context: opening hours, booking or appointment links, owner data, images, nearby alternatives, and related places. It is useful for field sales planning, local SEO research, and partnership qualification.
Use the full JSON record when you need every field from a run, including nested arrays and raw detail fields. The example below shows the shape of a single scraped dental office in Austin with email_verification enabled. Email verification status values are valid, invalid, disposable, catch_all, unknown, verification failed, and not_checked; empty email slots return empty strings for the matching status and business-email fields.
Entering a country or region in the Base Location field is usually sufficient to start scraping. For more precise targeting, you can use a city + country or state + country.
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, GermanyUnited KingdomThe 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.
Google Maps Scraper works in a similar way to manually opening Google Maps, entering a location and search keyword, then viewing and copying business information one by one. The difference is that the script automates the entire process, making it much faster and more suitable for large-scale data collection.
When the script runs, it first uses the base_location you provide to locate the specified country, city, or region. It then enters your search keyword into the Google Maps search bar. After that, the script continuously scrolls through the search results until it reaches the end of the results, the system crawling limit, or the number set in Max Results.
During the scraping process, each place is processed as a separate result. The script collects visible business information from each place page, such as business name, address, phone number, website, rating, review count, opening hours, category, coordinates, images, social media links, and emails. The collected data is then organized into structured results, making it easy to download, filter, analyze, or use for lead generation.
To better understand the process, you can open Google Maps in your browser and search using the same location and keyword. The script performs almost the same actions, but it automates the repetitive steps and completes them much faster.
The official Google Places API is useful for application features that need supported Google APIs. For bulk market research, local lead generation, and review analysis, it can be restrictive because pricing, quotas, and result pagination are tied to API product limits. A scraper can provide a more flexible collection of public Google Maps page data, but 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, or 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 data from CoreClaw in CSV, JSON, JSONL, XLS, XLSX, HTML, XML, or RSS, then import it into spreadsheets, databases, CRMs, BI tools, or automation workflows. You can also use the CoreClaw REST API, MCP server, n8n node, or your own automation layer to start scraper runs, check run status, retrieve paginated results, or export results in the format your workflow expects.
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 file with /api/v1/run/result/export.Many web scraping use cases involve publicly available data, but legality depends on the data, jurisdiction, purpose, and how you process personal information. Respect personal data and intellectual property rules, scrape only when you have a legitimate reason to do so, and review Google's Terms of Use for your use case.
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, enabled enrichment options, 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.