# Google Maps Email Extractor (`scraper-engine/google-maps-email-extractor`) Actor

Google Maps Email Extractor pulls publicly available business email addresses from Google Maps listings. Build targeted contact lists by location, category, or rating. Ideal for sales teams and local marketers.

- **URL**: https://apify.com/scraper-engine/google-maps-email-extractor.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 252 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### **Google Maps** Email Extractor 📍

> ### ✅ How this actor finds emails (v0.3 — rebuilt)
>
> Individual Google Maps place pages (`google.com/maps/place/...`) are
> JavaScript-rendered and are **not** exposed to public web-search indexes, and
> a map listing's contact route is a lead form and a website link, not a
> published email address. Any actor that tries to read emails straight off a
> map listing therefore returns zero rows.
>
> This actor works the way a human would instead — **two stages**:
>
> 1. **Discover the businesses.** For your keyword (and location, if given) it
>    pulls real, addressed businesses — name, address, phone and **website** —
>    from the free global map/POI database (OpenStreetMap / Overpass), plus
>    Google Places if you supply your own optional API key, plus web search.
> 2. **Read the real page.** It then opens each business's own website — home
>    page, then `/contact`, `/about`, `/impressum` — and extracts the email
>    addresses actually published there, including `[at]`-obfuscated ones.
>
> No API key is required. Nothing is ever fabricated: if a source yields
> nothing, the log says so and no row is written.

Google Maps Email Extractor allows users to **extract** publicly available email addresses for real local businesses, together with each business's name, description, the page the email was found on, and which source it came from.

Every row it returns contains seven always-populated fields — `network`, `keyword`, `title`, `description`, `url`, `email` and `source`. It is designed to provide structured **data** for lead generation and marketing purposes.

By using this Google Maps **data** **extract**ion software, users can create detailed and accurate **contact** lists. The **extract**ed **data** can be exported in various formats for easy integration into CRM systems or marketing tools.

Whether you need to **extract** business **contact**s online or find **emails** for local businesses, this tool offers a seamless solution.

Google Maps Email Extractor is an advanced tool designed to help users extract email addresses and contact information from Google Maps listings efficiently. It simplifies the process of gathering business contact details for lead generation and marketing purposes.

This email scraper for Google Maps is ideal for businesses and marketers looking to connect with local businesses or expand their outreach. It automates the tedious task of manually collecting contact information, saving time and effort.

With the ability to extract emails from Google Maps, this tool ensures you have access to accurate and up-to-date contact details. It is a reliable solution for businesses seeking to enhance their marketing campaigns or build targeted contact lists.

### Support and feedback

- **Bug reports**: Open a ticket in the repository Issues section
- **Custom features**: Contact our enterprise support team
  \*Email: dev.scraperengine@gmail.com \*

### Extractable Data Table 📊

Each result row contains the following fields:

| Data Type | Description |
| --- | --- |
| network | Source platform (google.com/maps). |
| keyword | The keyword that produced this result. |
| title | Business name (or the page title when the business came from web search). |
| description | Business category, address and phone when known, otherwise the page's own description. |
| url | The exact public page the email was published on (usually the business's own website or contact page). |
| email | Publicly available email address extracted from that page. |
| source | Where the business was discovered: `openstreetmap`, `openstreetmap-tag`, `google-places-api`, `web-search`. |

### Key Features of **Social Media** Email Scraper

Here are the **standout features** that make the **Social Media** Email Scraper a **top-tier tool** for **marketers**, **agencies**, and **researchers**:

- ⭐ **Automated** discovery of real local businesses, then email extraction from their own websites
- ⭐ User-friendly interface requiring no technical expertise
- ⭐ Returns the business name, category/address/phone, the exact source page and the discovery source alongside every email
- ⭐ Supports exporting data in various formats such as CSV and Excel
- ⭐ **Advanced** keyword and location filtering to target the results you want
- ⭐ **Fast** and efficient scraping process to save time
- ⭐ **Accurate** and up-to-date data extraction for reliable results
- ⭐ **Customizable** scraping settings to meet unique business needs
- ⭐ **Secure** and compliant with data privacy regulations
- ⭐ Seamless integration with CRM and marketing tools

### How to use **Social Media** Email Scraper 🚀

Follow this **simple, step-by-step guide** to start extracting **Social Media** emails today:

1. ✅ **Sign up** for the Google Maps Email Extractor tool on the platform
2. ✅ Log in to your account and access the dashboard
3. ✅ Enter the desired location or keyword to search for businesses on Google Maps
4. ✅ **Select** the email domains you want to keep and the maximum emails per keyword
5. ✅ Apply the optional location filter to narrow the search if needed
6. ✅ **Start** the extraction process and wait for the tool to scrape the data
7. ✅ **Review** the extracted data in the dashboard to ensure accuracy
8. ✅ **Export** the data in your preferred format for further use

### Use Cases 🎯

Lead Generation for Marketing Campaigns
🎯 Extract emails from Google Maps to build targeted marketing lists
🎯 **Identify** potential clients or partners in specific industries or locations

Local Business Outreach
🎯 **Find** contact information for local businesses to promote your services
🎯 Generate leads for local events or community initiatives

Market Research and Analysis
🎯 Gather data on competitors and market trends using the Google Maps scraping tool
🎯 **Analyze** result titles and snippets for business insights

CRM Data Enrichment
🎯 Add accurate contact details to your CRM system
🎯 Ensure your business database is up-to-date with verified information

### Why choose us? 💎

Our Google Maps Email Extractor stands out as a **reliable** and efficient tool for extracting business contact details. It is designed with user-friendliness in mind, ensuring that anyone can use it without technical expertise.

The tool provides accurate and up-to-date data, helping businesses connect with their target audience effectively. With **advanced** filtering options, users can focus on specific industries, locations, or business types.

This email finder for local businesses is perfect for marketers, researchers, and entrepreneurs looking to expand their network. We prioritize data security and compliance, ensuring that your operations remain within legal boundaries.

Our software is **regular**ly updated to adapt to changes in Google Maps and maintain high performance. Choose our tool for a seamless and efficient data extraction experience that delivers results.

### **Social Media** Email Scraper Scalability 📈

The Google Maps Email Extractor is built to handle projects of all sizes, from small local searches to **large-scale** data extraction. Whether you need to extract a few dozen contacts or thousands of business details, our tool can scale to meet your requirements.

The software is optimized for speed and efficiency, ensuring that even large datasets are processed quickly. With features like batch processing and **customizable** filters, users can manage complex projects with ease.

This scalability makes it an ideal Google Maps lead generation tool for businesses of all sizes. By leveraging this tool, you can grow your business outreach without compromising on quality or accuracy.

### **Social Media** Email Scraper Legal Guidelines ⚖️

**Yes**—scraping **Social Media** is **legal** as long as you follow **ethical** and **compliant** practices. The **Social Media** Email Scraper extracts only **publicly available** information from **public** **Social Media** profiles, making it **safe** and **compliant** for **research**, **marketing**, and **analysis**.

#### Legal & Ethical Guidelines

⚖️ **Ensure** compliance with data privacy laws such as GDPR when using the tool
⚖️ **Do not** use the extracted data for spam or unsolicited communications
⚖️ **Obtain** necessary permissions before contacting individuals or businesses
⚖️ **Do not** resell or distribute the extracted data without proper authorization
⚖️ **Use** the tool only for lawful and ethical purposes
⚖️ Respect the terms of service of Google Maps and other platforms
⚖️ **Avoid** overloading servers or engaging in activities that may be considered abusive
⚖️ Regularly review and adhere to updates in data protection regulations

### Input Parameters 🧩

📦 Example Input (JSON)

```json
{
  "keywords": ["restaurant"],
  "platform": "Google-Maps",
  "location": "Brighton, UK",
  "emailDomains": [],
  "maxEmails": 10,
  "engine": "legacy",
  "maxSitesPerKeyword": 80,
  "googlePlacesApiKey": "",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Input Table

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| keywords | array | ✅ Yes | Business types to look for, e.g. `restaurant`, `plumber`, `dentist`. One or more. |
| platform | string | No | Platform to scrape. Currently `Google-Maps`. |
| location | string | No | City / region / country. **Recommended** — it unlocks the map/POI database for that exact area. Empty = web search only, worldwide. |
| emailDomains | array | No | Keep only emails from these domains (e.g. `@gmail.com`). Custom/business domains supported. Empty = all domains. |
| maxEmails | integer | No | Max emails to collect per keyword (default `10`, range 1–100000). |
| engine | string | No | Processing engine. Currently `legacy`. |
| maxSitesPerKeyword | integer | No | How many business websites to open per keyword while hunting for emails (default `80`). |
| googlePlacesApiKey | string | No | Optional. Your own Google Places API key. When set, Google Places Text Search is used as an extra discovery source. The actor works fully without it. |
| proxyConfiguration | object | No | Proxy settings. Defaults to Apify Residential proxies, which search engines require. |

> ℹ️ Emails are sourced from publicly available pages only. Most businesses publish an address on their own domain (e.g. `info@thebusiness.com`) rather than a free-mail one, so **leaving `emailDomains` empty gives by far the highest yield**. If you do filter to `@gmail.com`, raise `maxSitesPerKeyword` — many more sites have to be opened before a match turns up.

### Output Format 📤

📝 Example Output (JSON)

```json
[
  {
    "network": "google.com/maps",
    "keyword": "restaurant",
    "title": "26 Furnival Street",
    "description": "Restaurant · 26 Furnival Street London EC4A 1JQ · +44 20 3301 7555",
    "url": "https://www.26furnivalstreet.com/",
    "email": "hello@26furnivalstreet.com",
    "source": "openstreetmap-tag"
  }
]
```

### Output Table

| Data Type | Description |
| --- | --- |
| network | Source platform (google.com/maps) |
| keyword | Keyword that triggered the result |
| title | Business name (or page title for web-search rows) |
| description | Category · address · phone, or the page's own description |
| url | The public page the email was published on |
| email | Extracted email address |
| source | Discovery source for this business |

### FAQ ❓

#### What is Google Maps Email Extractor?

Google Maps Email Extractor is a tool that helps users extract email addresses and other contact details from Google Maps listings.

#### Is the tool easy to use?

**Yes**, the Google Maps Email Extractor is designed to be **user-friendly** and requires no technical expertise.

#### What data can I **extract** using this tool?

You can extract publicly available **emails** published on each business's own website, along with the business name, its category/address/phone where known, the exact page the email came from, and the discovery source.

#### Can I use this tool for **lead generation**?

**Yes**, the Google Maps Email Extractor is an excellent tool for generating leads and building targeted contact lists.

#### Is the **extract**ed data accurate?

The tool ensures the extraction of accurate and up-to-date data from Google Maps listings.

#### Is the tool compliant with data privacy laws?

**Yes**, the Google Maps Email Extractor is designed to comply with data privacy regulations such as GDPR.

#### Can I **export** the **extract**ed data?

**Yes**, you can export the data in various formats such as **CSV** or Excel for further use.

#### Does the tool support bulk data **extract**ion?

**Yes**, the tool is capable of handling large-scale data extraction projects efficiently.

#### How often is the tool updated?

The Google Maps Email Extractor is regularly updated to adapt to changes in Google Maps and maintain optimal performance.

#### Can I target **specific** keywords or locations?

**Yes**, the tool offers advanced **filtering** options to target specific industries, locations, or business types.

#### Is there a **limit** to the number of emails I can **extract**?

The extraction limit depends on your subscription plan and the scope of your project.

#### Can I use the tool for local business outreach?

**Yes**, this tool is perfect for finding contact information for local **businesses** to promote your services.

#### What formats are supported for **export**ing data?

The tool supports exporting data in **CSV** and Excel formats for easy integration.

#### Can I integrate the **extract**ed data with my **CRM** system?

**Yes**, the exported data can be easily integrated into CRM systems or marketing tools.

#### Is technical support available for the tool?

**Yes**, our team provides support to assist with any issues or questions you may have.

# Actor input Schema

## `keywords` (type: `array`):

🎯 The words that power your search! Add one or more keywords (e.g. \['restaurant', 'plumber', 'dentist']). For each keyword the actor discovers real businesses of that type, opens their websites, and 📧 extracts the email addresses published there. 💡 Tip: more specific keywords = more targeted leads.

## `platform` (type: `string`):

🗺️ The business universe to scrape. Currently locked to Google Maps style business listings — more platforms coming soon! 🚀

## `location` (type: `string`):

🗺️ City, region or country (e.g. 'London' 🇬🇧, 'Brighton, UK', 'Austin, Texas' 🤠). ⭐ Strongly recommended: with a location the actor also queries the free map/POI database for that exact area, which yields real, addressed businesses instead of generic web pages. ✨ Leave empty to search worldwide with web search only.

## `emailDomains` (type: `array`):

🎛️ Keep only emails from the domains you care about — type as many as you like! ✍️ Popular picks: 📮 @gmail.com · 📨 @outlook.com · 💌 @hotmail.com · 💜 @yahoo.com · ☁️ @icloud.com · 📬 @aol.com · 🔒 @protonmail.com · 📥 @live.com · 📧 @gmx.com · 🟡 @yandex.com · 📗 @zoho.com. 🏢 Custom/business domains work too — e.g. @yourcompany.com. 🕳️ Leave empty to collect emails from ALL domains (recommended — most businesses use their own domain). 💡 Adding a domain also sharpens the search 🎯.

## `maxEmails` (type: `integer`):

🎚️ How many emails to collect per keyword before moving on. ⚡ Higher = more leads but longer runs. Default is 10 ✅ (range 1 – 100,000).

## `engine` (type: `string`):

🔧 The processing engine. Currently 'legacy' 🛡️ — a reliable, battle-tested extraction pipeline. More engines on the roadmap! 🚧

## `maxSitesPerKeyword` (type: `integer`):

🔎 How many business websites the actor may open while hunting for emails for one keyword. Raise it when a strict email-domain filter makes matches rare; lower it to finish faster. Default 80.

## `googlePlacesApiKey` (type: `string`):

🗝️ Entirely optional. If you have your own Google Places API key, paste it here and the actor will also pull businesses straight from Google's Places Text Search before falling back to the free sources. 🆓 Leave empty — the actor works fully without a key, using the free map/POI database plus web search.

## `proxyConfiguration` (type: `object`):

🌐 Control how the actor connects to search engines. 🆓 Leave it empty and the actor auto-selects Apify Residential proxies, which are needed to query search engines reliably. 🔄 On any failed response it rotates the connection and retries automatically. 🧠 Advanced users can plug in custom proxies here.

## Actor input object example

```json
{
  "keywords": [
    "restaurant"
  ],
  "platform": "Google-Maps",
  "location": "",
  "emailDomains": [],
  "maxEmails": 10,
  "engine": "legacy",
  "maxSitesPerKeyword": 80,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "restaurant"
    ],
    "emailDomains": [],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/google-maps-email-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["restaurant"],
    "emailDomains": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/google-maps-email-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "restaurant"
  ],
  "emailDomains": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scraper-engine/google-maps-email-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraper-engine/google-maps-email-extractor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/avyu7uGVW4mHbcWiV/builds/o7e5aC6dY09vDqdRk/openapi.json
