# Google Maps Email Extractor (B2B Lead Generation) (`intelscrape/google-places-apex-extractor`) Actor

Stop paying for two different scrapers! Instantly scrape Google Maps AND rip perfectly clean B2B emails, direct phone numbers, and Social Media profiles (LinkedIn, Instagram) directly from their websites in under 2 minutes. The fastest lead generation scraper on Apify.

- **URL**: https://apify.com/intelscrape/google-places-apex-extractor.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Automation, SEO tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

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

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 Email Extractor (B2B Lead Generation) 📍📧

**Stop paying for two different scrapers.** The absolute fastest **Google Maps Email Extractor** on Apify generates perfect B2B cold outreach lists in seconds. 
Unlike generic maps scrapers that charge you $5 and give you blank email sheets, the **Apex Extractor** natively scrapes Google Maps listings AND instantly bypasses their linked websites to rip deeply embedded **Emails**, **Direct Telephones**, **Social Media profiles**, **Tech Stacks (Shopify/WordPress)**, and **Advertising Pixels** all within a single, lightning-fast pipeline.

### 🚀 Why this obliterates the competition:
1. **The Ultimate Email Extractor Loop**: Standard scrapers rely on businesses putting their email in their Maps profile (which 90% don't). If a business has a website linked on Maps, our raw-buffer engine bypasses heavy DOM loading to instantly regex-scan their homepage source code, pulling out hidden domains, "mailto" tags, and embedded data in milliseconds.
2. **Surgical Cold-Outreach Data**: Other scrapers give you "dirty" emails filled with PNGs and Javascript library names. Our V1.0.9 engine aggressively sterilizes the data—stripping out `{Package_JSON}` strings and `Example.com` placeholders—so you only download pristine, instantly-sendable B2B leads. Your domain reputation stays perfect.
3. **Deep Telephone & Social Matrices**: It doesn't just do emails. It grabs localized phone numbers buried deep on their contact pages, resolving Google's hidden `Cookie` tracking strings, and simultaneously yields their full array of Facebook, Twitter, Instagram, and LinkedIn company URLs. 
4. **Reputation Arbitrage Filters**: Selling SEO or Reputation Management? Set the `Max Star Rating` filter to `3.5` and the bot will ONLY extract struggling local businesses that desperately need your services!
5. **Automated Marketing Audits**: The engine acts as a silent SEO scanner. Every website it hits is parsed for its Tech Stack (WordPress, Squarespace) and Marketing Tags (Facebook Pixel, Google Analytics). Instantly know if a business needs web development or advertising help.

### 💼 Who is this Google Maps Scraper built for?
- **B2B Outbound Agencies:** Build massive cold email and cold call lists for Apollo.io, Instantly.ai, and Lemlist. 
- **Lead Generation / Sales Development:** Effortlessly construct hyper-local campaigns targeting dentists, plumbers, lawyers, roofers, etc.
- **Local SEO Consultancies:** Find high-value clients missing a website, sitting on terrible reviews, or lacking a social presence.

### 📊 The B2B Output Payload:
For a fraction of the cost, you receive:
- Business Name, Category & Google Maps URL
- Up to 12+ localized, direct-dial **Phone Numbers** natively decrypted from the site.
- **Verified Core Emails (The ultimate cold-outreach feature)**
- Fully aggregated **Social Media Links** (LinkedIn, FB, IG, etc.)
- **Website Tech Stack** (WordPress, Webflow, Shopify, React) and **Targeting Pixels**
- **SEO Meta Descriptions** for highly personalized cold outreach
- Exact Average Star Rating & Total Review Count
- The Linked Website URL

*Dominate your outbound pipeline. Stop waiting hours. Hit Start.*

# Actor input Schema

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

List of keywords to search on Google Maps (e.g. 'Sushi in Tokyo', 'Plumbers in Miami').
## `extractEmails` (type: `boolean`):

If true, the bot will concurrently visit each business website it finds to extract contact emails and social links.
## `maxRatingFilter` (type: `number`):

Only return businesses with a star rating LOWER than this. (Perfect for SEO agencies targeting struggling businesses). Leave empty for all.
## `deepGridSearch` (type: `boolean`):

If true, bypasses the Google Maps 120 result cap by programmatically zooming into map quadrants.
## `maxDepth` (type: `integer`):

Hard limit on total results to save proxy compute limits.
## `proxyConfiguration` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "searchQueries": [
    "Restaurants in Austin, TX"
  ],
  "extractEmails": true,
  "maxRatingFilter": 5,
  "maxDepth": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

# Actor output Schema

## `name` (type: `string`):

The name of the business on Maps.

## `googleUrl` (type: `string`):

Direct link to the listing.

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

The star rating of the business.

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

The linked website.

## `emails` (type: `string`):

Emails crawled natively from the linked website.

## `phones` (type: `string`):

Phone numbers located from hyper-buffer logic.

## `socialLinks` (type: `string`):

Cross-linked Twitter, LI, FB identities.

## `techStack` (type: `string`):

CMS Framework Architecture

## `pixels` (type: `string`):

Facebook/Google marketing trackers.

## `seoDescription` (type: `string`):

Website Meta 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": [
        "Restaurants in Austin, TX"
    ],
    "extractEmails": true,
    "maxRatingFilter": 5,
    "deepGridSearch": false,
    "maxDepth": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/google-places-apex-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 = {
    "searchQueries": ["Restaurants in Austin, TX"],
    "extractEmails": True,
    "maxRatingFilter": 5,
    "deepGridSearch": False,
    "maxDepth": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/google-places-apex-extractor").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": [
    "Restaurants in Austin, TX"
  ],
  "extractEmails": true,
  "maxRatingFilter": 5,
  "deepGridSearch": false,
  "maxDepth": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call intelscrape/google-places-apex-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=intelscrape/google-places-apex-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Email Extractor (B2B Lead Generation)",
        "description": "Stop paying for two different scrapers! Instantly scrape Google Maps AND rip perfectly clean B2B emails, direct phone numbers, and Social Media profiles (LinkedIn, Instagram) directly from their websites in under 2 minutes. The fastest lead generation scraper on Apify.",
        "version": "1.0",
        "x-build-id": "PEOk7EQHQ4WgbHUe3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/intelscrape~google-places-apex-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-intelscrape-google-places-apex-extractor",
                "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/intelscrape~google-places-apex-extractor/runs": {
            "post": {
                "operationId": "runs-sync-intelscrape-google-places-apex-extractor",
                "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/intelscrape~google-places-apex-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-intelscrape-google-places-apex-extractor",
                "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": "Search Queries",
                        "type": "array",
                        "description": "List of keywords to search on Google Maps (e.g. 'Sushi in Tokyo', 'Plumbers in Miami').",
                        "items": {
                            "type": "string"
                        }
                    },
                    "extractEmails": {
                        "title": "Extract Emails from Websites",
                        "type": "boolean",
                        "description": "If true, the bot will concurrently visit each business website it finds to extract contact emails and social links."
                    },
                    "maxRatingFilter": {
                        "title": "Max Star Rating Filter",
                        "type": "number",
                        "description": "Only return businesses with a star rating LOWER than this. (Perfect for SEO agencies targeting struggling businesses). Leave empty for all."
                    },
                    "deepGridSearch": {
                        "title": "Bypass 120-Result Limit (Deep Grid)",
                        "type": "boolean",
                        "description": "If true, bypasses the Google Maps 120 result cap by programmatically zooming into map quadrants."
                    },
                    "maxDepth": {
                        "title": "Max Results Per Query",
                        "type": "integer",
                        "description": "Hard limit on total results to save proxy compute limits."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
