Google Maps Scraper: B2B Leads & Emails avatar

Google Maps Scraper: B2B Leads & Emails

Pricing

from $5.00 / 1,000 lead extraction events

Go to Apify Store
Google Maps Scraper: B2B Leads & Emails

Google Maps Scraper: B2B Leads & Emails

The Ultimate G-Maps Lead Machine is designed for marketing agencies, sales teams, and wholesalers who need fresh, accurate business data without paying for expensive lists. Stop searching manually. Start mining leads automatically today.

Pricing

from $5.00 / 1,000 lead extraction events

Rating

0.0

(0)

Developer

anuj upadhyay

anuj upadhyay

Maintained by Community

Actor stats

0

Bookmarked

42

Total users

1

Monthly active users

6 days ago

Last modified

Features

Limited permissions

Share

🗺️ Google Maps Scraper: B2B Leads & Emails

What is Google Maps Scraper: B2B Leads & Emails?

Google Maps Scraper: B2B Leads & Emails is an Apify Actor that turns a Google Maps search — like "plumbers in New York" — into a clean dataset of business leads: name, address, phone, website, email, rating, review count, category, opening hours, and more. No API key, no browser extension, no manual copy-pasting.

💡 No coding required. Type a search term, click Run, and download your leads.

Under the hood, this Actor talks directly to Google Maps' own data feed over plain HTTP — no browser, no page rendering, no scrolling. That's what makes it fast and cheap to run compared to browser-automation scrapers (see How it works below).


What data can this Google Maps scraper extract?

For every business found, you get:

DataExample
🏢 Business nameJoe's Plumbing & Heating
📍 Full address (+ city, postal code, country)742 Evergreen Terrace, Springfield, IL 62704
📞 Phone number+1 (217) 555-0142
🌐 Websitehttps://joesplumbing.com
📧 Emailfrom Google Maps or scanned from the business website
⭐ Rating & review count4.8 stars, 312 reviews
🏷️ Category (and the full category list)Plumber
🕑 Opening hoursMonday: 8 AM–6 PM; ...
📱 Social linksFacebook, Instagram, LinkedIn, X, YouTube, TikTok
🖼️ Photos, ♿ accessibility info, 🌍 timezone—
🔗 Direct Google Maps link—

Export as: CSV, Excel, JSON, or pull results into your CRM via the Apify API.


🚀 Quick start (3 steps)

Type what you'd search on Google Maps — the location should be part of the phrase:

Dentists in Chicago
Coffee shops in San Francisco
Real estate agents in Miami

Step 2: Choose how many leads

  • 10 leads → quick test (~$0.05)
  • 100 leads → small campaign (~$0.50)
  • 500 leads → city-wide prospecting (~$2.51)

Step 3: Click Run & download

Your leads appear in the Results tab as soon as they're found. Download as CSV, Excel, or JSON — ready for outreach.


How much does it cost to scrape Google Maps leads?

$0.005 per lead extracted (half a cent), via Apify's Pay-Per-Event model — plus Apify's standard $0.00001-per-dataset-item platform fee that applies to every Actor's output, so the true cost is $0.00501 per lead. There's also a tiny, automatic $0.00005 fee per run that covers the Actor's first 5 seconds of compute — not per lead, and the same on every Apify Actor that uses it.

LeadsCostGood for
10~$0.05Testing it out
100~$0.50Local outreach
500~$2.51City campaign
1,000~$5.01Multi-city lead gen

You're in control:

  • ✅ Set a spending limit before you run
  • ✅ See live cost updates in the Console as it works
  • ✅ Only pay for leads actually delivered — nothing is charged for a result you never see
  • ✅ Graceful stop when your limit is reached — no surprise bills

Who pays for what: you (as the Actor's user) pay Apify directly for your own runs — proxy, compute, and the per-lead charges above. There's no separate subscription and no API key to manage; everything is billed through your Apify account.


🎬 Example: input → output

Input:

{
"searchTerms": ["Plumbers in New York"],
"maxItems": 100
}

Output (one of 100 results):

{
"businessName": "Joe's Plumbing & Heating",
"address": "Joe's Plumbing & Heating, 742 Evergreen Terrace, Springfield, IL 62704, United States",
"city": "Springfield",
"postalCode": "62704",
"countryCode": "US",
"website": "https://joesplumbing.com",
"phone": "+1 217-555-0142",
"email": "contact@joesplumbing.com",
"rating": 4.8,
"reviewCount": 312,
"category": "Plumber",
"categories": ["Plumber", "Heating contractor"],
"openingHours": "Monday: 8 AM–6 PM; Tuesday: 8 AM–6 PM; ...",
"socialLinks": { "facebook": "https://www.facebook.com/joesplumbing" },
"timezone": "America/Chicago",
"latitude": 39.7817,
"longitude": -89.6501,
"placeId": "0x89c25a31b7f4e5a9:0x1234567890abcdef",
"googleMapsUrl": "https://www.google.com/maps?cid=1311768467294899695",
"searchTerm": "Plumbers in New York",
"scrapedAt": "2026-10-31T10:30:00.000Z"
}

More input examples

Search multiple cities at once:

{
"searchTerms": ["Coffee shops in San Francisco", "Pizza restaurants in Boston", "Hair salons in Miami"],
"maxItems": 100
}

Wide-area search beyond one city (a single search already returns up to ~200 results per term — use locationQuery + gridSize only to go further, e.g. "every dentist in Texas"):

{
"searchTerms": ["dentists"],
"locationQuery": "Texas, USA",
"gridSize": 3,
"maxItems": 2000
}

Skip the slow part (email/social links require visiting each business's own website — turn them off for the fastest possible run):

{
"searchTerms": ["Hotels in Dubai"],
"maxItems": 500,
"includeEmail": false,
"includeSocialLinks": false
}

💡 Tip: includeWebsite/includePhone come bundled in the same fast request as everything else — turning them off only removes them from your output, it won't speed up the run. includeEmail/includeSocialLinks are what actually cost time, since those visit the business's own website.


🎯 Who is this for?

You are...You can use this to...
Sales repBuild targeted call lists for any industry/location
Marketing agencyResearch competitors' ratings and reviews
Startup founderFind suppliers, partners, or customers
Real estate agentLocate contractors, inspectors, service providers
Franchise ownerScout locations by analyzing nearby businesses
RecruiterFind companies hiring in specific areas

⚙️ All settings explained

SettingWhat it doesDefault
searchTermsYour Google Maps queries (location included, e.g. "Dentists in LA")["Coffee shops in New York"]
startUrlsDirect Google Maps place URLs instead of search terms (name must be in the URL path)[]
placeIdsNot supported in this version — see Known limitations[]
maxItemsMax results per search term (1–500)10
proxyConfigurationApify Proxy settingsApify Proxy (auto)
includeWebsiteInclude website URL in outputoff
includePhoneInclude phone number in outputoff
includeEmailExtract email from Google Maps or the business websiteon
maxEmailPagesFromWebsiteHow many pages of the business site to scan for an email (1–20)10
onlyBusinessesWithEmailDrop results with no email foundoff
includeOpeningHoursInclude weekly opening hourson
includeSocialLinksScan the business website for social profile linkson
skipClosedPlacesDrop businesses marked closed (fails open if status is unknown)off
categoryFilterWordsOnly keep businesses whose category matches one of these words[]
locationQueryA city/region to center the search on, for wide-area coverage—
gridSizeSplits locationQuery into an N×N grid for exhaustive coverage (1–7)1

🔧 Troubleshooting & FAQ

QuestionAnswer
Is it legal to scrape Google Maps business listings?This Actor extracts publicly visible business information (name, address, phone, hours) the same way a person browsing Google Maps would see it. You're responsible for how you use the data and for complying with Google's Terms of Service and any applicable laws (e.g. GDPR/CAN-SPAM for outreach) in your jurisdiction.
Getting fewer results than expected?Try a broader search term, or add locationQuery + gridSize for wide-area coverage — some areas genuinely have fewer listings than your maxItems.
Run stopped early?You hit your spending limit. Increase it and re-run.
Missing phone/website/email?Some businesses don't list a phone/website on Google Maps at all, and email requires one to be published on the business's own site — not every business publishes one.
Missing opening hours or photos?Coverage varies by category — e.g. hotel listings tend to carry much more category/review data per result, and Google's own response for those sometimes omits the day-by-day hours and most photos that a simpler listing (e.g. a dentist) includes. If it's not in Google's response, it's not in the output — there's nothing extra to extract.
How is this different from the Google Places API?No API key, no Google Cloud billing account, and a per-lead price instead of per-API-call quota tiers.

💡 Pro tips

  1. Start small — test with 10 leads first to check data quality for your niche
  2. Be specific — "Italian restaurants in Brooklyn" beats "restaurants in NY"
  3. Combine searches — run multiple cities/categories in one go
  4. Set spending limits — control your budget before hitting Run


📊 How we compare

FeatureThis toolOthers
Price per 1,000 leads~$5$200–$500+
Pay per result✅❌ (subscriptions)
Spending limits✅❌
Live cost tracking✅❌
No API key needed✅❌
Email extraction included✅Often a separate paid add-on
No browser overhead✅ HTTP-only engineOften browser-based

📝 Changelog

v4.0.0 (October 2026)

  • 🚀 Rebuilt on an HTTP-only engine — no more browser, no scrolling, no detail-page visits
  • 🆕 New output fields: categories, city, postalCode, countryCode, timezone, photos, accessibility, reserveTableUrl, kgmid
  • ⚠️ Place IDs are no longer supported — use Start URLs or Search Terms instead
  • ⚠️ Business status is now always OPERATIONAL; price level is usually unavailable
  • ✅ Added automated unit tests for the response parser (npm test)

v3.0.0 (March 2026)

  • 💰 Pay-per-event pricing — $0.005/lead
  • 📊 Live cost tracking in Console
  • 🛑 Graceful stop at spending limit

v2.0.0 (February 2026)

  • ⚡ 2-3x faster with adaptive scrolling
  • 🎯 Smart detail-page fallback

v1.0.0 (January 2026)

  • ✨ Initial release

Looking for data beyond local business leads? Search Apify Store for scrapers covering social media, e-commerce, and search engine results — many integrate with this Actor's output through the same Apify API and dataset format.

🤝 Support

Questions, bug reports, or need a custom version of this Actor for your specific use case? Open an issue on the GitHub repository.