# Google Maps Email Scraper (`email_scraper/google-maps-email-scraper`) Actor

Google Maps Email Scraper extracts publicly available email addresses from Google Maps-related search results using keywords, locations, and custom email domains. Build structured business contact datasets for lead research, market research, and automated data collection.

- **URL**: https://apify.com/email\_scraper/google-maps-email-scraper.md
- **Developed by:** [Email Scraper](https://apify.com/email_scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Google Maps Email Scraper

The **Google Maps Email Scraper** is an Apify Actor designed to find email addresses associated with Google Maps-related search results using targeted keywords, optional locations, and selected email domains. It turns search terms such as `Restaurant Owner`, `Contractor`, or other business-related queries into structured contact records containing the keyword, result title, description, URL, and extracted email address.

You provide one or more keywords, optionally narrow the search to a country, state, or city, choose the email domain suffixes you want to collect, and optionally exclude results containing specific words or phrases. The Actor then processes the configured keyword and domain combinations and stores matching results incrementally in the Apify dataset.

This workflow can be useful for lead research, business research, contact discovery, market analysis, dataset creation, and other workflows that require structured email data from publicly displayed search-result information.

### What Is a Google Maps Email Scraper?

A Google Maps Email Scraper is a data collection tool focused on discovering email addresses related to Google Maps searches. This Actor uses keyword-driven searches and optional geographic terms to identify relevant search results, then extracts email addresses that match the configured domain suffixes.

For example, instead of performing separate searches manually for several related terms, you can provide multiple keywords such as:

- `Restaurant Owner`
- `Restaurant Manager`
- `Catering Business`
- `Food Delivery Service`

You can also specify a location such as `Dhaka` or `Bangladesh` to narrow the search.

The Actor returns structured records so the results can be reviewed in an Apify dataset rather than copied manually from individual search results.

### Key Features

| Feature                      | Description                                                              | User Benefit                                                                                 |
| ---------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| Keyword-based search         | Accepts a list of search keywords or queries.                            | Target different business categories or search intents in one run.                           |
| Location filtering           | Optionally accepts a country, state, or city.                            | Narrow searches toward a geographic market.                                                  |
| Custom email domains         | Supports one or more email domain suffixes.                              | Focus collection on domains such as `@gmail.com`, `@yahoo.com`, or other specified suffixes. |
| Per-combination email target | `maxEmails` controls the target for each keyword + domain combination.   | Control collection depth for different search combinations.                                  |
| Exclude-word filtering       | Skips snippets containing configured words or phrases.                   | Remove unwanted search-result snippets from collection.                                      |
| Structured dataset output    | Stores keyword, title, description, URL, email, and network information. | Makes collected data easier to inspect and process.                                          |
| Incremental dataset storage  | Results are pushed as they are collected.                                | Newly found records become available during the run.                                         |
| Duplicate email prevention   | Previously seen email addresses are tracked during the run.              | Helps avoid storing the same email more than once.                                           |

### What Data Can You Extract?

Each collected result is based on information available in the relevant search-result description and includes the extracted email address together with contextual information.

The main data categories are:

- **Search context:** The keyword used to locate the result.
- **Result identity:** The title associated with the search result.
- **Description:** The visible result description or snippet used during email extraction.
- **URL:** The URL associated with the search result.
- **Email:** An address matching one of the configured email domain suffixes.
- **Network:** A dataset field identifying the source as `Google Maps.com`.

The Actor does not promise that every search result contains an email address. Results depend on whether a matching email address is present in the information available to the search process.

### Why Use the Google Maps Email Scraper?

Manual contact research can involve repeating similar searches, reviewing result snippets, identifying relevant pages, copying email addresses, and organizing the information afterward.

This Actor automates that repetitive collection workflow. Instead of processing one search manually at a time, you can supply multiple keywords and domain suffixes and let the Actor work through the configured combinations.

The structured output is particularly useful when email discovery is only one step in a larger research or data-processing workflow.

### Benefits

The Google Maps Email Scraper provides several practical benefits for research-oriented workflows:

- **Less repetitive searching:** Multiple keywords can be processed within one Actor run.
- **Targeted collection:** Location and email-domain settings allow you to narrow the search.
- **Structured results:** Contact information is returned in consistent dataset records.
- **Flexible targeting:** Related keywords can cover different business categories and search intents.
- **Research-ready data:** Results can support lead research, market research, and dataset building.
- **Incremental storage:** Records are pushed into the dataset during collection rather than waiting for one final batch.

The Actor is most useful when your workflow benefits from repeatable, keyword-driven contact discovery rather than individual manual searches.

### How to Use the Google Maps Email Scraper

The basic workflow is:

1. Enter one or more relevant keywords.
2. Add a location when geographic targeting is required.
3. Select the email domain suffixes you want to search for.
4. Set the desired `maxEmails` value.
5. Add exclude words or phrases when certain result snippets should be skipped.
6. Start the Actor.
7. Review the structured records in the Apify dataset.

For better targeting, use specific related keywords rather than relying on one broad term. For example, several focused business queries can cover different variations of the same market.

### Input

The Actor requires the `keywords` field. All other fields are optional and provide additional control over search targeting and result collection.

| Field           | Type             | Required | Default                              | Description                                                                                                                   |
| --------------- | ---------------- | -------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| `keywords`      | Array of strings | Yes      | `["Restaurant Owner", "Contractor"]` | Search keywords or queries used to find relevant Google Maps-related results. Multiple values are supported.                  |
| `location`      | String           | No       | `""`                                 | Optional country, state, or city used to narrow searches geographically. Leave empty to search without a geographic filter.   |
| `customDomains` | Array of strings | No       | `["@gmail.com"]`                     | Email domain suffixes to include when looking for addresses, such as `@gmail.com`, `@yahoo.com`, or another specified suffix. |
| `maxEmails`     | Integer          | No       | `5`                                  | Target number of emails for each keyword + domain combination. Valid values are from `1` to `10000`.                          |
| `excludeWords`  | Array of strings | No       | `[]`                                 | Words or phrases that cause a result description/snippet to be skipped before email extraction.                               |

#### Keywords

Use specific search queries that match the type of businesses or contacts you are researching. Multiple keywords are processed separately, allowing you to broaden coverage with related phrases.

#### Location

The location field accepts a manually entered geographic term such as a city, state, or country. Leaving it blank removes the geographic filter.

#### Custom Domains

The default domain is `@gmail.com`. Add other suffixes when your research requires different email providers or specific domain patterns.

#### Max Emails

`maxEmails` controls the collection target for each keyword and email-domain combination. For example, with three keywords and two domains, a value of `20` gives each of the six combinations its own target of up to 20 matching addresses.

The Actor does not guarantee that the target will be reached because it can only collect email addresses available in the results it processes.

For non-paying runs, the implementation caps a requested `maxEmails` value at **100** when the requested value exceeds that limit.

#### Exclude Words

Single words are matched case-insensitively as whole words, while phrases are matched case-insensitively as phrases. When a configured term appears in a result description, that result is skipped.

### Input Example

```json
{
  "keywords": [
    "Restaurant Owner",
    "Restaurant Manager",
    "Catering Business"
  ],
  "location": "Dhaka, Bangladesh",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "excludeWords": [
    "crypto",
    "onlyfans"
  ]
}
```

### Output

The Actor stores each discovered email as a separate dataset record together with search-result context.

| Field         | Description                                                           |
| ------------- | --------------------------------------------------------------------- |
| `network`     | Identifies the dataset source as `Google Maps.com`.                   |
| `keyword`     | The keyword used for the search combination that produced the record. |
| `title`       | Title of the associated search result.                                |
| `description` | Description or snippet associated with the search result.             |
| `url`         | URL associated with the search result.                                |
| `email`       | Email address matching one of the configured domain suffixes.         |

The default dataset table is configured to prominently display `keyword`, `title`, `description`, `url`, and `email`.

The `network` field is also written to each dataset item by the Actor.

### Output Example

```json
{
  "network": "Google Maps.com",
  "keyword": "Restaurant Owner",
  "title": "Example Restaurant",
  "description": "Example Restaurant serving customers in Dhaka. Contact us at example@gmail.com for business inquiries.",
  "url": "https://www.google.com/maps/",
  "email": "example@gmail.com"
}
```

The exact title, description, URL, and email values will vary according to the search results found during the run.

### Use Cases

The Google Maps Email Scraper can support several practical research and data-collection scenarios.

**Lead research:** Identify publicly displayed email addresses associated with business-related search results for further research.

**Local market research:** Combine business keywords with cities, states, or countries to investigate specific geographic markets.

**Business intelligence:** Build structured datasets containing search terms, business-result context, URLs, and email addresses.

**Competitive research:** Collect contact information related to selected business categories and geographic areas.

**Dataset creation:** Generate structured records that can later be filtered, analyzed, or combined with other business datasets.

**Outreach research:** Create a research dataset of potentially relevant business contacts before conducting separate qualification or outreach processes.

**Category research:** Test several related search phrases to understand which business categories or keyword variations produce useful contact information.

### Advantages

The Actor is designed around configurable keyword and domain combinations rather than a single fixed search. This makes it practical for research workflows where the desired audience can be described through several related terms.

Its structured dataset output also preserves the search context alongside each email. That context can help users understand why a record was collected and make downstream review easier.

Another useful characteristic is the exclusion filter. When a search produces unwanted snippets containing specific words or phrases, those snippets can be skipped without changing the main keyword configuration.

### Limitations

Email collection depends on addresses being present in the search-result information available to the Actor. A business may therefore appear in a search without producing an email address.

Search coverage can also vary by keyword, location, selected domain, and available results. A narrow query may produce fewer matching addresses than a broader query.

The `maxEmails` value is a target rather than a guarantee. The Actor may stop before reaching that number when useful results are no longer available or when its search-stopping conditions are reached.

Each keyword + domain combination is processed independently, and the Actor has a maximum pagination boundary of 1,000 pages for an individual combination.

### Pros and Cons

| Pros                                   | Cons                                                       |
| -------------------------------------- | ---------------------------------------------------------- |
| Supports multiple keywords in one run. | Results depend on available search-result information.     |
| Optional geographic targeting.         | A configured email target is not guaranteed to be reached. |
| Supports custom email-domain suffixes. | Narrow keywords may produce sparse results.                |
| Supports exclusion words and phrases.  | Large searches can require more processing time.           |
| Returns structured contact records.    | Output availability may vary between searches.             |

### Comparison With Alternative Approaches

| Capability                  | This Actor                  | Manual / Typical Alternative                    |
| --------------------------- | --------------------------- | ----------------------------------------------- |
| Keyword-based collection    | Supported                   | Usually performed one search at a time          |
| Multiple keyword inputs     | Supported                   | Often requires repeated manual searches         |
| Location targeting          | Supported                   | Can be added manually to individual searches    |
| Email-domain targeting      | Supported                   | Requires manual filtering or query construction |
| Exclude-word filtering      | Supported                   | Usually handled manually                        |
| Structured dataset records  | Supported                   | Often requires manual copying and formatting    |
| Automated processing        | Supported through the Actor | Typically more repetitive                       |
| Incremental dataset storage | Supported                   | Usually requires manual record collection       |

This comparison focuses on workflow characteristics rather than claims about competing products or services.

### Competitive Advantages

The practical strengths of this Google Maps Email Scraper are its configurable search inputs and structured contact output.

Users can combine multiple keywords, optional locations, custom email domains, and exclusion terms in the same run. The resulting records retain the original keyword and search-result context, which can be useful when reviewing or qualifying collected contacts.

The per-combination `maxEmails` setting also provides more granular control than a single shared target because each keyword and domain combination is processed separately.

### Best Practices

Start with a small number of focused keywords and a modest `maxEmails` value so you can review the quality of the returned records before expanding the run.

Use several closely related search terms rather than relying on a single broad keyword. For geographic research, include the relevant city, state, or country in `location`.

Add additional email-domain suffixes when you need broader coverage. When testing a new campaign or research topic, review results from `@gmail.com` first and expand the domain list when useful.

Use `excludeWords` for clearly unwanted categories or phrases that commonly appear in irrelevant result descriptions.

For important datasets, review the returned emails and associated URLs before using them in downstream business processes.

### Troubleshooting

**Invalid Input:** Confirm that `keywords` is an array of strings and that values in `customDomains` and `excludeWords` are also provided as arrays.

**Empty Results:** Try broader or more specific related keywords. A location filter can also be removed or broadened when the search is too narrow.

**Fewer Emails Than Expected:** Increase `maxEmails` when appropriate, add related keywords, or include additional email-domain suffixes. The requested target cannot guarantee a particular number of matches.

**Partial Results:** Search-result availability can vary. Review the returned records and consider testing additional keyword or location combinations.

**Excluded Results:** Check the `excludeWords` list when expected records are missing. A matching word or phrase in a result description causes that snippet to be skipped.

**Long Runs:** Wide keyword and domain combinations can require more processing. Use a smaller test configuration first and increase the scope after reviewing the initial results.

### Frequently Asked Questions

**What does the Google Maps Email Scraper do?**
It searches for relevant Google Maps-related results using your keywords and extracts email addresses that match the email-domain suffixes you specify.

**What input is required?**
The required input is `keywords`, provided as an array of search terms or queries.

**Can I use multiple keywords?**
Yes. You can provide multiple keyword values, and each keyword is processed as part of the Actor's keyword and domain combinations.

**Can I target a specific city or country?**
Yes. Use the optional `location` field to narrow the search to a country, state, or city.

**Which email domains can I search?**
The default is `@gmail.com`, but you can provide additional domain suffixes such as `@yahoo.com`, `@outlook.com`, or other domain patterns relevant to your research.

**What does `maxEmails` control?**
It sets the collection target for each individual keyword + domain combination. It is not a guarantee that the specified number will be found.

**Can I exclude unwanted results?**
Yes. Add words or phrases to `excludeWords`. A result description containing a matching exclusion term is skipped.

**What output does the Google Maps Email Scraper return?**
Each collected record contains `network`, `keyword`, `title`, `description`, `url`, and `email`.

**Why did the Actor return fewer emails than my target?**
The target depends on matching email addresses being available in the processed search results. Some keywords or locations may produce fewer qualifying results.

**Is the Actor suitable for automated workflows?**
Yes. It is an Apify Actor that processes configurable inputs and writes structured records to an Apify dataset, making the resulting data suitable for downstream research and data workflows.

### NLP Keywords

- Google Maps email scraper
- Google Maps contact extraction
- Google Maps business emails
- Google Maps email finder
- business email extraction
- local business email scraper
- map listing email extraction
- business contact discovery
- Google Maps lead data
- local business leads
- email domain filtering
- keyword-based email search
- location-based business search
- structured lead dataset
- business research data
- public contact information
- email address collection
- local market research
- Google search result data
- business contact dataset

### Related Keywords

- Google Maps email extractor
- Google Maps business email scraper
- find business emails from Google Maps
- extract emails from Google Maps results
- local business email finder
- Google Maps lead scraper
- business contact scraper
- local lead email extraction
- Google Maps contact finder
- business email data extraction
- city-based business email search
- location-based email scraper
- keyword business lead scraper
- email scraper for local businesses
- Google Maps lead generation data
- business directory email extraction
- local company contact research
- Google Maps prospecting data
- business email research tool
- structured business lead extraction

### Final Overview

The **Google Maps Email Scraper** provides a configurable way to collect email addresses associated with relevant Google Maps-related search results. By combining keywords, optional locations, custom email domains, exclusion filters, and per-combination collection targets, users can build structured datasets for business research, lead research, market analysis, and contact discovery.

For the most useful results, begin with focused keywords, test a small configuration, review the returned records, and then expand the keyword, location, and domain coverage according to your research requirements.

**Contact me:** <Alphascraper69@gmail.com>

# Actor input Schema

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

A list of keywords or queries to search for.

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

Optional country, state or city used to narrow the search. Leave it empty to search without a geographic filter.

## `customDomains` (type: `array`):

List of custom email domains

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

How many addresses each search keyword + domain suffix combination may collect before the finder moves on to the next one. This is a per-combination target, not a run-wide total: with 3 keyword and 2 Domains and a limit of 20, the run works through all 6 combinations and aims for up to 20 addresses in each, so up to 120 overall. Lower values finish sooner and cost less; higher values dig deeper but never guarantee a fuller result, since the run can only find what is publicly listed.

## `excludeWords` (type: `array`):

Words or phrases you do not want to see.

## Actor input object example

```json
{
  "keywords": [
    "Restaurant Owner",
    "Contractor"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 5,
  "excludeWords": []
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 Owner",
        "Contractor"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("email_scraper/google-maps-email-scraper").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 Owner",
        "Contractor",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
    "excludeWords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("email_scraper/google-maps-email-scraper").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 Owner",
    "Contractor"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ],
  "excludeWords": []
}' |
apify call email_scraper/google-maps-email-scraper --silent --output-dataset

```

## MCP server setup

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

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/N3aMZvYgGKguSVgfa/builds/w5SF0ArlsgkGDLG4t/openapi.json
