# Google\_maps\_lead\_generator\_pro (`vagadro/googel-maps-lead-generator-pro`) Actor

Scrape Google Maps businesses with phone, email, website, social media (Facebook, Instagram, LinkedIn, YouTube) and top 20 customer reviews — all in one run. Enter any search query and export leads as JSON or CSV instantly.

- **URL**: https://apify.com/vagadro/googel-maps-lead-generator-pro.md
- **Developed by:** [Vagadro](https://apify.com/vagadro) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 results

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

## Google Maps Lead Generator Pro — Leads + Social Media + Reviews + Email

Generate deeply enriched business leads from Google Maps with a single search query. Extracts contact info, social media profiles, email addresses, and top customer reviews — no API key required.

> **More actors by this author:**
> - [Google Maps Lead Generator](https://apify.com/vagadro/google-maps-lead-generator) — Scrape business leads (name, phone, website, address, rating) from any Google Maps search.
> - [Google Maps Review Scraper](https://apify.com/vagadro/google-reviews-scrapper) — Extract reviews, ratings, and reviewer details from any Google Maps business listing.
> - [Booking.com Property Listings](https://apify.com/vagadro/booking-com-property-listings) — Extract price, ratings, facilities, and descriptions from Booking.com listings.
> - [Airbnb Property Prices](https://apify.com/vagadro/airbnb-property-prices-multi-dates) — Extract price, ratings, amenities, and descriptions from Airbnb search results.

---

### What does this actor do?

Enter any search query like `"digital marketing agencies in Noida"` or `"dentists in London"` and this actor scrapes every business from the Google Maps results. For each business it:

1. Extracts core details directly from the Google Maps listing (name, phone, address, website, rating, hours)
2. Visits the business's own website to find social media profile links and email address
3. Scrapes the top 20 customer reviews from the Google Maps listing

All data is exported as **JSON or CSV** — ready for outreach, CRM import, or market research.

---

### Data extracted per business

#### Core info (from Google Maps)

| Field | Description | Example |
|---|---|---|
| **Name** | Business name | `Webcraft Digital` |
| **Category** | Type of business | `Digital marketing agency` |
| **Address** | Full street address | `A-42, Sector 62, Noida, UP 201309` |
| **Phone** | Phone number | `+91 98765 43210` |
| **Website** | Business website URL | `https://www.webcraftdigital.com` |
| **Rating** | Average star rating out of 5 | `4.6` |
| **Reviews Count** | Total number of Google reviews | `87` |
| **Hours** | Current open/closed status | `Open · Closes 7 PM` |
| **Google Maps URL** | Direct link to the listing | `https://www.google.com/maps/place/...` |

#### Contact & social (scraped from business website)

| Field | Description | Example |
|---|---|---|
| **Email** | Contact email address | `hello@webcraftdigital.com` |
| **Facebook** | Facebook page URL | `https://www.facebook.com/webcraftdigital` |
| **Instagram** | Instagram profile URL | `https://www.instagram.com/webcraftdigital` |
| **Twitter / X** | Twitter/X profile URL | `https://x.com/webcraftdigital` |
| **LinkedIn** | LinkedIn page URL | `https://www.linkedin.com/company/webcraftdigital` |
| **YouTube** | YouTube channel URL | `https://www.youtube.com/@webcraftdigital` |

#### Reviews (from Google Maps)

Up to 20 customer review texts per business, stored as `review_01` through `review_20`.

---

### How to use

1. Type your search query in the format `"[business type] in [location]"` — e.g. `"accountants in Manchester"`, `"hair salons in Dubai"`, `"CA firms in Mumbai Andheri"`.
2. Set **Max results** — how many businesses to scrape (default: 20, max: 500).
3. Click **Start** and wait for results.
4. Export as **JSON or CSV** from the dataset tab.

---

### Input parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchQuery` | string | ✅ | — | Business type and location, e.g. `"dentists in London"` |
| `maxResults` | integer | — | `20` | Maximum number of businesses to scrape (max 500) |
| `useProxy` | boolean | — | `true` | Use Apify residential proxy (recommended for large runs) |

#### Example input

```json
{
    "searchQuery": "digital marketing agencies in Noida Sector 62",
    "maxResults": 50,
    "useProxy": true
}
````

***

### Example output

```json
{
    "name": "Webcraft Digital",
    "category": "Digital marketing agency",
    "address": "A-42, Sector 62, Noida, UP 201309",
    "phone": "+91 98765 43210",
    "website": "https://www.webcraftdigital.com",
    "rating": "4.6",
    "reviews_count": "87",
    "hours": "Open · Closes 7 PM",
    "google_maps_url": "https://www.google.com/maps/place/...",
    "email": "hello@webcraftdigital.com",
    "facebook": "https://www.facebook.com/webcraftdigital",
    "instagram": "https://www.instagram.com/webcraftdigital",
    "twitter": "https://x.com/webcraftdigital",
    "linkedin": "https://www.linkedin.com/company/webcraftdigital",
    "youtube": "https://www.youtube.com/@webcraftdigital",
    "review_01": "Excellent work on our website redesign. Very responsive team.",
    "review_02": "Delivered our SEO project ahead of schedule. Highly recommend.",
    "review_03": "N/A",
    ...
}
```

***

### Use cases

- **Cold outreach** — Get phone, email, and social profiles in one shot for targeted outbound campaigns.
- **Sales prospecting** — Build enriched lead lists by industry and city in minutes.
- **Social media auditing** — Check which businesses in a niche are active on which platforms.
- **Reputation analysis** — Read real customer reviews at scale to understand market sentiment.
- **Local SEO research** — Analyse competitor ratings, review volumes, and web presence across locations.
- **Market research** — Map business density, category breakdown, and digital presence in any area.
- **CRM enrichment** — Fill in missing email, phone, and social data for existing contact lists.
- **Directory building** — Populate a local business directory with rich, structured data.

***

### How it works

1. The actor opens Google Maps with your search query using a headless Chromium browser.
2. It scrolls the results panel automatically to load all listings up to your `maxResults` limit.
3. For each business, it opens the Google Maps listing page and extracts core contact and rating data.
4. It then clicks the **Reviews tab** and scrapes the top 20 customer review texts.
5. If the business has a website, the actor visits it to find social media links and email addresses — checking `mailto:` links first, then falling back to a regex scan of the page text.
6. Results are pushed to an Apify dataset in real time — export as JSON or CSV at any point.

***

### Tips for best results

- **Be specific with location** — `"dentists in Central London"` gives tighter results than `"dentists in UK"`.
- **Google Maps typically shows 20–120 results per search** — for broader coverage, split into neighbourhoods or districts.
- **Enable proxy** for large runs or if you encounter empty results or blocks — residential proxies reduce detection.
- **Email availability depends on the business website** — not all websites display a public email address.
- **Social links are scraped from the business's own site**, so they reflect whatever the business has linked to, not what Google shows.

***

### Limitations

- Google Maps shows a maximum of ~120 results per search query regardless of `maxResults`.
- Email and social links are only available if the business has a website listed on Google Maps.
- Some websites use JavaScript-rendered contact forms or obfuscated emails that cannot be scraped.
- Google and individual business websites may update their page structure at any time, which could affect extraction accuracy.

***

### Need help?

Open an issue on this actor's page or reach out through Apify. Feedback and feature requests are welcome.

# Actor input Schema

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

Business type and location to search on Google Maps. Examples: 'digital marketing agencies in Noida Sector 62', 'restaurants in Connaught Place Delhi', 'CA firms in Mumbai Andheri'.

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

Maximum number of businesses to scrape.

## `useProxy` (type: `boolean`):

Enable Apify residential proxy. Recommended for large runs or if you encounter blocks.

## Actor input object example

```json
{
  "searchQuery": "digital marketing agencies in Noida Sector 62",
  "maxResults": 20,
  "useProxy": true
}
```

# 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 = {
    "searchQuery": "digital marketing agencies in Noida Sector 62"
};

// Run the Actor and wait for it to finish
const run = await client.actor("vagadro/googel-maps-lead-generator-pro").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 = { "searchQuery": "digital marketing agencies in Noida Sector 62" }

# Run the Actor and wait for it to finish
run = client.actor("vagadro/googel-maps-lead-generator-pro").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 '{
  "searchQuery": "digital marketing agencies in Noida Sector 62"
}' |
apify call vagadro/googel-maps-lead-generator-pro --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google_maps_lead_generator_pro",
        "description": "Scrape Google Maps businesses with phone, email, website, social media (Facebook, Instagram, LinkedIn, YouTube) and top 20 customer reviews — all in one run. Enter any search query and export leads as JSON or CSV instantly.",
        "version": "0.0",
        "x-build-id": "QH24CcK4wTVSNLufq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/vagadro~googel-maps-lead-generator-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-vagadro-googel-maps-lead-generator-pro",
                "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/vagadro~googel-maps-lead-generator-pro/runs": {
            "post": {
                "operationId": "runs-sync-vagadro-googel-maps-lead-generator-pro",
                "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/vagadro~googel-maps-lead-generator-pro/run-sync": {
            "post": {
                "operationId": "run-sync-vagadro-googel-maps-lead-generator-pro",
                "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": [
                    "searchQuery"
                ],
                "properties": {
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Business type and location to search on Google Maps. Examples: 'digital marketing agencies in Noida Sector 62', 'restaurants in Connaught Place Delhi', 'CA firms in Mumbai Andheri'."
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of businesses to scrape.",
                        "default": 20
                    },
                    "useProxy": {
                        "title": "Use Apify proxy",
                        "type": "boolean",
                        "description": "Enable Apify residential proxy. Recommended for large runs or if you encounter blocks.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
