UnitBytes Logo
UnitBytes Enterprise Data Labs
Home / Blog / Maps, Local Business & Reputation Intelligence
Maps, Local Business & Reputation Intelligence 13 min read 2026-10-24

Google Maps B2B Leads & Email Scraper Guide (2026): Extract Verified Emails, Tech Stacks, Ad Pixels & Outreach Hooks ($0.50/1K)

How to scrape Google Maps B2B leads with verified decision-maker emails, E.164 phones, social profiles, website CMS & ad pixel detection (Meta Pixel, Google Ads Tag), agency opportunity flags (UNCLAIMED_GBP), and cold-outreach review hooks starting at $0.50/1K leads.

UnitBytes
UnitBytes Engineering Team
Autonomous Web Data Intelligence Labs

If you run a B2B outbound agency, build local SaaS tools, manage GoHighLevel workflows, or prospect brick-and-mortar businesses (dentists, medspas, roofing contractors, HVAC companies, law firms, restaurants), Google Maps is the most accurate, real-time directory of local businesses on earth.

Unlike static B2B databases like Apollo or ZoomInfo—which miss up to 70% of local service businesses and charge $59 to $250+ per seat—Google Maps updates every day as new businesses open, change phone numbers, and collect customer reviews.

  • There is just one problem: Google Maps listings never display email addresses, social media links, website tech stacks, or advertising pixels. Even if you pay $17.00 to $40.00+ per 1,000 requests for the official Google Places API, you only get a business name, address, phone number, and raw website URL. To build a usable cold-email or SMS campaign, teams are typically forced to chain 2 to 3 separate scrapers together (a Maps scraper, a Website Contact scraper, and a BuiltWith/pixel checker) and stitch messy CSV files together with VLOOKUP.

In this 2026 B2B prospecting guide, we break down how to extract complete, outreach-ready B2B leads in a single pass using the UnitBytes Google Maps Email & Leads Scraper (unitbytes/google-maps-leads-scraper)—delivering 48 flat CRM-ready fields (verified emails, E.164 phone numbers, social links, CMS & ad pixel detection, UNCLAIMED_GBP flags, and cold-outreach review hooks) starting at $0.50 to $1.50 per 1,000 leads.


1. Google Maps B2B Lead Generation Pricing & Feature Comparison (2026)#

When building local B2B lead lists, the hidden cost isn't just scraping the map pin—it's enriching each business with verified decision-maker emails, social profiles, and qualification signals without paying double or triple per record.

Feature / WorkflowUnitBytes Google Maps Leads ScraperChaining 2–3 Separate Actors (Maps + Email + Tech)Outscraper / Legacy Lead ScrapersOfficial Google Places API
Cost per 1,000 Enriched Leads💰 $0.50 – $1.50 / 1K leads (All-in-One)$4.00 – $9.00 / 1K (2–3x actor fees)$3.00 – $10.00+ / 1K (extra fee per email/phone)$17.00 – $40.00+ / 1K calls
Free Monthly Quota✅ 3,300 – 10,000 Free Leads / mo ($5 Apify credit)Split across multiple runsLimited one-time trialCredit card & Cloud Billing required
Verified Website Emails (primary_email, emails)✅ Included Free (Homepage + /contact + /about)Requires 2nd Website Crawler ActorPaid add-on per domain❌ Never returned by Google
Social Profiles (LinkedIn, IG, FB, X, TikTok, YT)✅ Included Free (6 dedicated columns)Requires 2nd Website Crawler ActorPaid add-on❌ Never returned by Google
E.164 Phone & WhatsApp (phone_international, whatsapp_url)✅ Automatic E.164 formatting + site phonesRaw local string onlyRaw local stringBasic phone only
Ad Pixels & CMS (has_meta_pixel, has_google_ads_tag, website_cms)✅ Included Free (12 CMS + 12 Martech/Pixel tags)Requires 3rd Tech Lookup Tool❌ Not supported❌ Never returned by Google
Agency Pitch Flags (UNCLAIMED_GBP, NO_ONLINE_BOOKING, etc.)✅ 9 Automated Opportunity Flags + lead_score (0–100)Manual spreadsheet formulas❌ Not supported❌ Not supported
Cold-Outreach Review Hook (review_hook_text, review_hook_report_url)✅ Included (most_relevant, lowest_rating, or newest)Requires separate Reviews Scraper❌ Not supportedMax 5 un-sortable reviews
💡
💡 Need a Done-For-You Excel / CSV Lead List for Your Niche? Want 5,000+ verified dentists, medspas, roofers, HVAC contractors, or ecommerce brands across target cities—complete with emails, phone numbers, Instagram/LinkedIn links, and Meta/Google pixel audits? Request a custom dataset via our Done-For-You Dataset Request Form below.

2. 5 Core Superpowers Built for Outbound Sales, SMMA & Local SEO Agencies#

1. Single-Pass Website Contact & Decision-Maker Email Enrichment (scrapeContacts: true)

When scrapeContacts: true (enabled by default), the Actor doesn't stop at the Google Maps card. As soon as it extracts a business's Google Maps profile, it automatically visits the business's official website—and follows internal links to high-yield /contact, /contact-us, /about, and /about-us pages—to extract:

  • primary_email & emails: Decodes obfuscated mailto: links and protected email strings, filters out false-positive asset filenames (.png, .webp, @2x), CSS tokens, and automated junk addresses (noreply@, wixpress.com, sentry.io, example.com), and ranks real business emails so domain-matched addresses and decision-maker prefixes (owner@, founder@, ceo@, president@, director@, dr@, contact@, hello@, info@, office@, sales@) appear first in primary_email.
  • phone & phone_international (E.164 Standard): Automatically formats local phone numbers into strict international E.164 syntax (e.g., +15125550199) ready for immediate import into Twilio, GoHighLevel (GHL), AirCall, RingCentral, or WhatsApp Business, plus website_phones discovered on the business website.
  • whatsapp_url & booking_url: Captures direct wa.me / api.whatsapp.com chat links and detects 12+ online appointment/reservation systems (Calendly, Zocdoc, NexHealth, LocalMed, FlexBook, OpenTable, Resy, Vagaro, Booksy, Mindbody, Acuity, Square Appointments).
  • 6 Dedicated Social Media Columns: Extracts and normalizes linkedin_url, instagram_url, facebook_url, twitter_url, youtube_url, and tiktok_url into clean root-level columns for multi-channel outbound sequences.

2. Automated Agency Opportunity Flags (agency_opportunity_flags) & Lead Scoring (lead_score)

Instead of cold-calling every business in a city with a generic pitch, unitbytes/google-maps-leads-scraper automatically audits each prospect's digital footprint and populates agency_opportunity_flags alongside a lead_score (0–100):

agency_opportunity_flags ValueWhat It MeansHigh-Converting Agency / SaaS Pitch
UNCLAIMED_GBPis_claimed: false on Google Maps (includes direct claim_business_url)Local SEO / GBP Management: "Your Google Business Profile is currently unclaimed—anyone can suggest edits to your hours or phone number."
MISSING_META_PIXELWebsite has has_meta_pixel: falsePaid Social / SMMA Agencies: Pitch Facebook & Instagram retargeting campaigns to established local businesses with high review counts.
MISSING_GOOGLE_TAGWebsite has has_google_ads_tag: falsePPC / Google Ads Agencies: Pitch high-intent local search ads and conversion tracking setup.
NO_ONLINE_BOOKINGWebsite has no Calendly, Zocdoc, NexHealth, Booksy, Mindbody, or OpenTable widget (booking_url: null)GoHighLevel / AI Receptionist SaaS: Pitch 24/7 automated online appointment booking and missed-call text-back widgets.
NO_WEBSITEBusiness is active on Google Maps with phone & reviews, but website: nullWeb Design & Local Landing Page Agencies: Pitch a turnkey WordPress, Webflow, or GoHighLevel website.
LOW_RATING_UNDER_4_2Google Maps rating is below 4.2 stars (rating < 4.2)Online Reputation Management (ORM): Pitch automated 5-star review generation or disputed 1-star review removal.
LOW_REVIEW_COUNTFewer than 10 total reviews on Google Maps (reviews_count < 10)Review Generation SaaS: Pitch SMS/QR-code customer review campaigns to outrank local competitors.
NO_EMAIL_ON_SITEBusiness has a website, but no public contact email is listedLead Capture / Live Chat Widget Pitch: Pitch AI chat or contact form optimization.
NO_SOCIAL_LINKSWebsite lists zero links to Instagram, Facebook, LinkedIn, or TikTokSocial Media Management: Pitch organic social presence and short-form video packages.

3. Website CMS & Martech Stack Detection (website_cms & website_tech_stack)

Every website crawl automatically fingerprints the underlying CMS and marketing technology stack at zero extra cost:

  • website_cms: Identifies WordPress, Shopify, Wix, Squarespace, Webflow, GoHighLevel, Duda, Weebly, HubSpot CMS, Joomla, Drupal, or Custom / Static.
  • website_tech_stack: Detects installed ad pixels, CRM chat widgets, and competing local SEO tools including Meta Pixel, Google Ads / GTag, TikTok Pixel, LinkedIn Insight Tag, HubSpot, Intercom, Stripe, Yext, BrightLocal, Moz Local, Birdeye, and Podium—plus any detected booking platform (Zocdoc, Calendly, Mindbody, OpenTable, etc.).

4. Built-In Cold-Outreach Review Hooks (includeReviewHook & reviewHookType)

Generic cold emails get ignored. Referencing a specific customer review from a prospect's Google Maps listing boosts cold email reply rates by 2x to 4x.

When includeReviewHook: true (default), each lead record includes review_hook_stars, review_hook_author, review_hook_date, review_hook_text, and a 1-click Google policy violation link (review_hook_report_url). You can tailor the hook to your exact offer using reviewHookType:

  1. reviewHookType: "most_relevant" (Cold Email Icebreaker Mode — Default): Pulls a detailed customer review so your outbound sequence in Instantly.ai, Smartlead, or Lemlist can open with:

> "Saw {{review_hook_author}}'s {{review_hook_stars}}-star review mentioning '{{review_hook_text}}'—wanted to reach out..." 2. reviewHookType: "lowest_rating" (ORM & 1-Star Takedown Pitch Mode): Pulls the business's top 1-star complaint directly from Google's backend along with its 1-click Google dispute link (review_hook_report_url) so reputation agencies can pitch:

> "We noticed the 1-star review from {{review_hook_author}} ({{review_hook_date}}) dragging down {{business_name}}'s {{rating}}★ rating—here is the direct link to flag it..." 3. reviewHookType: "newest" (Recent Activity Mode): Pulls the most recently published customer review to confirm active customer volume and recent sentiment.

5. All Supported Search & Location Input Formats (searchQueries)

Pass any combination of search queries, URLs, or IDs inside searchQueries (up to maxPlacesPerQuery: 200 businesses per query):

  1. Category + City / ZIP Search Queries: "dentists in Austin TX", "roofing contractors in Miami FL", "medspas in 90210", "personal injury lawyers in Chicago IL"
  2. Google Maps Search URLs: https://www.google.com/maps/search/implant+dentists/@30.2672,-97.7431,13z
  3. Direct Business Place URLs: https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/
  4. Google Place IDs (ChIJ...), Hex Feature IDs (0x...:0x...), or g.page Shortlinks: ChIJ2_VLfRdawokRXKfA6CMf5YQ
  5. GPS Coordinates (lat, lng): "30.2672, -97.7431"

3. Complete 48-Field Flat Schema (1-Click CSV, Excel, HubSpot & GoHighLevel Ready)#

Every business extracted by unitbytes/google-maps-leads-scraper is normalized into 48 flat root-level fields—ready to import directly into Excel, Google Sheets, HubSpot, Clay, Instantly.ai, Smartlead, or GoHighLevel:

json
{
  "input_query": "dentists in Austin TX",
  "status": "OK",
  "scraped_at": "2026-10-24T18:30:12.410291+00:00",
  "error": null,
  "business_name": "Austin Smile & Implant Center",
  "place_id": "ChIJ2_VLfRdawokRXKfA6CMf5YQ",
  "place_cid": "9576097791875393372",
  "feature_id": "0x8644b599a0f15555:0x84e51f23e8c0a75c",
  "knowledge_graph_id": "/g/11b6_r8xyz",
  "primary_category": "Dental clinic",
  "categories": ["Dental clinic", "Cosmetic dentist", "Dental implants periodontist"],
  "google_maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJ2_VLfRdawokRXKfA6CMf5YQ",
  "price_level": "$$",
  "primary_email": "[email protected]",
  "emails": ["[email protected]", "[email protected]"],
  "email_count": 2,
  "has_email": true,
  "phone": "(512) 555-0199",
  "phone_international": "+15125550199",
  "website_phones": ["(512) 555-0199", "(512) 555-0192"],
  "whatsapp_url": "https://wa.me/15125550199",
  "website": "https://www.austinsmilecenter.com/",
  "domain": "austinsmilecenter.com",
  "contact_page_url": "https://www.austinsmilecenter.com/contact-us",
  "booking_url": "https://www.zocdoc.com/practice/austin-smile-center-12345",
  "linkedin_url": "https://www.linkedin.com/company/austin-smile-center",
  "instagram_url": "https://www.instagram.com/austinsmilecenter",
  "facebook_url": "https://www.facebook.com/austinsmilecenter",
  "twitter_url": null,
  "youtube_url": null,
  "tiktok_url": null,
  "social_urls": [
    "https://www.linkedin.com/company/austin-smile-center",
    "https://www.instagram.com/austinsmilecenter",
    "https://www.facebook.com/austinsmilecenter"
  ],
  "address": "1200 Congress Ave, Austin, TX 78701, United States",
  "street": "1200 Congress Ave",
  "neighborhood": "Downtown Austin",
  "city": "Austin",
  "state": "Texas",
  "postal_code": "78701",
  "country_code": "US",
  "country": "United States",
  "plus_code": "7624+9X Austin, Texas",
  "latitude": 30.273412,
  "longitude": -97.740518,
  "timezone": "America/Chicago",
  "rating": 4.8,
  "reviews_count": 342,
  "is_claimed": true,
  "claim_business_url": null,
  "working_hours": {
    "Monday": "8 AM–5 PM",
    "Tuesday": "8 AM–5 PM",
    "Wednesday": "8 AM–5 PM",
    "Thursday": "8 AM–5 PM",
    "Friday": "8 AM–2 PM",
    "Saturday": "Closed",
    "Sunday": "Closed"
  },
  "cover_image_url": "https://lh3.googleusercontent.com/p/AF1QipN...",
  "website_cms": "WordPress",
  "website_tech_stack": ["WordPress", "Meta Pixel", "Google Ads / GTag", "Zocdoc"],
  "has_meta_pixel": true,
  "has_google_ads_tag": true,
  "lead_score": 95,
  "agency_opportunity_flags": [],
  "review_hook_stars": 5,
  "review_hook_author": "Michael Vance",
  "review_hook_date": "3 days ago",
  "review_hook_text": "Dr. Smith and the hygienist team made my dental implant procedure completely painless.",
  "review_hook_report_url": "https://www.google.com/local/review/rap/report?postId=ChdDSUhNMG9nS0VJQ0FnSUN..."
}

All 48 Output Fields by Category

CategoryFlat Output Fields
Business Identity (13 Fields)input_query, status, scraped_at, error, business_name, place_id (ChIJ...), place_cid, feature_id, knowledge_graph_id, primary_category, categories, google_maps_url, price_level
Verified Emails & Phones (8 Fields)primary_email, emails, email_count, has_email, phone, phone_international (E.164), website_phones, whatsapp_url
Website & Booking Links (4 Fields)website (stripped of UTM/gclid/fbclid tracking), domain, contact_page_url, booking_url
Social Media Profiles (7 Fields)linkedin_url, instagram_url, facebook_url, twitter_url, youtube_url, tiktok_url, social_urls
Address & Geolocation (12 Fields)address, street, neighborhood, city, state, postal_code, country_code, country, plus_code, latitude, longitude, timezone
Reputation & Agency Signals (12 Fields)rating, reviews_count, is_claimed, claim_business_url, working_hours, cover_image_url, website_cms, website_tech_stack, has_meta_pixel, has_google_ads_tag, lead_score (0–100), agency_opportunity_flags
Cold-Outreach Review Hook (5 Fields)review_hook_stars, review_hook_author, review_hook_date, review_hook_text, review_hook_report_url

4. Python Tutorial: Scrape B2B Leads & Filter High-Intent Agency Prospects#

You can run unitbytes/google-maps-leads-scraper via the official apify-client Python SDK and segment leads by agency_opportunity_flags in under 30 lines of code:

python
import os
import pandas as pd
from apify_client import ApifyClient

client = ApifyClient(os.getenv("APIFY_TOKEN", "YOUR_APIFY_TOKEN"))

run_input = {
    "searchQueries": [
        "dentists in Austin TX",
        "medspas in Scottsdale AZ",
        "roofing contractors in Tampa FL",
    ],
    "maxPlacesPerQuery": 50,
    "scrapeContacts": True,            # Crawl homepage + /contact + /about for emails, socials & tech stack
    "includeReviewHook": True,         # Attach a customer review snippet for cold email personalization
    "reviewHookType": "most_relevant", # Or "lowest_rating" to pull 1-star complaints for ORM pitches
    "language": "en",
    "region": "us",
}

# Execute on Apify Cloud ($0.50 - $1.50 per 1,000 B2B leads)
run = client.actor("unitbytes/google-maps-leads-scraper").call(run_input=run_input)

# Load all 48 flat fields directly into a Pandas DataFrame
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)

# 1. Filter for verified email leads missing a Meta Pixel (high-intent Paid Social prospects)
meta_prospects = df[
    df["has_email"] & (~df["has_meta_pixel"]) & (df["reviews_count"] >= 20)
]
print(f"Found {len(meta_prospects)} established businesses with verified email missing Meta Pixel!")

# 2. Filter for businesses with unclaimed Google Business Profiles or no online booking widget
unclaimed_or_no_booking = df[
    df["agency_opportunity_flags"].apply(
        lambda flags: isinstance(flags, list)
        and ("UNCLAIMED_GBP" in flags or "NO_ONLINE_BOOKING" in flags)
    )
]
print(f"Found {len(unclaimed_or_no_booking)} leads with UNCLAIMED_GBP or NO_ONLINE_BOOKING!")

# Export clean CSV ready for Instantly.ai, Smartlead, Clay, or GoHighLevel
df.to_csv("google_maps_b2b_leads_enriched.csv", index=False)

5. Combine with the Full UnitBytes Google Maps Intelligence Suite#

Once you identify high-value local business prospects with the Google Maps Email & Leads Scraper, you can chain any of the specialized UnitBytes Google Maps engines using the exact place_id (ChIJ...) or google_maps_url:

  1. Google Maps Email & Leads Scraper (unitbytes/google-maps-leads-scraper): Extract B2B business leads with verified emails, E.164 phone numbers, social media links, website CMS & ad pixel detection (Meta Pixel, Google Ads), agency_opportunity_flags, and cold-outreach review hooks starting at $0.50 / 1,000 leads.
  2. Google Maps Reviews Scraper (unitbytes/google-maps-reviews-scraper): Need more than 1 review hook? Extract up to 10,000 historical reviews per business starting at $0.25 / 1,000 reviews with server-side lowest_rating sorting and reviewKeyword filtering (read the 10K Google Maps Reviews Scraper Guide).
  3. Google Maps Review Monitor & Change Tracker (unitbytes/google-maps-reviews-tracker): Stateful cross-run review monitoring that tracks NEW, REMOVED, RATING_CHANGED, TEXT_EDITED, and OWNER_REPLIED reviews across scheduled runs, audits owner reply SLAs (response_time_hours), and generates 1-click Google dispute URLs (review_report_url) (read the Review Monitor & Change Tracker Guide).
  4. Google Maps Contributor & Local Guide Scraper (unitbytes/google-maps-contributor-scraper): Investigate suspicious 1-star reviewers by extracting their full cross-location review history, Local Guide badge, and category distribution (read the Contributor Fake Review Audit Guide).
  5. Google Maps Photos, Menus & Videos Scraper (unitbytes/google-maps-photos-scraper): Extract uncompressed original (=s0) restaurant menus, storefront photos, and playable MP4 videos at $0.50/1K (read the Photos, Menus & Videos Scraper Guide).

Frequently Asked Questions (FAQ)

Does Google Maps show email addresses natively, and how does this scraper extract them?

Google Maps does not display email addresses on business cards. When scrapeContacts is enabled (default: true), unitbytes/google-maps-leads-scraper automatically visits each business's official website plus its /contact and /about pages to extract verified emails, E.164 phone numbers, WhatsApp links, booking widgets, and social media profiles in a single run.

How does decision-maker email prioritization (primary_email) work?

The contact enrichment engine decodes obfuscated mailto: and protected email strings, strips out image filenames, CSS tokens, and noreply/sentry junk addresses, and ranks real business emails by prioritizing domain-matched addresses and leadership/contact prefixes (owner@, founder@, ceo@, dr@, contact@, hello@, info@) into the primary_email field.

What are agency_opportunity_flags and lead_score?

Every business is audited for high-intent digital marketing gaps and tagged with machine-filterable agency_opportunity_flags: UNCLAIMED_GBP, NO_WEBSITE, NO_EMAIL_ON_SITE, MISSING_META_PIXEL, MISSING_GOOGLE_TAG, NO_ONLINE_BOOKING, LOW_RATING_UNDER_4_2, LOW_REVIEW_COUNT, and NO_SOCIAL_LINKS, along with a 0-100 lead_score for instant CRM prioritization.

How do cold-outreach review hooks (includeReviewHook & reviewHookType) work?

When includeReviewHook is true, the Actor extracts a customer review snippet (review_hook_text, review_hook_stars, review_hook_author, review_hook_date) and a 1-click Google dispute URL (review_hook_report_url). Set reviewHookType to 'most_relevant' for personalized cold-email compliments, or 'lowest_rating' to pull the top 1-star complaint for reputation management pitches.

How much does it cost to scrape 1,000 B2B leads from Google Maps?

Pricing starts at $1.50 per 1,000 leads on the Apify Free tier ($0.0015/lead) and drops to $0.50 per 1,000 leads on Gold/Platinum/Diamond plans ($0.0005/lead), with all website contact enrichment, tech stack detection, and review hooks included at zero extra charge. Every Apify account includes $5.00 in free monthly credits (3,300+ free leads every month).

Tags: #Google Maps Leads Scraper#Google Maps Email Extractor#B2B Lead Generation#Local SEO Prospecting#SMMA Leads#GoHighLevel#Python
⚡ Unlimited Location, B2B Leads, Photo & Reputation Intelligence

Bypass Google Places API Caps — Extract Enriched B2B Leads, Photos & 10K Reviews

Extract B2B business leads with verified website emails & ad pixels ($0.50/1K), uncompressed original (=s0) photos, up to 10,000 reviews per place ($0.25/1K), and Local Guide contributor histories at a fraction of official Places API costs.

Continue Reading

Related Technical Guides & Teardowns

All Guides →
Done-For-You Datasets • Custom Scrapers • Enterprise SLAs

Need Custom Maps, Local Business & Reputation Intelligence Data or a Dedicated Pipeline?

Need custom enterprise data integration, dedicated data pipelines, or high-volume warehouse exports? Tell us what data you need and we will deliver clean Excel / CSV / Google Sheets datasets, set up automated S3/BigQuery feeds, or build a custom pipeline for your team.

Option 1 • Fast Turnaround
Done-For-You CSV / Excel

Send us your search keywords, categories, or URLs. We run the extraction and email you a clean, ready-to-use Excel/CSV file within 24 hours.

Option 2 • Automated Stream
Scheduled Data Feeds

Hands-free daily, weekly, or real-time monitoring pushed directly to Google Sheets, Amazon S3, BigQuery, Snowflake, or Webhook.

Option 3 • Bespoke Build
Custom Scraper / New Site

Need custom fields added or a brand-new website reverse-engineered? We build, host, and maintain dedicated anti-bot engines.

Direct response from an engineer within 12 hours.
Prefer direct email? Write to us anytime at contact@unitbytes.com