HasData
Back to all posts

How to Extract Emails from Google Maps: 3 Easy Ways

Finding quality B2B leads can be a tough task for businesses. And one of the most popular ways to get new clients is by using cold email campaigns. However, manually collecting email addresses for B2B campaigns can be time-consuming and requires effort.

This article covers three ways to extract emails from Google Maps.

The sections below cover each method, and the measurement that follows says how many addresses any of them can actually reach.

Why Google Maps for B2B outreach?

Google Maps is the widest single list of businesses that is open to anyone, which is what makes it a starting point for B2B outreach.

Google Maps Platform

That breadth is what makes it useful here. One use is collecting information about various businesses, their contacts, reviews, addresses and email addresses of companies for later mass mailing of information or marketing, as well as to collect phone numbers for so-called cold calling.

In addition, you can use the information for creating an updated company contact database, crucial for sales and marketing. If you already have one, Google Maps data can help you refresh it with current business information.

Overall, extracting emails, phone numbers and other contact details from Google Maps can provide you with information about businesses that can be valuable for various business purposes, including marketing, sales, and partnering.

What you may do with collected contacts depends on the law where you and the recipients are, so that check comes before any mailing.

With that settled, here are the methods for getting the data out.

These methods range from more manual approaches for those who prefer hands-on control to automated solutions that can expedite the process. Depending on your specific needs and preferences, there’s a suitable method for every business.

How Many Businesses Actually Have an Email

Every guide on this subject assumes the addresses are there. We measured how many are. The sample is 1,994 businesses across 20 categories in five US cities of different sizes, from New York down to Missoula, collected through a Maps search and then followed to whatever website each one listed.

Out of every 100 businesses a search returns:

  • 90 list a website
  • 88 of those answer when you request them
  • 51 have an email somewhere on the site
  • 30 of those are a person’s address, 21 are info@ or contact@

Funnel chart showing that of 100 businesses returned by a Google Maps search, 90 list a website, 88 answer, 51 have a findable email and 30 of those are a named address

Where the hundred businesses go

Nine tenths of those addresses sit on the homepage. The rest only appear on a contact page, so a second request per site is worth making, though it isn’t where the volume comes from.

Whether It’s Worth Running Depends on the Category

The spread is wide enough to change the answer for your own list. Gyms return 66 contacts per 100 businesses, dry cleaners 23:

CategoryWith a websiteWith an emailContacts per 100
gyms99%66%66
hair salons93%65%65
landscaping90%63%63
bakeries94%61%61
veterinarians99%60%60
insurance agencies97%58%58
restaurants99%54%54
pet grooming88%53%53
coffee shops88%52%52
law firms100%50%50
daycare77%50%50
dentists100%48%48
accountants92%48%48
plumbers86%46%46
electricians74%41%41
auto repair80%35%35
dry cleaners61%23%23

The same twenty categories, with the gap between having a site and publishing an address:

Bar chart comparing twenty business categories by the share that have a website and the share with a findable email, with gyms highest at 66 per 100 and dry cleaners lowest at 23

Contacts per 100 businesses, by category

Dry cleaners come last because only 61 of them have a site at all. Law firms and dentists are the interesting pair, because every one of them has a website and barely half publish an address on it. Having a site and publishing an email are separate decisions, and the second is the one that fails.

City size moved almost nothing. Website presence ran 87% to 95% across all five, and email discovery sat at 52% to 54% in four of them. Missoula, the smallest, came in at 45%.

The Result List Is Deeper Than the Usual Figure Suggests

You’ll see it said that a Maps search stops at about 120 results. Paged until they ran dry, five searches stopped at very different depths: 36 rows for florists in Missoula, 140 for restaurants in New York, 142 for bakeries in Boise, 200 for plumbers in Columbus and 256 for dentists in Chicago. In a small market the list ends where the businesses end, and 36 florists is about what Missoula has. In a large one it ends where the feed does, since New York holds far more than 140 restaurants. One query tops out in the low hundreds either way, and the pages repeat entries as they go. A search for coffee shops in Manhattan served 260 rows that deduplicated to 191 places.

The way around the ceiling is narrower queries rather than deeper paging. Split the area by neighborhood or the category by type, run a search per slice, and deduplicate by placeId. The 1,994 businesses behind this measurement came from exactly that, twenty categories crossed with five cities, one page each.

Searching Recovers a Third of What the Site Route Misses

972 businesses gave up nothing on their own site, either because they list none or because the site carried no address. Searching for each by name turned up an address for half of them, and that half needs reading carefully. A search result page often carries somebody else’s address, so grading each hit by whether its domain relates to the business:

  • 30% matched the website the listing already gave
  • 11% matched a word in the business name
  • 33% were Gmail or Yahoo, which no domain check can settle either way
  • 27% belonged to somebody else

So searching adds about 36 usable addresses per 100 it looks at rather than 50, and across the whole sample that moves the total from 51 per 100 to 69.

Bar chart of the sources that yielded an address for businesses whose own site had none, with an untargetable long tail at 295, Facebook at 106 and Instagram at 48

Where the recovered addresses came from

Facebook accounted for 106 of the 352 that checked out and Instagram for 48. Yelp gave 15 and LinkedIn exactly one. The largest bar is a tail of 178 hosts, 166 of which appear once each, so it’s not a source you can aim at.

Rendering the Page Moves the Number

Everything above came from fetching each site the cheap way, a datacenter exit with no JavaScript run. That leaves out any address a script writes into the page, so 220 of the businesses that gave nothing were fetched again under two further conditions.

How the page was fetchedFound an addressRequests that failed
datacenter exit, no rendering0 of 220measured in the first pass
datacenter exit, rendered37 of 22013
residential exit, rendered42 of 2207

Rendering is what does the work. A residential exit on top adds a few more and halves the failures, which matters more at volume than the handful of extra addresses does.

Between the two conditions, 45 of the 220 gave up an address that the cheap fetch had missed. Searching had already found 21 of those 45, so the two routes overlap heavily and each still reaches something the other does not. The 24 that only rendering found are 11% of the sample.

Carried across the whole set, that puts the routes in this order:

RouteAddresses per 100 businesses
Their own site, fetched cheaply51
Their own site, renderedabout 59
Cheap fetch plus a search69
Rendered, plus a searchabout 73

So the cheapest route reaches about seven tenths of what the most thorough one does. Whether the rest is worth rendering for depends on what a contact is worth to you, and rendering costs a request that takes several times longer.

Where Each Kind of Business Publishes

Social is the axis that separates the categories. Dry cleaners put a fifth of their addresses on Facebook or Instagram, hair salons 15%, pet grooming 14%, plumbers 13%. Law firms put 2% there, and accountants, vets and insurance agencies 4%. A consumer trade that runs on appointments uses social as its contact page. A professional service does not.

Listing sites return 2% overall, which doesn’t pay for the request. Law firms are the one exception at 6%, which is legal directories doing what they exist for.

One more split decides whether any of this can be filtered automatically:

CategoryOwn domainFreemail
law firms97%3%
insurance agencies95%5%
real estate agencies94%6%
gyms87%13%
accountants86%14%
restaurants78%22%
veterinarians69%31%
bakeries65%35%
pet grooming61%39%
plumbers56%44%
hair salons54%46%
dry cleaners53%47%
auto repair39%61%

The domain-match test is what separates a real hit from a stranger’s address on the same page, and it only works where businesses use their own domain. For law firms it is reliable. For auto repair, discarding every Gmail address throws away 61% of the list, and what remains can’t be told from somebody else’s Gmail by any automatic rule.

Our n8n lead workflow builds this same pipeline as an automation, Maps to sites to a search fallback, and reports 52 addresses from 75 businesses. That is 69.3%, against the 69 per 100 this measurement reaches on 1,994, which is closer agreement than two independent runs usually manage.

The Order Worth Working In

  1. The homepage. Two thirds of everything, one request per business.
  2. The contact page, but only when the homepage had nothing. It adds eight points, and more in categories that keep a formal site, with dentists and auto repair at 12%.
  3. Facebook and Instagram, and only for consumer trades.
  4. Nothing else. Listing sites return 2%, and the long tail can’t be targeted.

One limit still sits on these numbers. Nobody checked whether the addresses still work, so findable isn’t deliverable, and a liveness pass would push every figure here down. The other limit, the missing JavaScript, is measured above rather than left as a warning.

Method 1, Collecting Emails by Hand

Searching and copying by hand is the most accessible way and the least convenient. It’s slow, it needs attention, and every record passes through you. Here’s how to do it if you still want to collect the data manually.

How to Extract Emails Manually

First, open Google Maps and perform the query to get the data. Use keywords to describe the place and its location. Then, search the search results and click on the listing that matches the business or individual you want.

Google Maps Research

A more detailed view of the listing will open on the left side of the screen. Now look for the “Website” or “Website URL” field in the listing details. If the company’s website is listed, click on it and go to the website. You can usually find email addresses in the footer of the page, but if it is not listed there, you can go to the “Contact Us” or “About Us” pages to find it.

To extract emails from multiple companies or individuals, return to the search results and click the following listing to repeat the process. Continue scraping data until you have collected all the email addresses you need.

Method 2, a Google Maps Scraper

Google Maps Scrapers do the same job as the clicking above, at a size where the clicking stops being possible.

How to Extract Emails with the Google Maps Scraper

Now, let’s see how to automatically get all this information, including email addresses. Sign up on HasData and open the No-Code Scrapers section. Signing up comes with 1,000 free credits to try the scrapers on.

No-Code Scrapers catalog with the Google Maps card outlined

Find the Google Maps card and open it. The form comes down to four settings:

Google Maps Scraper config with ready-made medical categories, United States locations and the email option turned on

  • Data limit caps how many rows the run returns, and 0 removes the cap. The banner above the form translates that into plan terms, and the Basic plan at $119 a month holds a million credits, about 333 thousand rows at the base rate.
  • Search queries take your own keywords, one per line, or the ready-made categories. With categories on, only places from those categories arrive.
  • Locations narrows the run to a country and its regions.
  • Extract emails changes what a row costs. The run button quotes 3 credits per row, and with the email option on, a row is 10.

Click Run Scraper and the job lands in the history on the left. A test run over the medical categories with a limit of ten finished in half a minute and spent 58 credits, and the chips above the results carry the row count, credits, duration, and job id. The download control returns CSV, JSON, or XLSX.

Finished Google Maps Scraper run with ten rows in the results table and the download control outlined

Open the finished document and check the columns arrived, business name and contact and email address among them. So, you can use it for lead generation, email marketing, or business listings now.

Resulting CSV opened in a spreadsheet, one business per row with name, address, phone and email columns

The scraper collects emails only when that option is on.

Method 3, Building an Extractor on the API

Using the API is a more flexible tool for extracting email addresses. For example, you can specify the resource and the information you want to receive.

How to Extract Emails Using API

You can use the Google Maps API and web scraping API to create an email scraper. But first, you need to decide whether to write your code or use an integration tool like Zapier. Either way, the principle of how the scraper works is the same:

  1. Using the Google Maps API, collect links to the websites of businesses related to your topic of interest.
  2. Using the Web Scraping API, trawl through all the collected links and collect data about company emails from them.
  3. Save all the scraped data into a spreadsheet.

Here is that pipeline as a script. It takes the first page of one Maps query, checks each business site, and writes what it finds:

import requests
import re
import csv

api_key = "YOUR-API-KEY"
headers = {"x-api-key": api_key}

# step 1: businesses from one Maps query, with their websites
maps = requests.get(
    "https://api.hasdata.com/scrape/google-maps/search",
    params={"q": "coffee shops", "ll": "@40.7128,-74.0060,13z"},
    headers=headers,
)
maps.raise_for_status()
businesses = [b for b in maps.json()["localResults"] if b.get("website")]

# step 2: fetch each site as text and pull addresses out of it
EMAIL = re.compile(r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")
rows = []
for b in businesses[:10]:
    page = requests.post(
        "https://api.hasdata.com/scrape/web",
        json={"url": b["website"], "outputFormat": ["text"]},
        headers=headers,
    )
    if page.status_code != 200:
        continue
    emails = sorted(set(EMAIL.findall(page.text)))
    if emails:
        rows.append({"title": b["title"], "website": b["website"], "emails": emails})

# step 3: save
with open("emails.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.DictWriter(f, fieldnames=["title", "website", "emails"])
    w.writeheader()
    for r in rows:
        w.writerow({**r, "emails": ", ".join(r["emails"])})
print(f"{len(rows)} businesses with an address, of {len(businesses[:10])} sites checked")

With outputFormat set, the Web Scraping API returns the page body directly, so the regex runs over page.text. A run over ten New York coffee shops found one address this way, reading only landing pages. The measurement earlier in this article reached 51 addresses per 100 businesses by also checking contact and about pages, so the extra requests per site are where the yield is. Some of what the regex catches sits in site scripts rather than on the page, addresses on hosts like sentry or wixpress, and a longer run filters those hosts out.

Extracting emails from any website covers the site-crawling half in more depth.

Other ways to get business contact details

In addition to the methods of email collection discussed here, there are several others. However, they are less popular, less flexible, or tend to be more expensive.

Browser Extensions

Browser extensions are a widely used data collection tool. So, you can easily find any Chrome extension for site scraping. However, despite their popularity, it’s worth remembering that not all extensions are suitable for effective email address collection.

In most cases, using extensions to scrape emails will give you the information you need and a lot of unnecessary data that will need to be manually cleaned and processed later. This can add complication and slow down the process.

Browser extensions suit anyone without programming skills, and they cost fewer clicks than collecting by hand. They also come with limits worth knowing before you commit a list to one.

However, this method has limited functionality and several restrictions on the number of requests. The most convenient extensions are paid for and are expensive. One of the most significant drawbacks is that the browser must run while the data is collected. This can be inconvenient if you have a lot of requests.

Ready Email Lists

Buying a ready-made database of email addresses may seem like a quick and easy solution, but there are some essential aspects to consider:

  1. Data quality and relevance. Off-the-shelf databases only sometimes guarantee the quality and relevance of the information. This can lead to you receiving outdated or invalid email addresses, reducing the effectiveness of your communications.
  2. Data re-use. Suppose the base seller is not bona fide. In that case, they may sell the same data to multiple buyers without checking and updating it beforehand, increasing competition and reducing the value of the data.

As a result, although the data may appear easy to obtain, the databases purchased may be less valuable and practical than planned. This underlines the importance of being careful and reliable when selecting data sources for your business or marketing efforts. Make an effort to collect your data and keep your contacts up to date to improve the quality and impact of your communications.

What Are The Best Ways To Extract Emails From Google Maps?

The method for scraping Google Maps data depends on your project’s objectives, requirements, and scope. To help you make this choice, we have provided a method comparison chart that summarizes all the options discussed above and outlines their main characteristics. This will help you decide which method best suits your needs and expectations.

MethodProsCons
Manual Email Extraction- Full control - Filtering capability - Free (if done yourself)- Time-consuming - Monotonous and error-prone - Risk of missing leads
Google Maps Scraper- Convenience and automation - Minimal programming skills- Paid (reasonable) - Requires basic technical understanding
API-Based Scraping- Full customization - Scalability- Requires programming skills - Possible additional costs
Browser Extensions- Easy for non-programmers - User-friendly- Collects unnecessary data - Limited capabilities and requests
Ready Email Lists- Instant access - Convenient- Low data quality and relevance - Risk of data reuse

As mentioned above, сhoosing a method for collecting data from Google Maps should be based on your specific goals and resources. Choosing a manual approach or using a scraper without code may be an attractive choice if your goal is to quickly and easily collect a few email addresses, phone numbers, or social media links.

For a large list, or when you want the output shaped to your own schema, an API is the route that holds up. It costs credits and gives you back the fields directly, which is a different trade from the clicking that can prove invaluable to your B2B engagement and marketing strategy.

Ultimately, the method you choose should match your business goals and the data you want to collect. Keep in mind that each of these methods has its merits, and by making an informed choice, you can harness the full power of Google Maps to effectively and efficiently expand your B2B efforts.

Valentina Skakun
Valentina Skakun
Valentina is a software engineer who builds data extraction tools before writing about them. With a strong background in Python, she also leverages her experience in JavaScript, PHP, R, and Ruby to reverse-engineer complex web architectures.If data renders in a browser, she will find a way to script its extraction.
Articles

Might Be Interesting