# Google Maps Email Leads | 💵$5/1K (`webdata_labs/google-maps-email-leads-scraper`) Actor

\[💵 $5.00 / 1K] Find Google Maps businesses with website-derived, source-linked business emails. Contact-ready local leads — not a raw Maps dump.

- **URL**: https://apify.com/webdata\_labs/google-maps-email-leads-scraper.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 email contact records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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 Leads

**Find public business emails from Google Maps searches — with the business, phone number, website, source page, and confidence context in the same row.**

Enter searches such as `roofers in Dallas, TX`. The Actor discovers matching businesses on Google Maps, visits their public websites and common contact pages, and returns source-linked email contact records ready for review or outreach workflows.

### What you get

- Public email address found on the business website
- Exact source URL where the email was found
- Business name, category, address, phone, rating, and website
- Google Maps URL and original search query
- Email type (`personal` or `role`) and confidence signal
- JSON, CSV, Excel, API, webhook, and scheduled-run delivery through Apify

### What this is not

- Not a raw Google Maps dump padded with businesses that have no email
- Not an email guessing tool
- Not a private-data or login-gated scraper
- Not a guarantee that every published address is appropriate for unsolicited marketing

Only emails visibly published on public business websites are returned. Always follow applicable privacy, anti-spam, and marketing laws.

### Quick start

```json
{
  "searchQueries": ["roofers in Dallas, TX"],
  "maxBusinessesPerQuery": 25,
  "pagesPerSite": 3,
  "countryCode": "us",
  "language": "en"
}
````

1. Add one business type + location per search line.
2. Choose how many businesses to inspect.
3. Run the Actor and open the **Email leads** dataset view.
4. Export the accepted contact records or connect the dataset to your workflow.

### Input

| Field | Description |
|---|---|
| `searchQueries` | Google Maps searches, one niche and location per line |
| `maxBusinessesPerQuery` | Maximum matching contact records to return per query |
| `pagesPerSite` | Number of public website/contact pages to inspect, 1–5 |
| `countryCode` | Two-letter Google localization code, e.g. `us`, `gb`, `de` |
| `language` | Google result language, e.g. `en`, `de`, `fr` |

### Output

Each dataset row is one **email contact record**, not necessarily one unique business. A business can publish multiple valid addresses and therefore produce multiple rows.

```json
{
  "name": "Example Roofing",
  "category": "Roofing contractor",
  "phone": "+1 555 0100",
  "websiteUrl": "https://example.com",
  "email": "info@example.com",
  "emailType": "role",
  "emailConfidence": "high",
  "emailSourceUrl": "https://example.com/contact",
  "googleMapsUrl": "https://maps.google.com/?cid=...",
  "searchQuery": "roofers in Dallas, TX"
}
```

### Pricing

Pay per delivered email contact record. The launch price is **$5 per 1,000 records** on the Free tier, with platform usage included. Empty searches and scanned businesses without an accepted email are not billed as result rows. Check the Pricing tab for current tier discounts before a large run.

### Reliability and limits

- Email yield varies by niche, country, and how many businesses publish contact details.
- Websites that block automated requests, time out, or render contacts only after complex interaction may produce no email.
- The Actor reports only addresses it can associate with the public site and includes the source URL for auditability.
- Google and business websites can change. If a run fails or a field looks wrong, open an Actor issue with the run URL and query.

### Automation

Run from Apify Console, REST API, JavaScript/Python clients, schedules, webhooks, Make, Zapier, or other integrations. Start with a small limit to measure email yield in your niche before scaling.

### Support

For missing fields or failed searches, open an issue with the run URL, search query, country code, and expected behavior. If the Actor saved you time, a Store review helps other users judge the product.

# Actor input Schema

## `searchQueries` (type: `array`):

One business type and location per line.

## `maxBusinessesPerQuery` (type: `integer`):

Maximum Maps listings to inspect for each query.

## `pagesPerSite` (type: `integer`):

Homepage plus common contact pages to inspect for public business emails.

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

Two-letter Google localization code.

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

Google result language.

## Actor input object example

```json
{
  "searchQueries": [
    "roofers in Dallas, TX"
  ],
  "maxBusinessesPerQuery": 10,
  "pagesPerSite": 3,
  "countryCode": "us",
  "language": "en"
}
```

# Actor output Schema

## `OUTPUT` (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 = {
    "searchQueries": [
        "roofers in Dallas, TX"
    ],
    "maxBusinessesPerQuery": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/google-maps-email-leads-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 = {
    "searchQueries": ["roofers in Dallas, TX"],
    "maxBusinessesPerQuery": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "roofers in Dallas, TX"
  ],
  "maxBusinessesPerQuery": 10
}' |
apify call webdata_labs/google-maps-email-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=webdata_labs/google-maps-email-leads-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Email Leads | 💵$5/1K",
        "description": "[💵 $5.00 / 1K] Find Google Maps businesses with website-derived, source-linked business emails. Contact-ready local leads — not a raw Maps dump.",
        "version": "0.1",
        "x-build-id": "vrJR4Q0nkcn22wtcf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/webdata_labs~google-maps-email-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-webdata_labs-google-maps-email-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/webdata_labs~google-maps-email-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-webdata_labs-google-maps-email-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/webdata_labs~google-maps-email-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-webdata_labs-google-maps-email-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchQueries"
                ],
                "properties": {
                    "searchQueries": {
                        "title": "Google Maps searches",
                        "type": "array",
                        "description": "One business type and location per line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxBusinessesPerQuery": {
                        "title": "Max businesses per search",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum Maps listings to inspect for each query.",
                        "default": 25
                    },
                    "pagesPerSite": {
                        "title": "Pages per website",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Homepage plus common contact pages to inspect for public business emails.",
                        "default": 3
                    },
                    "countryCode": {
                        "title": "Country code",
                        "type": "string",
                        "description": "Two-letter Google localization code.",
                        "default": "us"
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Google result language.",
                        "default": "en"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
