# Google Maps Lead Enricher — Extract Business Data with Emails (`yourwingman/google-maps-lead-enricher`) Actor

Search Google Maps by keyword, location, or coordinates. Extract business names, addresses, phones, websites, ratings, and enriched email addresses for lead generation and sales prospecting.

- **URL**: https://apify.com/yourwingman/google-maps-lead-enricher.md
- **Developed by:** [Wingman](https://apify.com/yourwingman) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Actor: Google Maps Lead Enricher

Extract structured business listings from Google Maps and enrich them with verified contact data. Search by keyword, location, or coordinates — get business names, addresses, phone numbers, websites, ratings, and extracted emails.

### Features

- **Search by query + location**: "plumber Austin TX" or "restaurant near me"
- **Coordinate search**: Search by latitude/longitude + radius
- **Email enrichment**: Visits business websites to discover contact emails
- **Structured output**: JSON/CSV/Excel ready for CRM import
- **Pagination control**: Limit results or scrape all available
- **Proxy support**: Uses Apify Proxy for reliable access
- **Scheduling**: Set and forget via Apify scheduler

### Use Cases

- Lead generation for local businesses
- Sales prospecting territory research
- Real estate market analysis
- Competitive landscape mapping
- Direct marketing campaign building

### Input

```json
{
  "searchQueries": ["plumber Austin TX", "dentist Miami FL"],
  "coordinates": { "lat": 30.2672, "lng": -97.7431, "radius": 5000 },
  "maxResults": 100,
  "enrichEmails": true,
  "language": "en"
}
````

### Output

```json
{
  "businessName": "Austin Plumbing Pros",
  "address": "123 Main St, Austin, TX 78701",
  "phone": "+1-512-555-0142",
  "website": "https://austinplumbingpros.com",
  "rating": 4.7,
  "reviewsCount": 234,
  "businessStatus": "OPEN",
  "priceLevel": "$$",
  "categories": ["Plumber", "Drain Service"],
  "email": "info@austinplumbingpros.com",
  "emailSource": "website_scrape",
  "coordinates": { "lat": 30.2672, "lng": -97.7431 },
  "googleMapsUrl": "https://maps.google.com/...",
  "plusCode": "XXX+XX Austin, TX"
}
```

### Pricing

- **Pay per result**: $0.001 per result ($1 per 1,000 leads)
- **Free tier**: Comes with Apify $5 monthly credit

### How It Works

1. Enter search terms or coordinates
2. Actor searches Google Maps via Playwright browser
3. Extracts all visible business data
4. Optionally visits each website to find email addresses
5. Saves structured data to Apify Dataset

### Changelog

#### v1.0.0 (2026-07-09)

- Initial release
- Google Maps search by query + location
- Coordinate-based search with radius
- Business detail extraction
- Email enrichment from business websites
- Pagination and rate limiting
- Apify Dataset output

# Actor input Schema

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

List of search queries. Each query should include location (e.g., 'plumber Austin TX' or 'restaurant near Central Park').

## `coordinates` (type: `object`):

Search by latitude/longitude instead of text queries. Requires lat, lng, and radius.

## `maxResults` (type: `integer`):

Maximum number of results to return per search query. Set to 0 for unlimited (up to platform limits).

## `enrichEmails` (type: `boolean`):

Visit each business website to find and extract email addresses. Increases run time but provides higher value leads.

## `maxEmailCrawlPages` (type: `integer`):

Maximum pages to crawl per website when looking for emails (0 = skip website crawl even if enrichEmails is on).

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

Language code for search results (e.g., 'en' for English, 'es' for Spanish).

## `proxy` (type: `object`):

Proxy settings for Google Maps access.

## Actor input object example

```json
{
  "searchQueries": [
    "plumber Austin TX",
    "dentist Austin TX"
  ],
  "coordinates": {
    "lat": 30.2672,
    "lng": -97.7431,
    "radius": 5000
  },
  "maxResults": 100,
  "enrichEmails": true,
  "maxEmailCrawlPages": 3,
  "language": "en",
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `businessName` (type: `string`):

Name of the business as listed on Google Maps

## `address` (type: `string`):

Street address of the business

## `phone` (type: `string`):

Phone number of the business (if available)

## `website` (type: `string`):

Website URL of the business

## `rating` (type: `string`):

Google Maps star rating (0-5)

## `reviewsCount` (type: `string`):

Total number of Google Maps reviews

## `businessStatus` (type: `string`):

Operating status (Open, Closed, etc.)

## `priceLevel` (type: `string`):

Price range indicator ($ to $$$$)

## `categories` (type: `string`):

Comma-separated business category tags

## `email` (type: `string`):

Business email (enriched from website when enabled)

## `emailSource` (type: `string`):

How the email was discovered

## `coordinates_lat` (type: `string`):

GPS latitude coordinate

## `coordinates_lng` (type: `string`):

GPS longitude coordinate

## `googleMapsUrl` (type: `string`):

Direct link to the business on Google Maps

## `plusCode` (type: `string`):

Google Plus Code (open location code)

## `searchQuery` (type: `string`):

The search query that produced this result

## `scrapedAt` (type: `string`):

ISO timestamp of extraction

# 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": [
        "plumber Austin TX",
        "dentist Austin TX"
    ],
    "coordinates": {
        "lat": 30.2672,
        "lng": -97.7431,
        "radius": 5000
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("yourwingman/google-maps-lead-enricher").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": [
        "plumber Austin TX",
        "dentist Austin TX",
    ],
    "coordinates": {
        "lat": 30.2672,
        "lng": -97.7431,
        "radius": 5000,
    },
}

# Run the Actor and wait for it to finish
run = client.actor("yourwingman/google-maps-lead-enricher").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": [
    "plumber Austin TX",
    "dentist Austin TX"
  ],
  "coordinates": {
    "lat": 30.2672,
    "lng": -97.7431,
    "radius": 5000
  }
}' |
apify call yourwingman/google-maps-lead-enricher --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Lead Enricher — Extract Business Data with Emails",
        "description": "Search Google Maps by keyword, location, or coordinates. Extract business names, addresses, phones, websites, ratings, and enriched email addresses for lead generation and sales prospecting.",
        "version": "1.0",
        "x-build-id": "TZYsLXZjv9efpIHCk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/yourwingman~google-maps-lead-enricher/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-yourwingman-google-maps-lead-enricher",
                "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/yourwingman~google-maps-lead-enricher/runs": {
            "post": {
                "operationId": "runs-sync-yourwingman-google-maps-lead-enricher",
                "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/yourwingman~google-maps-lead-enricher/run-sync": {
            "post": {
                "operationId": "run-sync-yourwingman-google-maps-lead-enricher",
                "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",
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "List of search queries. Each query should include location (e.g., 'plumber Austin TX' or 'restaurant near Central Park').",
                        "items": {
                            "type": "string",
                            "maxLength": 200
                        }
                    },
                    "coordinates": {
                        "title": "Coordinate Search (optional)",
                        "type": "object",
                        "description": "Search by latitude/longitude instead of text queries. Requires lat, lng, and radius.",
                        "properties": {
                            "lat": {
                                "title": "Latitude",
                                "type": "number",
                                "description": "Latitude coordinate (e.g., 30.2672 for Austin, TX)"
                            },
                            "lng": {
                                "title": "Longitude",
                                "type": "number",
                                "description": "Longitude coordinate (e.g., -97.7431 for Austin, TX)"
                            },
                            "radius": {
                                "title": "Radius (meters)",
                                "type": "integer",
                                "description": "Search radius in meters (100-50000)",
                                "minimum": 100,
                                "maximum": 50000,
                                "default": 5000
                            }
                        }
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of results to return per search query. Set to 0 for unlimited (up to platform limits).",
                        "default": 100
                    },
                    "enrichEmails": {
                        "title": "Enrich with Emails",
                        "type": "boolean",
                        "description": "Visit each business website to find and extract email addresses. Increases run time but provides higher value leads.",
                        "default": true
                    },
                    "maxEmailCrawlPages": {
                        "title": "Max Pages per Email Enrichment",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum pages to crawl per website when looking for emails (0 = skip website crawl even if enrichEmails is on).",
                        "default": 3
                    },
                    "language": {
                        "title": "Search Language",
                        "enum": [
                            "en",
                            "es",
                            "fr",
                            "de",
                            "it",
                            "pt",
                            "ja",
                            "ko",
                            "zh",
                            "ar",
                            "ru"
                        ],
                        "type": "string",
                        "description": "Language code for search results (e.g., 'en' for English, 'es' for Spanish).",
                        "default": "en"
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for Google Maps access.",
                        "properties": {
                            "useApifyProxy": {
                                "title": "Use Apify Proxy",
                                "type": "boolean",
                                "description": "Use Apify's built-in proxy to avoid IP blocks.",
                                "default": true
                            },
                            "proxyGroups": {
                                "title": "Proxy Groups",
                                "type": "array",
                                "description": "Apify proxy groups to use. Leave empty for automatic selection.",
                                "editor": "stringList",
                                "items": {
                                    "type": "string"
                                }
                            }
                        },
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
