๐Ÿ“ Google Maps Leads Scraper avatar

๐Ÿ“ Google Maps Leads Scraper

Pricing

from $7.00 / 1,000 results

Go to Apify Store
๐Ÿ“ Google Maps Leads Scraper

๐Ÿ“ Google Maps Leads Scraper

Scrape Google Maps into ready-to-use business leads: name, address, phone, website, rating, reviews, hours, categories and socials. Search by term and location or paste Maps URLs. Rich filters, no API key, results streamed live.

Pricing

from $7.00 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

๐Ÿ“ Google Maps Leads Scraper โ€” B2B Lead Generation, Business Data & Contact Extraction

Google Maps Leads Scraper is a production-grade Apify Actor for Google Maps scraping, local business lead generation and B2B contact extraction. Give it a search term and a location โ€” plumber in Austin, Texas โ€” and it returns a clean, enriched lead list: business name, categories, full address, coordinates, rating, opening status, Google phone number, website, email addresses, extra phone numbers and every social media profile it can find โ€” written to your Apify Dataset in real time.

๐Ÿ’ก Need a custom version, private integration, or a tailored lead-gen pipeline? Email hello.dataminds@gmail.com.

Built for sales teams, agencies, cold-email and cold-call outreach, local SEO, market research and CRM enrichment โ€” anyone who needs verified local business data without copying it out of Google Maps by hand.


๐Ÿ“‘ Table of contents


๐Ÿ“ What is Google Maps Leads Scraper?

Google Maps is the largest public directory of local businesses on earth โ€” and the hardest to copy out by hand. Listings are paginated, the contact details you actually need (email, socials) live on the business website rather than the listing, and doing it manually costs hours per hundred prospects.

This Actor turns any Google Maps search into a ready-to-use lead list:

  • Searches like a human would โ€” your term plus a location, one search at a time, page after page.
  • Collects the full business profile โ€” name, categories, description, rating, address parts, coordinates, timezone, today's hours, photo, place ID, CID and the direct Maps link.
  • Opens the business website and pulls out emails, phone numbers and LinkedIn / Instagram / Facebook / X / YouTube / TikTok / Pinterest / Discord profiles โ€” including contact and about pages.
  • Verifies emails on request โ€” disposable, free-mail and role-inbox detection plus a mail-server deliverability probe. No third-party API key.
  • Streams every finished lead to your Dataset โ€” export to JSON, CSV, Excel, XML, or pull them through the Apify API.

If you have ever needed "every dentist in Denver with an email address, as clean rows" โ€” this is the Actor.


โœจ Main features

  • ๐Ÿ—บ๏ธ Bulk search input โ€” one term or hundreds, each searched separately and deduplicated by place.
  • ๐Ÿ“ Precise targeting โ€” free-text location, or city / state / county / postal code, plus a country and language selector.
  • ๐Ÿ”— Google Maps URLs supported โ€” paste any place link to collect specific businesses: full /maps/place/โ€ฆ links, id-only links (?cid=โ€ฆ, ?place_id=โ€ฆ) and short maps.app.goo.gl links all work, in bulk.
  • ๐Ÿ“ง Email extraction โ€” homepage plus contact/about pages, with junk-domain and image-file filtering.
  • โ˜Ž๏ธ Two phone sources โ€” the number Google publishes and every number found on the website (tel: links kept separate from loose text matches).
  • ๐Ÿ”— Social profile discovery โ€” 8 networks, cleaned and deduplicated.
  • โœ… Built-in email verification โ€” free / role / disposable flags, MX lookup and an SMTP deliverability probe, no external key needed.
  • ๐ŸŽฏ Smart filters โ€” category keywords, name-match strictness, minimum rating, has/hasn't a website, skip closed places, skip big chains.
  • โญ Rich business profile โ€” description, category list, accessibility and amenity attributes, today's hours and open/closed status.
  • ๐Ÿงญ Coordinates & timezone for mapping and routing.
  • ๐Ÿšฆ Blocking handled for you โ€” the run adapts on its own when a site pushes back, with no configuration required.
  • ๐Ÿ“ฆ Live dataset writes and seven prebuilt table views โ€” Overview, Contacts, Socials, Location, Business Profile, Verification, Source & IDs.
  • ๐Ÿ“Š Run summary stored in the key-value store, with per-search totals.

๐Ÿ‘ฅ Who is this Actor for?

  • ๐Ÿงฒ Sales & SDR teams โ€” build territory lists with real emails and phone numbers.
  • ๐Ÿข Agencies โ€” find local businesses that have no website (perfect web-design prospects) or a weak one.
  • ๐Ÿ“ˆ Local SEO consultants โ€” audit competitors by category, rating and coverage.
  • ๐Ÿ“ฌ Cold email & outreach platforms โ€” feed clean, verified addresses straight into a sequence.
  • ๐Ÿ”ฌ Market researchers โ€” measure business density, ratings and category mix per area.
  • ๐Ÿ—ƒ๏ธ CRM & data teams โ€” enrich existing records with phone, website, socials and coordinates.
  • ๐Ÿง‘โ€๐Ÿ’ป Developers โ€” a dependable Google Maps data API with no scraping stack to maintain.

๐Ÿ”Ž Search inputs it accepts

What you provideWhat happens
restaurant + New York, USAEvery matching business in that area
dentist, orthodontist, oral surgeonThree separate searches, merged and deduplicated
plumber + city Miami, state FloridaSame as above, using precise area fields
marketing agency with minimum rating 4.5Only the highly-rated ones
bakery with only places WITHOUT a websitePure web-design prospect list
https://www.google.com/maps/place/โ€ฆThat specific business
https://www.google.com/maps?cid=โ€ฆ or a maps.app.goo.gl short linkSame โ€” id-only and shared links are resolved for you

๐Ÿ’ก Tip: start with maxCrawledPlacesPerSearch: 10 to sample the data, then raise it once the shape looks right.


๐ŸŽฏ Filtering configuration

All filters are optional โ€” leave them empty to take everything Google returns.

  • Category โ€” categoryFilterWords keeps a business only when a word matches its Google categories or description.
  • Name matching โ€” searchMatching: everything, name-contains-term, or exact name only.
  • Rating โ€” placeMinimumStars from 2.0 to 4.5; unrated places are dropped when a minimum is set.
  • Website โ€” website: all places, only with a website, or only without one.
  • Open status โ€” skipClosedPlaces removes permanently and temporarily closed businesses.
  • Chains โ€” skipBigChains skips global chains whose sites never carry a usable inbox.

Filters combine with AND; values inside one filter are OR.


๐Ÿ“ค Output format (Dataset)

Every lead is one row with 44 fields, and the Output tab ships with seven prebuilt views so each part of the record has its own tidy section:

ViewWhat it shows
โœจ Lead OverviewBusiness, category, address, phone, website, emails, rating, Maps link
๐Ÿ“ง ContactsEmails, website phones, other numbers, Google phone, dialable format
๐Ÿ”— Social ProfilesLinkedIn, Instagram, Facebook, X, YouTube, TikTok, Pinterest, Discord
๐Ÿ“ Location & MapStreet, city, state, postal code, country, neighborhood, coordinates, timezone
๐Ÿช Business ProfileDescription, categories, rating, today's hours, open status, attributes, photo
โœ… Email VerificationEvery address with its quality verdict
๐Ÿงญ Source & IDsRank, search term, place ID, CID, knowledge ID, Maps link

Field groups in every row

GroupFields
Identitytitle, description, categoryName, categories, placeId, cid, googleKgId, url, imageUrl
Locationaddress, neighborhood, street, city, postalCode, state, countryCode, location (lat/lng), timeZone
Status & ratingtotalScore, todayHours, openStatusText, permanentlyClosed, temporarilyClosed, additionalInfo, price, reviewsCount, claimThisBusiness
Contactwebsite, phone, phoneUnformatted, emails, phones, phonesUncertain
SociallinkedIns, twitters, instagrams, facebooks, youtubes, tiktoks, pinterests, discords
Verification & sourceemailsVerification, rank, searchString

Every row carries all 44 keys in the same order, so CSV and Excel exports line up perfectly. price, reviewsCount and claimThisBusiness are kept for schema stability but are not published on the results feed, so they arrive as null.

A run summary โ€” totals, per-search counts, email and phone coverage โ€” is stored in the key-value store as run-summary.


๐Ÿงช Example output (JSON)

{
"rank": 1,
"searchString": "restaurant",
"title": "Marea",
"description": "High-end Italian seafood & housemade pastas in a chic Central Park South setting.",
"price": null,
"categoryName": "Restaurant",
"categories": ["Restaurant", "Fine dining restaurant", "Italian restaurant", "Seafood restaurant"],
"address": "Marea, 240 Central Park S, New York, NY 10019",
"neighborhood": "Manhattan",
"street": "240 Central Park S",
"city": "New York",
"postalCode": "10019",
"state": "New York",
"countryCode": "US",
"website": "https://www.marearestaurant.com/new-york",
"phone": "(212) 582-5100",
"phoneUnformatted": "+12125825100",
"claimThisBusiness": null,
"location": { "lat": 40.7674251, "lng": -73.9811137 },
"totalScore": 4.5,
"permanentlyClosed": false,
"temporarilyClosed": false,
"placeId": "ChIJvWSDS_ZYwokRiG9D395loxo",
"cid": "0x89c258f64b8364bd:0x1aa365dedf436f88",
"googleKgId": "/m/0g9tbbd",
"url": "https://www.google.com/maps?cid=1919489874092846984",
"imageUrl": "https://lh5.googleusercontent.com/โ€ฆ/photo.jpg",
"timeZone": "America/New_York",
"todayHours": "12โ€“10 PM",
"openStatusText": "Open ยท Closes 10 PM",
"additionalInfo": {
"Accessibility": [{ "Wheelchair accessible entrance": true }],
"Attributes": [{ "LGBTQ+ friendly": true }]
},
"reviewsCount": null,
"emails": ["info@marea-nyc.com", "kbolyai@altamareagroup.com"],
"phones": ["+12125825100", "+13106208463"],
"phonesUncertain": ["(212) 582-5100", "+1 (310) 620-8463"],
"linkedIns": ["https://www.linkedin.com/showcase/marea-restaurant/"],
"twitters": [],
"instagrams": ["https://www.instagram.com/mareanyc/"],
"facebooks": ["https://www.facebook.com/MareaNYC/"],
"youtubes": [],
"tiktoks": [],
"pinterests": [],
"discords": [],
"emailsVerification": []
}

๐Ÿš€ Quick start

Run in Apify Console

  1. Log in at console.apify.com โ†’ Actors.
  2. Open Google Maps Leads Scraper.
  3. Type a search term (for example coffee shop) and a location (Austin, Texas).
  4. Set Places per search term to 10 for a first test.
  5. (Optional) open Quality filters or Contact enrichment.
  6. Click Start and watch each lead appear live in the log.
  7. Open the Output tab, switch between the seven views, and export to JSON / CSV / Excel.

Run via API

curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchStringsArray": ["coffee shop"],
"locationQuery": "Austin, Texas",
"maxCrawledPlacesPerSearch": 25,
"scrapeWebsiteContacts": true
}'

Fetch the results once the run finishes:

$curl "https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=csv"

Python client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("YOUR_ACTOR_ID").call(run_input={
"searchStringsArray": ["dentist", "orthodontist"],
"locationQuery": "Denver, Colorado",
"maxCrawledPlacesPerSearch": 50,
"placeMinimumStars": "four",
"website": "withWebsite",
"verifyEmails": True,
})
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
print(lead["title"], lead.get("emails"), lead.get("phone"))

๐Ÿ› ๏ธ Input parameters reference

๐Ÿš€ Start here โ€” what & where

ParameterTypeDefaultDescription
searchStringsArrayarrayโ€”Required. Search terms, one per line
locationQuerystringโ€”Free-text area, e.g. Austin, Texas
maxCrawledPlacesPerSearchinteger20Businesses collected per search term
startUrlsarray[]Google Maps place URLs โ€” full, ?cid=โ€ฆ, ?place_id=โ€ฆ or short links (bulk supported)

๐Ÿ—ฃ๏ธ Language & region

ParameterTypeDefaultDescription
languagestringenResults language (16 options)
countryCodestringusCountry view used for the search (18 options)

๐Ÿ“ก Pinpoint the area

ParameterTypeDescription
city / state / county / postalCodestringPrecise area, combined into one search area

๐ŸŽฏ Quality filters

ParameterTypeDefaultDescription
categoryFilterWordsarray[]Keep only businesses matching these category words
searchMatchingstringallall, only_includes, only_exact
placeMinimumStarsstringโ€”two โ€ฆ fourAndHalf
websitestringallPlacesallPlaces, withWebsite, withoutWebsite
skipClosedPlacesbooleanfalseDrop closed businesses

๐Ÿ“ง Contact enrichment

ParameterTypeDefaultDescription
scrapeWebsiteContactsbooleantrueVisit the website for emails, phones and socials
contactMaxSubpagesinteger3Extra contact/about pages per website
skipBigChainsbooleantrueSkip global chain websites
verifyEmailsbooleanfalseQuality-check every email found

๐ŸŒ Network ยท โšก Speed

ParameterTypeDefaultDescription
proxyConfigurationobjectdirectOptional proxy configuration for the run.
browserFallbackbooleantrueGive stubborn requests one extra, more thorough attempt.
maxConcurrencyinteger5Business websites opened in parallel (1โ€“20)
requestDelaySecondsnumber0.8Pause between requests
maxRetriesinteger3Attempts per request before it is skipped.

๐Ÿ”Œ Integrations & automation

  • โฐ Schedules โ€” refresh a territory list daily or weekly.
  • ๐Ÿ”” Webhooks โ€” trigger your own service when a run finishes.
  • ๐Ÿ”„ Make, Zapier & n8n โ€” push new leads into HubSpot, Pipedrive, Airtable, Sheets or Slack.
  • ๐Ÿ—„๏ธ Direct API access โ€” dataset items as JSON, JSONL, CSV, XLSX, XML or RSS.
  • ๐Ÿค– AI pipelines โ€” feed business descriptions and categories into scoring or segmentation models.

โ“ Frequently asked questions (FAQ)

What is the best way to scrape Google Maps leads?

Give this Actor a search term and a location and press Start. It handles pagination, business details, website contact discovery and email verification for you, and writes clean rows to a dataset you can export or query through the API.

Can I get email addresses from Google Maps?

Google Maps itself does not publish emails โ€” they live on the business website. This Actor follows the website link on each listing, opens the contact and about pages, and extracts the addresses it finds there.

How many businesses can I collect in one run?

Set maxCrawledPlacesPerSearch per term and add as many terms as you like. Results are deduplicated by place ID across the whole run.

Can I search several cities at once?

Yes โ€” add one term per line and run separate area values, or include the city inside each term (plumber Miami, plumber Tampa).

How do I find businesses without a website?

Set website to withoutWebsite. Those listings still give you the name, address, Google phone number and rating โ€” ideal prospects for web-design and marketing services.

Does it verify the email addresses?

Turn on verifyEmails. Each address is checked for disposable and free-mail domains, role inboxes, a valid mail server, and deliverability. Networks that block outbound mail ports return unknown rather than a false verdict.

Do I need a proxy?

No. Leave the proxy input empty and the run handles blocking on its own. Set one only when you want a specific country or route.

Can I use this for cold email?

The data is public business contact information, but you are responsible for compliance with GDPR, CAN-SPAM, CASL and local marketing law. Keep an opt-out, target businesses rather than individuals, and honour suppression lists.

Can I feed the results straight into my CRM?

Yes โ€” use webhooks or the API, or connect Make / Zapier / n8n to push new rows into HubSpot, Pipedrive, Salesforce or a spreadsheet.

What if I need a field that isn't here?

Email hello.dataminds@gmail.com โ€” custom fields and private builds are available.


๐Ÿ› ๏ธ Troubleshooting

SymptomFix
No leads savedWiden the search term or location, and clear placeMinimumStars / categoryFilterWords. Very narrow terms return nothing.
Few emails foundMany small businesses publish no email. Raise contactMaxSubpages, and set website: withWebsite so every lead has a site to crawl.
Fewer results than requestedThe area may simply hold fewer matching businesses. Broaden the location or add related search terms.
phone emptyNot every listing publishes a number. Check phones โ€” numbers found on the website โ€” as a fallback.
Emails look genericinfo@ and contact@ are what most sites publish. Use the Email & Phone Number Scraper's skip generic inboxes option if you need named mailboxes.
Run feels slowLower contactMaxSubpages, raise maxConcurrency, or turn off verifyEmails.
Verification says unknownOutbound mail ports are commonly blocked in cloud environments; the address is still valid-looking, it simply could not be probed.

๐Ÿ’ฌ Help, support & custom builds

  • ๐Ÿ› Found a bug or need a new field? Open an issue on the Actor's Issues tab.
  • ๐Ÿ“ง Custom scrapers, private integrations, bulk pipelines: hello.dataminds@gmail.com
  • โญ Enjoying it? Leave a review โ€” it genuinely helps.

This Actor collects publicly available business listings โ€” the same information any visitor can see without logging in. Scraping public data is generally lawful in the EU and the US, but you remain responsible for how you use it:

  • Do not collect data behind authentication or paywalls.
  • Respect the target site's terms of service and reasonable request rates.
  • Handle any personal data (an owner's name or direct email, for example) in line with GDPR, CCPA and local law.
  • Follow CAN-SPAM, CASL and equivalent rules before sending marketing email.

See Apify's guide on the legality of web scraping for background. This is not legal advice.


๐Ÿ” SEO keywords targeted

google maps scraper ยท google maps leads scraper ยท google maps business scraper ยท local business lead generation ยท b2b lead scraper ยท google maps email extractor ยท business contact scraper ยท google places scraper ยท local SEO data ยท lead list builder ยท cold email leads ยท google maps data export ยท business phone number scraper ยท social media profile finder ยท maps listing scraper ยท small business database ยท sales prospecting tool ยท CRM enrichment data ยท google business profile scraper ยท local lead generation API ยท restaurant leads ยท contractor leads ยท dentist leads ยท agency prospecting data ยท google maps API alternative