Google Maps Leads Extractor avatar

Google Maps Leads Extractor

Pricing

from $2.10 / 1,000 lead extracteds

Go to Apify Store
Google Maps Leads Extractor

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

Gerson Cesar

Maintained by Community

Actor 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?), and topKeywords (what customers praise or complain about). Control depth with maxReviews (1–50).
  • Website intelligence (includeWebsiteIntelligence) — Detects platform (Shopify, WooCommerce, WordPress, Wix, VTEX…), hasOnlineStore, chatWidgets (Intercom, Crisp, JivoChat, WhatsApp…), advertisingPixels (Meta Pixel, Google Ads/GA, TikTok, LinkedIn), and hasContactForm. Reuses the same page fetch as the email step, so it adds no extra requests.

How to use Google Maps Leads Extractor

  1. Open the Actor on Apify and click Try for free
  2. Enter your search term — e.g. "restaurantes italianos", "clínicas odontológicas"
  3. Enter a location — city, region, or neighborhood
  4. Pick a language for Google Maps UI (en, pt, es, fr, de, it)
  5. 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
  6. Click Run and download results as JSON, CSV, or Excel

Input

FieldRequiredDefaultDescription
searchTermWhat to search (e.g. "restaurantes italianos")
locationWhere to search (e.g. "Pinheiros, São Paulo")
maxResults50Number of leads to extract (1–500)
languageenUI language: en, pt, es, fr, de, it
includeHourstrueExtract opening hours
includeReviewsfalseAnalyze recent Google reviews (velocity, owner-response, keywords)
maxReviews10Reviews to analyze per business (1–50)
includeWebsiteIntelligencefalseDetect platform, online store, chat widgets, ad pixels
includeEmailsfalseVisit websites for emails + social links (+3–8s/lead)
includeCnpjfalse🇧🇷 Scan website for CNPJ
enrichCnpjfalse🇧🇷 Call BrasilAPI for full CNPJ details
checkWhatsappfalse🇧🇷 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

FieldTypeDescription
namestringBusiness name
addressstring | nullFull street address
phonestring | nullPhone digits with optional + prefix
websitestring | nullBusiness website URL
categorystring | nullGoogle's category
ratingnumber | nullAverage rating 0–5
reviewsCountnumber | nullTotal Google reviews
priceLevelstring | null$, $$, $$$, $$$$
latitudenumber | nullDecimal degrees
longitudenumber | nullDecimal degrees
googleMapsUrlstringCanonical Place URL
plusCodestring | nullGoogle Plus Code
openingHoursstring[] | nullDay-formatted hours
reviewsIntelligenceobject | nullReview metrics: recentReviewCount, reviewVelocity30d/90d, latestReviewDate, ownerResponseRate, topKeywords, recentReviews (when includeReviews is true)
websiteIntelligenceobject | nullSite signals: platform, hasOnlineStore, chatWidgets, advertisingPixels, hasContactForm (when includeWebsiteIntelligence is true)
emailsstring[] | nullEmails extracted from website (when includeEmails is true)
socialLinksobject | nullFacebook, Instagram, LinkedIn, etc. URLs found on website
cnpjstring | nullCNPJ formatted "XX.XXX.XXX/XXXX-XX" (when includeCnpj is true)
cnpjDataobject | nullBrasilAPI enrichment: razão social, CNAE, capital social, etc.
whatsappBusinessboolean | nullWhether phone has WhatsApp (best-effort)
searchQuerystringOriginal search (audit field)
scrapedAtstringISO 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:

ModeOutputPrice
Basic (no flags)Google Maps standard fields$2.10 / 1,000 leads
+ Email FinderAbove + emails + social links$4.50 / 1,000 leads
+ Review & website intelligenceAbove + review metrics + site/pixel detectionfrom $6.00 / 1,000 leads
Full enrichmentAbove + 🇧🇷 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: 5 first 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 enrichCnpj and checkWhatsapp off
  • 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 whatsappBusiness field 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.