Google Maps Scraper — Business Leads, Phones & Websites
Pricing
from $1.50 / 1,000 results
Google Maps Scraper — Business Leads, Phones & Websites
Scrape Google Maps businesses by keyword and location: export name, phone, website, address, rating, category and GPS coordinates to Excel, CSV or JSON. Build local lead lists for any city or niche — just type what and where, no coordinates or code needed.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
Google Maps Scraper — Business Leads, Phones, Websites & GPS Data
Extract verified local business listings and commercial lead intelligence from Google Maps. This Google Maps scraper enables you to enter standard natural queries — such as
dentists in Chicago,real estate agents in Miami, orcoffee shops in Austin TX— and instantly download complete, structured business records including business names, telephone numbers, direct website URLs, full physical addresses, star ratings, review counts, primary and secondary categories, Google Place IDs, and precise GPS coordinates. No browser overhead, no login credentials, and no Google Maps API keys required.
Crafted for B2B outbound sales teams, marketing agencies, SDR prospecting engines, local directory creators, real estate scouts, franchise intelligence analysts, and CRM enrichment pipelines seeking fresh, accurate local business data at enterprise volume.
⚡ At a glance
| Feature | Specification |
|---|---|
| Data source | Google Maps global commercial directory |
| Output formats | JSON, CSV, Excel (XLSX), XML, RSS, HTML table |
| Pagination model | Continuous pagination (20 places/page, unlocks 1,000+ records) |
| Throughput speed | ~50–100 businesses per second (lightweight HTTP engine) |
| Deduplication | Global unique feature ID and CID hashing (0 duplicates) |
| Contact coverage | ~95%+ phone numbers, ~90%+ official websites |
| Geographic coverage | Worldwide (25+ country ranking nodes, 19 interface languages) |
| Proxy requirements | Apify Proxy supported (datacenter or residential) |
| Authentication required | None (no Google API key or OAuth session required) |
🔎 Why scrape Google Maps for Business Leads?
Google Maps serves as the definitive global commercial index. Virtually every local store, medical clinic, law practice, restaurant, HVAC contractor, and corporate office maintains an active Google Maps profile containing validated phone numbers, websites, customer ratings, review tallies, and geographic coordinates.
However, Google Maps is architected strictly for single-user visual browsing, lacking any native bulk export functionality. Manually copy-pasting contacts from map pins is excruciatingly slow, prone to transcription errors, and impossible for generating thousands of monthly leads.
This Google Maps scraper solves this challenge. By executing targeted geographic and category searches, the actor traverses pagination offsets, extracts clean tabular records, eliminates cross-query duplicates, and delivers publication-ready datasets directly into your CRM or cold outreach workflows.
Core Strategic Applications
-
📞 High-Converting B2B Cold Outreach: Equip your sales development representatives (SDRs) with verified business names, telephone numbers, and company websites filtered by precise municipal zip codes or metro areas.
-
🎯 Hyper-Local Competitor Intelligence: Analyze competing businesses within any geographic radius. Identify market saturation levels, average consumer review volumes, and customer satisfaction ratings to spot untapped market niches.
-
🏢 Local SEO & Citation Auditing: Scrape existing Google Maps business listings across client locations to detect Name, Address, and Phone (NAP) inconsistencies that damage search visibility.
-
📍 Franchise & Retail Expansion Scouting: Identify high-opportunity neighborhoods for new retail store or restaurant openings by measuring competitor density and analyzing low-rated incumbent establishments.
-
🗂️ Niche Directory & Marketplace Seeding: Rapidly populate local trade directories (e.g., plumbing directories, veterinary registries, dental portals) with hundreds of verified regional listings.
-
📈 CRM Data Enrichment: Update missing websites, phone numbers, and physical coordinates in your legacy CRM databases by querying company names paired with city identifiers.
✨ Features & Capabilities
- ✅ Natural Language Search Queries: Type natural queries (
plumbers in Houston,software companies in Austin TX,bakeries in Paris) identical to the Google Maps search bar. - ✅ Deep Multi-Page Pagination: Automatically cycles through pages (20 places per RPC call) until the entire local area inventory is collected without early cutoffs.
- ✅ Zero Duplicate Guarantee: Utilizes Google's internal feature identifiers and CID keys to ensure duplicate business listings are automatically filtered across overlapping queries.
- ✅ Rich Business Intelligence: Extracts business name, primary category, all secondary categories, phone numbers, websites, full street addresses, review counts, and exact coordinates.
- ✅ Multi-Country & Language Targeting: Customize interface languages and search-origin countries to retrieve localized results and native character encodings.
- ✅ Granular Volume Limits: Set total record caps (
maxItems) or per-query limits (maxItemsPerQuery) to balance speed and budget. - ✅ Browserless HTTP Engine: Ultra-fast execution with minimal memory and compute unit consumption compared to heavy headless browser scrapers.
- ✅ Ready-to-Use Zero Config: Runs effortlessly with prefilled defaults or blank input to preview instant sample data.
📥 Input Parameters
The actor accepts the following configuration parameters. All parameters are optional, with intelligent defaults configured for immediate execution:
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | Array | ["restaurants in New York"] | List of natural queries (e.g. dentists in Chicago, gyms in Toronto). Leave empty for a curated multi-city demo sample. |
language | String | "en" | Google Maps interface language (en, es, fr, de, it, pt, tr, ja, etc.). |
countryCode | String | "us" | Country search node (us, gb, ca, au, de, fr, es, etc.) affecting localized rankings. |
maxItems | Integer | 0 | Total maximum places to collect across all searches. Set to 0 for unlimited deep crawl. Prefill 100. |
maxItemsPerQuery | Integer | 0 | Maximum places per individual search phrase. Set to 0 for unlimited per query. |
proxyConfiguration | Object | {"useApifyProxy": true} | Apify Proxy configuration. Datacenter proxies offer top speed; residential provides stealth at scale. |
📤 Output Data Fields
Each record delivered to the dataset corresponds to a unique local business entity:
🏢 Identity & Contact Fields
| Field | Type | Coverage | Description |
|---|---|---|---|
name | String | 🟢 High | Official business or organization name. |
category | String | 🟢 High | Primary business classification category (e.g., Dentist, Italian Restaurant). |
categories | Array | 🟢 High | Array containing primary and all secondary tags assigned by Google Maps. |
phone | String | 🟢 High | Formatted telephone number ready for direct calling or SMS routing. |
website | String | 🟢 High | Official company website URL (cleaned and direct). |
googleMapsUrl | String | 🟢 High | Direct canonical Google Maps URL referencing the business listing. |
📍 Location & Address Fields
| Field | Type | Coverage | Description |
|---|---|---|---|
address | String | 🟢 High | Complete formatted address including street, city, state/region, and postal code. |
street | String | 🟡 Conditional | Primary street address component when parsed by Google. |
cityRegion | String | 🟢 High | Municipal city, metropolitan borough, or regional administrative zone. |
country | String | 🟡 Conditional | Country identifier when specified in address tokens. |
latitude | Number | 🟢 High | Precise geographic latitude coordinate (WGS84). |
longitude | Number | 🟢 High | Precise geographic longitude coordinate (WGS84). |
⭐ Ratings & Platform Identifiers
| Field | Type | Coverage | Description |
|---|---|---|---|
rating | Number | 🟢 High | Average customer star rating on a 1.0 to 5.0 scale. |
reviewCount | Number | 🟢 High | Total volume of public reviews published on the business profile. |
googlePlaceId | String | 🟡 Conditional | Standard Google Place ID token (ChI...) for Place Details API interoperability. |
featureId | String | 🟢 High | Hexadecimal Google feature identifier (0x...:0x...). |
cid | String | 🟢 High | Numeric Customer ID (CID) representing Google's unique internal profile key. |
searchQuery | String | 🟢 High | The originating search string that returned this business result. |
scrapedAt | String | 🟢 High | ISO 8601 UTC timestamp of record extraction. |
💻 Sample Output Record
{"name": "Midtown Dental Associates","category": "Dentist","categories": ["Dentist","Cosmetic Dentist","Dental Clinic","Emergency Dental Service"],"rating": 4.9,"reviewCount": 384,"phone": "+1 212-555-0199","website": "https://www.midtowndentalexample.com","address": "450 Lexington Ave Suite 1800, New York, NY 10017","street": "450 Lexington Ave Suite 1800","cityRegion": "New York, NY 10017","country": "United States","latitude": 40.752726,"longitude": -73.975432,"googleMapsUrl": "https://www.google.com/maps?cid=8923481029384712019","googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4","featureId": "0x89c25902b47f4b37:0x7bc2df4868212133","cid": "8923481029384712019","searchQuery": "dentists in New York","scrapedAt": "2026-11-10T14:30:15.000Z"}
🛠️ Step-by-Step API Integration
Execute Google Maps business searches directly from your Python or Node.js backend.
Python Integration
from apify_client import ApifyClient# Initialize the Apify clientclient = ApifyClient("YOUR_APIFY_TOKEN")# Set up targeted B2B lead generation searchrun_input = {"queries": ["hvac contractors in Dallas TX","roofing companies in Fort Worth TX"],"maxItems": 200,"language": "en","countryCode": "us"}# Run the actor and wait for completionrun = client.actor("haketa/google-maps-scraper").call(run_input=run_input)# Stream scraped businessesfor item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"[{item.get('rating')}⭐ ({item.get('reviewCount')})] {item.get('name')} | {item.get('phone')} | {item.get('website')}")
Node.js Integration
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: 'YOUR_APIFY_TOKEN',});const runInput = {queries: ['commercial real estate in Miami'],maxItems: 150,language: 'en',countryCode: 'us',};const run = await client.actor('haketa/google-maps-scraper').call(runInput);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Extracted ${items.length} verified business leads.`);items.forEach(biz => {console.log(`${biz.name} - Phone: ${biz.phone} - Website: ${biz.website}`);});
cURL Execution
curl "https://api.apify.com/v2/acts/haketa~google-maps-scraper/runs?token=YOUR_APIFY_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"queries": ["lawyers in Chicago"],"maxItems": 100}'
🎯 Industry-Specific Lead Generation Strategies
To achieve maximum conversion and dataset yield, tailor your search queries to high-intent local commercial sectors:
| Industry Sector | Recommended Search Patterns | Target Conversion Opportunity |
|---|---|---|
| Commercial Contractors | commercial roofing in [City], hvac commercial in [City], electricians industrial in [City] | High-ticket B2B service contracts, commercial equipment sales, SaaS software |
| Healthcare & Dental | orthodontists in [City], pediatric dentists in [City], chiropractors in [City] | Patient scheduling software, medical supplies, dental lab partnerships |
| Legal & Professional | personal injury lawyers in [City], estate planning attorneys in [City], cpa firms in [City] | Legal research platforms, cloud cybersecurity, outsourced bookkeeping tools |
| Real Estate & Property | property management companies in [City], commercial real estate brokers in [City] | Facility management services, maintenance contracts, CRM technology |
| Automotive & Logistics | auto repair shops in [City], fleet maintenance in [City], towing services in [City] | Parts supply distribution, diagnostic hardware, fleet management software |
| Home Improvement | kitchen remodeling in [City], plumbers residential in [City], landscaping services in [City] | Lead generation marketplaces, marketing agency retainers, building materials |
🔄 Automated Workflows & CRM Integrations
Turn your scraped Google Maps leads into automated revenue pipelines without writing custom middleware:
flowchart LRA[Google Maps Scraper] -->|New Run Dataset| B[Apify Webhook]B --> C{Automation Hub}C -->|Filter by Website & Phone| D[HubSpot / Salesforce CRM]C -->|High-Rating Filter| E[Cold Email Sequence]C -->|Instant SMS Alert| F[Sales Rep Slack Channel]
Popular Integrations:
-
HubSpot & Salesforce CRM Synchronization: Connect Apify via Zapier or Make to automatically create new Company and Contact records as soon as a scraper run finishes. Populate phone numbers, websites, and physical addresses directly into standard lead fields.
-
Automated Cold Email Enrichment Pipelines: Feed your extracted Google Maps records into secondary enrichment actors (such as contact and email extractors) to identify decision-maker emails before routing prospects into automated email sequences.
-
Slack Real-Time High-Value Lead Alerts: Configure an Apify webhook to post incoming businesses with 50+ reviews and a 4.5+ star rating into your team's sales Slack channel for immediate high-priority outreach.
📊 Complete Field Definitions & Extraction Rules
Understanding how Google Maps structures local place metadata ensures accurate data hygiene:
-
phone(Telephone Number Formatting): Numbers are extracted directly from Google's business card panel and formatted in standard international or national telephony formats, making them directly usable in VoIP auto-dialers. -
website(Canonical Business URL): Redirect tokens, tracking query parameters, and Google redirect wrappers are cleanly stripped, leaving the root destination domain. -
categories(Primary & Secondary Classification): Google Maps assigns one primary category (e.g.Dentist) and multiple secondary category tags (e.g.Cosmetic Dentist,Teeth Whitening Service). Both are extracted so you can filter lists with extreme precision. -
googlePlaceId&cid: Stable global tokens representing the entity. Thecid(Customer ID) is Google's internal unique numeric identifier, allowing you to generate direct review URLs or link to Google Business Profile management tools.
💡 Lead Generation & Scraping Best Practices
- Divide Metro Areas into Sub-Districts:
Google Maps presents a maximum radius per query. To capture thousands of leads across a large metropolis like New York or London, submit multiple granular queries such as
plumbers in Brooklyn,plumbers in Queens, andplumbers in Manhattan. The scraper's built-in deduplication engine guarantees that multi-location businesses appear only once. - Filter Established vs. Emerging Businesses:
Use
ratingandreviewCountin your downstream analysis. A 4.8 rating with 500 reviews signifies an established market pillar, whereas a 5.0 rating with 4 reviews indicates a newly opened establishment prime for introductory B2B service pitches. - Enrich Legacy Contact Lists:
Pass exact business names with cities (e.g.
Acme Auto Repair Austin) to append missing websites, phone numbers, and coordinates to pre-existing contact files. - Match Language with Geographic Region:
When extracting businesses in Germany, France, or Japan, set
languagetode,fr, orjarespectively to guarantee native character sets and local business category classifications.
❓ Frequently Asked Questions (FAQ)
Does this actor require Google API credentials or billing? No. This scraper operates completely independently of the Google Maps Platform API. You do not need a Google Cloud account, API tokens, or credit card billing on Google.
How does deduplication work across multiple queries?
Each business listing on Google Maps carries a permanent hexadecimal featureId and numeric cid. The scraper indexes these identifiers across the entire run. If a query for restaurants in Manhattan and italian restaurants in Midtown return the same establishment, it is stored only once.
Can I extract thousands of businesses in a single execution?
Yes. By setting maxItems: 0 (or maxItems: 1000+) and providing multiple distinct geographic queries (or allowing default multi-city sampling), the scraper paginates continuously to retrieve deep inventories.
What should I do if a business is missing a phone or website?
Not all business owners populate phone numbers or websites on their public Google profiles. In our large-scale audits, approximately 95% of businesses include a phone number and 90% include a valid website. Missing fields are returned as null rather than dummy data.
How fast is the data extraction? Because the scraper utilizes an optimized direct HTTP architecture rather than launching resource-intensive headless Chrome instances, pages are queried and parsed in fractions of a second. A 100-business sample finishes in ~15–30 seconds.
Can I export leads directly to Excel or Google Sheets? Yes. You can export datasets from the Apify Console as XLSX, CSV, or JSON with a single click, or configure direct synchronization with Google Sheets, Airtable, or CRM webhooks.
Can I run this scraper on a recurring schedule? Yes. You can schedule the actor to run daily, weekly, or monthly on Apify. Use scheduling to discover newly registered businesses in growing metropolitan areas before your competitors find them.
How does the scraper handle businesses with multiple locations?
Each physical branch or storefront on Google Maps possesses its own distinct cid, featureId, and physical street address. As a result, chain stores or multi-location franchises are captured individually with their respective phone numbers and local coordinates.
What is the difference between datacenter and residential proxies for Google Maps? Datacenter proxies offer the highest execution speed and lowest cost, and handle standard search volumes easily. For massive operations involving tens of thousands of search queries across hundreds of cities, residential proxies provide additional stealth and rotation headroom.
How are coordinates (latitude and longitude) extracted? Coordinates are parsed directly from Google's spatial protobuf response with high precision (6 decimal places), making them directly compatible with GIS software, Mapbox, Google Earth, and radius-based geospatial queries.
Is there a limit to how many queries I can pass in one run?
No limit. You can provide an array of dozens or hundreds of queries in queries. The actor processes them sequentially with automatic session rotation between queries.
🔗 Complementary Lead Generation Scrapers
Pair the Google Maps Scraper with these high-intent lead intelligence extractors:
- Bing Maps Business Leads Scraper — Secondary mapping source enriched with emails and direct social profile links.
- Trustpilot Reviews Scraper — Extract customer satisfaction scores and verified feedback for corporate leads.
- Substack Scraper — Newsletter creator leads, subscriber counts, and media contacts.
- Turo Scraper — Car sharing market intelligence and peer-to-peer host leads.
📋 Changelog
- v1.2 (2026-11)
- Unlocked unlimited 1,000+ business pagination across multi-query and default sample sweeps.
- Enhanced pagination ceiling scaling so explicit
maxItemssettings are strictly honored during demo runs. - Added full Google Place ID (
googlePlaceId) extraction alongside stablecidandfeatureIdtokens. - Updated build tagging to
latestand standardized sub-30s prefill run execution.
- v1.1 (2026-08)
- Implemented global cross-query deduplication using Google feature ID hashing.
- Added primary and secondary category array extraction.
- v1.0 (2026-07)
- Initial public launch of high-throughput Google Maps business leads scraper.