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

Search Google Maps by keyword and instantly collect email addresses for each business. Get name, address, phone, website, rating, reviews, GPS coordinates and emails — ready to export as CSV, JSON or Excel.

- **URL**: https://apify.com/leadsbrary/google-maps-email-extractor.md
- **Developed by:** [Alexandre Manguis](https://apify.com/leadsbrary) (community)
- **Categories:** Lead generation, Automation, SEO tools
- **Stats:** 1,319 total users, 334 monthly users, 99.3% runs succeeded, 19 bookmarks
- **User rating**: 4.04 out of 5 stars

## Pricing

from $1.00 / 1,000 google maps email extractors

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?

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

Search Google Maps by keyword and automatically collect **email addresses** for each business — all in a single run. Build targeted lead lists in minutes, no manual lookup required.

***

### What this actor does

For every business found on Google Maps, this actor:

1. **Finds email addresses** for each business
2. Extracts business name, address, phone, website, rating, reviews and GPS coordinates
3. Lets you filter results to keep only leads with a confirmed email

This is the fastest way to build a cold-email prospect list from Google Maps data.

***

### Example

**Input**

```json
{
  "searchStringsArray": ["dentist"],
  "city": "London",
  "maxCrawledPlaces": 50,
  "scrapeEmails": true,
  "skipWithoutEmail": true,
  "placeMinimumStars": 4.0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

**Output** (one record per business)

```json
{
  "title": "Smile Dental Clinic",
  "category": "Dentist",
  "address": "12 Baker Street, London W1U 3BW",
  "phone": "+44 20 7946 0000",
  "website": "https://www.smiledentalclinic.co.uk/",
  "emails": ["info@smiledentalclinic.co.uk"],
  "emailCount": 1,
  "rating": 4.8,
  "reviewsCount": 312,
  "priceLevel": "££",
  "location": { "lat": 51.5209, "lng": -0.1565 },
  "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "googleMapsUrl": "https://www.google.com/maps/place/Smile+Dental+Clinic",
  "permanentlyClosed": false,
  "openingHours": [
    { "day": "Monday", "hours": "9 AM – 6 PM" },
    { "day": "Tuesday", "hours": "9 AM – 6 PM" }
  ]
}
```

***

### Input options

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchStringsArray` | string\[] | — | Search queries (e.g. `"dentist"`, `"restaurant"`, `"plumber"`) |
| `city` | string | — | City or area to target (e.g. `Paris`, `London`, `New York`). Auto-appended to each query |
| `startUrls` | URL\[] | — | Direct Google Maps place or search URLs |
| `maxCrawledPlaces` | integer | 20 | Maximum results per query |
| `scrapeEmails` | boolean | `true` | Enable email collection for each business |
| `skipWithoutEmail` | boolean | `false` | Exclude results where no email was found |
| `skipClosedPlaces` | boolean | `false` | Exclude permanently closed businesses |
| `placeMinimumStars` | number | 0 | Only include businesses at or above this rating |
| `language` | string | `en` | Google Maps interface language |
| `countryCode` | string | — | 2-letter country code to bias results (e.g. `FR`, `US`) |
| `includeOpeningHours` | boolean | `true` | Add weekly opening hours to each result |
| `includeReviews` | boolean | `false` | Add recent customer reviews |
| `maxReviews` | integer | 5 | Max reviews per place (when reviews enabled) |
| `proxyConfiguration` | object | Apify proxy | Proxy settings — residential proxies recommended |

***

### Output fields

| Field | Description |
|-------|-------------|
| `title` | Business name |
| `category` | Business category |
| `address` | Full postal address |
| `phone` | Phone number |
| `website` | Website URL |
| `emails` | Email addresses found for this business (`null` if none) |
| `emailCount` | Number of emails collected |
| `rating` | Average star rating |
| `reviewsCount` | Total number of reviews |
| `priceLevel` | Price indicator (e.g. `$`, `$$`) |
| `description` | Short description from Google Maps |
| `location` | GPS coordinates `{ lat, lng }` |
| `placeId` | Google Maps Place ID |
| `googleMapsUrl` | Direct Google Maps link |
| `permanentlyClosed` | `true` if the business is marked as permanently closed |
| `openingHours` | Weekly schedule (when enabled) |
| `reviews` | Recent reviews (when enabled) |
| `imageUrls` | Photo URLs from Google Maps |

***

### Tips

- **Enable residential proxies** — strongly recommended for reliable results.
- **Use `skipWithoutEmail: true`** when you only need contacts with a confirmed email address — this keeps your dataset clean.
- **Combine with filters** — set `placeMinimumStars: 4` and `skipClosedPlaces: true` to target only active, well-rated businesses.
- **Export to CSV or Excel** — use the Apify dataset export to download your leads in any format.

***

### Proxy recommendation

Google Maps requires a reliable proxy. We strongly recommend enabling **Residential** proxies in the proxy configuration field.

***

### Keywords

Google Maps email extractor, find emails Google Maps, extract emails from Google Maps, Google Maps leads with email, business email scraper, email finder Google Maps, Google Maps contact scraper, B2B email list Google Maps, local business emails, email address extractor, cold email leads Google Maps, Google Maps email finder tool, dentist email list, restaurant email list, hotel email leads, lawyer email list, plumber email leads, real estate agent emails, scrape business emails, email harvester Google Maps, Google Maps data extraction, lead generation email Google Maps, email marketing leads Google Maps, Google Business email scraper, find business emails by keyword, email lookup Google Maps, Google Maps API email extractor, bulk email finder local businesses, email leads France, UK business email scraper, US local business email finder, Apify Google Maps email actor, email enrichment Google Maps, business directory email extraction, contact info scraper Google Maps, professional email finder, verified business emails

# Actor input Schema

## `searchStringsArray` (type: `array`):

List of search queries to run on Google Maps (e.g. `"pizza New York"`, `"dentist London"`, `"hotel Paris 5th arrondissement"`). Each query opens a search and extracts up to **Max results** businesses.

## `startUrls` (type: `array`):

Direct Google Maps URLs — either a **place URL** (`https://www.google.com/maps/place/...`) or a **search URL** (`https://www.google.com/maps/search/...`). All filters embedded in the URL are preserved.

## `maxCrawledPlaces` (type: `integer`):

Maximum number of business places to extract **per search query or URL**.

## `city` (type: `string`):

City or area to target (e.g. `Paris`, `London`, `New York`). Automatically added to each search query. Leave empty if your queries already include the location.

## `language` (type: `string`):

Language code for the Google Maps interface (affects field names, category labels, etc.). Use `en` for English, `fr` for French, `de` for German, etc.

## `countryCode` (type: `string`):

2-letter ISO country code to restrict results to a specific country (e.g. `US` for United States, `FR` for France, `GB` for United Kingdom, `DE` for Germany). Leave empty for global results.

## `includeOpeningHours` (type: `boolean`):

Extract opening hours for each business (Monday–Sunday schedule).

## `includeReviews` (type: `boolean`):

Extract the most recent customer reviews. Each review includes author name, star rating, and review text.

## `maxReviews` (type: `integer`):

Maximum number of reviews to extract per business. Only used when **Include recent reviews** is enabled.

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

Proxy settings. **Strongly recommended** — Google Maps blocks repeated requests from the same IP. Use **Apify Residential proxies** for best results, or provide your own proxy URLs.

## `scrapeEmails` (type: `boolean`):

Automatically find and collect email addresses for each business.

## `skipWithoutEmail` (type: `boolean`):

Only keep results where at least one email address was found. Useful when building targeted email lists.

## `skipClosedPlaces` (type: `boolean`):

Exclude permanently closed businesses from the output.

## `placeMinimumStars` (type: `number`):

Only include businesses with an average rating equal to or above this value. Set to `0` to include all.

## Actor input object example

```json
{
  "searchStringsArray": [
    "pizza New York",
    "coffee shop London"
  ],
  "startUrls": [],
  "maxCrawledPlaces": 3,
  "city": "",
  "language": "en",
  "countryCode": "",
  "includeOpeningHours": true,
  "includeReviews": false,
  "maxReviews": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "scrapeEmails": true,
  "skipWithoutEmail": false,
  "skipClosedPlaces": false,
  "placeMinimumStars": 0
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing one item per extracted business place, including any emails found on its website.

# 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 = {
    "searchStringsArray": [
        "pizza New York",
        "coffee shop London"
    ],
    "startUrls": [],
    "maxCrawledPlaces": 3,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadsbrary/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 = {
    "searchStringsArray": [
        "pizza New York",
        "coffee shop London",
    ],
    "startUrls": [],
    "maxCrawledPlaces": 3,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("leadsbrary/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 '{
  "searchStringsArray": [
    "pizza New York",
    "coffee shop London"
  ],
  "startUrls": [],
  "maxCrawledPlaces": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call leadsbrary/google-maps-email-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leadsbrary/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/pkjb7rRAAnLYLwqeo/builds/U4yisJJurhz5hVy7Y/openapi.json
