Google Maps Leads Extractor
Pricing
from $2.10 / 1,000 lead extracteds
Google Maps Leads Extractor
Extract Google Maps leads enriched with emails, CNPJ (Brazil), CNAE classification, social media profiles, and WhatsApp validation. Brazil-optimized for B2B sales teams, SDRs, and lead-gen agencies.
Pricing
from $2.10 / 1,000 lead extracteds
Rating
0.0
(0)
Developer
Gerson Cesar
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
Turn any Google Maps search into a rich B2B lead list — each business enriched with review intelligence, website tech detection, emails, and social profiles. Built for sales teams, agencies, and SDRs worldwide. 🇧🇷 Brazil bonus: CNPJ, CNAE classification, and WhatsApp detection.
What does Google Maps Leads Extractor do?
This Actor scrapes Google Maps search results and, optionally, turns each result into a full sales dossier. It analyzes each business's recent Google reviews (review velocity, owner-response rate, latest review date, top keywords) and visits its website to detect the platform (Shopify/WordPress/Wix…), online store, chat widgets, and advertising pixels (Meta/Google/TikTok) — plus emails and social links. For Brazilian businesses, it further enriches the CNPJ with razão social, CNAE classification, and capital social via BrasilAPI, and detects published WhatsApp links.
Try it directly on the Apify platform — no Google API key, no login, no manual exports required.
Why use Google Maps Leads Extractor?
- Review intelligence — Know if a business is active before you reach out: review velocity (last 30/90 days), latest review date, whether the owner replies, and the keywords customers actually mention
- Website intelligence — Detect the site platform, online store, chat widgets, and advertising pixels (Meta/Google/TikTok). "Has a site but no pixel" is the perfect filter for marketing agencies
- Find business emails + social profiles at scale — Visits each business's website (homepage + contact paths) and extracts emails and social links
- Standard Google Maps fields — Name, address, phone, website, rating, reviews, opening hours, coordinates, Plus Code
- Outbound-ready output — JSON, CSV, or Excel; or pipe to Google Sheets, HubSpot, Pipedrive via Apify integrations
- 🇧🇷 Brazil bonus — CNPJ detection from website footers, BrasilAPI enrichment (razão social, CNAE, capital social), and WhatsApp link detection
Website & review intelligence
Two enrichments turn a plain listing into a qualified, actionable lead:
- Review intelligence (
includeReviews) — Extracts recent Google reviews and computes:recentReviewCount,reviewVelocity30d/reviewVelocity90d(how fresh the activity is),latestReviewDate,ownerResponseRate(does the owner engage?), andtopKeywords(what customers praise or complain about). Control depth withmaxReviews(1–50). - Website intelligence (
includeWebsiteIntelligence) — Detectsplatform(Shopify, WooCommerce, WordPress, Wix, VTEX…),hasOnlineStore,chatWidgets(Intercom, Crisp, JivoChat, WhatsApp…),advertisingPixels(Meta Pixel, Google Ads/GA, TikTok, LinkedIn), andhasContactForm. Reuses the same page fetch as the email step, so it adds no extra requests.
How to use Google Maps Leads Extractor
- Open the Actor on Apify and click Try for free
- Enter your search term — e.g. "restaurantes italianos", "clínicas odontológicas"
- Enter a location — city, region, or neighborhood
- Pick a language for Google Maps UI (en, pt, es, fr, de, it)
- Enable the enrichments you need:
- ✅ "Reviews intelligence" — review velocity, owner-response rate, latest review, top keywords
- ✅ "Website intelligence" — platform, online store, chat widgets, ad pixels
- ✅ "Extract Emails" — visits business websites for emails + social links
- 🇧🇷 "Extract CNPJ" / "Enrich CNPJ with BrasilAPI" / "Check WhatsApp Business" — Brazil-specific
- Click Run and download results as JSON, CSV, or Excel
Input
| Field | Required | Default | Description |
|---|---|---|---|
searchTerm | ✅ | — | What to search (e.g. "restaurantes italianos") |
location | ✅ | — | Where to search (e.g. "Pinheiros, São Paulo") |
maxResults | ❌ | 50 | Number of leads to extract (1–500) |
language | ❌ | en | UI language: en, pt, es, fr, de, it |
includeHours | ❌ | true | Extract opening hours |
includeReviews | ❌ | false | Analyze recent Google reviews (velocity, owner-response, keywords) |
maxReviews | ❌ | 10 | Reviews to analyze per business (1–50) |
includeWebsiteIntelligence | ❌ | false | Detect platform, online store, chat widgets, ad pixels |
includeEmails | ❌ | false | Visit websites for emails + social links (+3–8s/lead) |
includeCnpj | ❌ | false | 🇧🇷 Scan website for CNPJ |
enrichCnpj | ❌ | false | 🇧🇷 Call BrasilAPI for full CNPJ details |
checkWhatsapp | ❌ | false | 🇧🇷 Detect a published WhatsApp link |
Example input (global lead qualification):
{"searchTerm": "dentists","location": "Austin, TX","maxResults": 100,"language": "en","includeReviews": true,"maxReviews": 10,"includeWebsiteIntelligence": true,"includeEmails": true}
Example input (🇧🇷 Brazilian B2B prospecting):
{"searchTerm": "clínicas odontológicas","location": "São Paulo, Brasil","maxResults": 100,"language": "pt","includeReviews": true,"includeWebsiteIntelligence": true,"includeEmails": true,"includeCnpj": true,"enrichCnpj": true,"checkWhatsapp": true}
Output
Each business is saved as a structured JSON item in the Apify Dataset. Download in JSON, CSV, HTML, or Excel from the Apify Console.
Example output item (full enrichment):
{"name": "Aguzzo Cucina Italiana - Pinheiros","address": "R. Simão Álvares, 325 - Pinheiros, São Paulo - SP, 05417-030","phone": "1130837363","website": "https://aguzzo.com.br/","category": "Restaurante italiano","rating": 4.5,"reviewsCount": 2138,"priceLevel": null,"latitude": -23.5648215,"longitude": -46.6882484,"googleMapsUrl": "https://www.google.com/maps/place/Aguzzo+Cucina+Italiana+-+Pinheiros/...","plusCode": "C8P6+3P Pinheiros, São Paulo - SP","openingHours": ["segunda-feira: 12:00–15:00, 19:00–23:00","terça-feira: 12:00–15:00, 19:00–23:00"],"emails": ["contato@aguzzo.com.br", "reservas@aguzzo.com.br"],"socialLinks": {"facebook": "https://facebook.com/aguzzopinheiros","instagram": "https://instagram.com/aguzzocucinaitaliana","whatsapp": "https://wa.me/5511999998888"},"cnpj": "12.345.678/0001-99","cnpjData": {"cnpj": "12.345.678/0001-99","razao_social": "AGUZZO CUCINA ITALIANA LTDA","nome_fantasia": "Aguzzo Pinheiros","cnae_fiscal_descricao": "Restaurantes e similares","cnae_fiscal": 5611201,"porte": "ME","capital_social": 50000,"natureza_juridica": "Sociedade Empresária Limitada","data_inicio_atividade": "2018-03-15","municipio": "SAO PAULO","uf": "SP","enrichedFrom": "brasilapi"},"whatsappBusiness": true,"searchQuery": "restaurantes italianos | Pinheiros, São Paulo, Brasil","scrapedAt": "2026-05-27T16:08:12.432Z"}
Data table
| Field | Type | Description |
|---|---|---|
name | string | Business name |
address | string | null | Full street address |
phone | string | null | Phone digits with optional + prefix |
website | string | null | Business website URL |
category | string | null | Google's category |
rating | number | null | Average rating 0–5 |
reviewsCount | number | null | Total Google reviews |
priceLevel | string | null | $, $$, $$$, $$$$ |
latitude | number | null | Decimal degrees |
longitude | number | null | Decimal degrees |
googleMapsUrl | string | Canonical Place URL |
plusCode | string | null | Google Plus Code |
openingHours | string[] | null | Day-formatted hours |
reviewsIntelligence | object | null | Review metrics: recentReviewCount, reviewVelocity30d/90d, latestReviewDate, ownerResponseRate, topKeywords, recentReviews (when includeReviews is true) |
websiteIntelligence | object | null | Site signals: platform, hasOnlineStore, chatWidgets, advertisingPixels, hasContactForm (when includeWebsiteIntelligence is true) |
emails | string[] | null | Emails extracted from website (when includeEmails is true) |
socialLinks | object | null | Facebook, Instagram, LinkedIn, etc. URLs found on website |
cnpj | string | null | CNPJ formatted "XX.XXX.XXX/XXXX-XX" (when includeCnpj is true) |
cnpjData | object | null | BrasilAPI enrichment: razão social, CNAE, capital social, etc. |
whatsappBusiness | boolean | null | Whether phone has WhatsApp (best-effort) |
searchQuery | string | Original search (audit field) |
scrapedAt | string | ISO 8601 timestamp |
Pricing — how much does it cost to scrape Google Maps leads?
This Actor uses Pay Per Event (PPE) pricing. The price scales with how much enrichment you request:
| Mode | Output | Price |
|---|---|---|
| Basic (no flags) | Google Maps standard fields | $2.10 / 1,000 leads |
| + Email Finder | Above + emails + social links | $4.50 / 1,000 leads |
| + Review & website intelligence | Above + review metrics + site/pixel detection | from $6.00 / 1,000 leads |
| Full enrichment | Above + 🇧🇷 CNPJ + razão social + CNAE + WhatsApp | $7.50 / 1,000 leads |
- You only pay an enrichment fee when we actually deliver that data. No reviews found, no website, no CNPJ → you pay only the base lead rate, never a premium for an empty result.
- Example: 100 fully enriched leads costs under $1.00.
- Agency workflow: 5,000 fresh enriched B2B leads/week ≈ $37.50/week.
- Free tier: New Apify accounts get $5 credit — about 600 fully enriched leads at no cost.
Tips and advanced options
- Start small: Run with
maxResults: 5first to verify the enrichment flags do what you expect - Match the language to the location: Use
language: "pt"for Brazilian cities — categories, opening hours, and addresses come back localized - Disable enrichments for speed: Each enrichment flag adds time. For just contact data, leave
enrichCnpjandcheckWhatsappoff - Refine location for better hits: "Vila Mariana, São Paulo" beats just "São Paulo" — more relevant, fewer dupes
- Schedule weekly: Use Apify's scheduler to auto-refresh competitor and prospect lists; pipe to your CRM via integrations
- WhatsApp check is heuristic: It may have false negatives (a number that does have WhatsApp returning false). Treat the
whatsappBusinessfield as a hint, not a guarantee
FAQ, disclaimers, and support
Is this legal? Google Maps and Brazilian commercial websites are publicly accessible. CNPJ is public information by Brazilian law. This Actor extracts only what's visible to any human visitor.
Why are some cnpj fields null? Not every business has a website, and not every website displays the CNPJ visibly. The Actor returns null gracefully; no run is killed by a missing CNPJ.
Why is whatsappBusiness sometimes null? The WhatsApp check is a best-effort heuristic — when wa.me returns an ambiguous page, we return null rather than guess.
My BrasilAPI lookups occasionally return null. BrasilAPI is rate-limited and can return 404 for CNPJs that exist but are not in its index. The Actor handles this gracefully — the rest of the lead is still saved.
Need a custom solution? Open an issue in the Issues tab or contact us.