# Google Maps Leads with Verified Emails (`leadproof/google-maps-verified-leads`) Actor

B2B leads from Google Maps with SMTP-verified email addresses. Filter by review count, dedupe against your CRM export, and pay only for delivered verified leads.

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

## Pricing

from $200.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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Maps Leads with Verified Emails

B2B leads that are actually contactable. This Actor finds businesses on Google Maps, scrapes their websites for email addresses, **SMTP-verifies every email**, and dedupes against your existing contacts — then delivers only the leads that survived all of it.

**You pay only for delivered verified leads.** Businesses without a website, without a findable email, with an undeliverable email, or already in your CRM cost you nothing.

### What you get

Each delivered lead:

| Field | Example |
|---|---|
| `business_name` | Summit Chiropractic & Wellness |
| `email` | drsmith@summitchiro.com — **SMTP-verified deliverable** |
| `email_status` | `ok` (or `catch_all` if you enable risky emails) |
| `phone` | (208) 555-0142 |
| `website` | summitchiro.com |
| `address`, `city`, `state`, `zip` | 1234 Main St, Boise, ID 83702 |
| `rating`, `reviews` | 4.9, 187 |
| `google_maps_url`, `place_id` | direct Maps link + stable ID |

Ready for CSV export or direct CRM import.

### How to use

1. **Search terms** — the business type(s) you sell to: "dental clinic", "med spa", "HVAC contractor"…
2. **Locations** — cities or states: "Austin, Texas", "Idaho, USA"…
3. **Maximum leads** — the run stops when it delivers this many (up to 1,000 per run).
4. **Minimum reviews** — e.g. 50+ Google reviews filters for established, active businesses with buying power.
5. **Dedup (optional)** — paste emails/domains to exclude, or give a URL to your CRM's CSV export. Every email, domain and phone number in it is excluded, so you only pay for businesses that are *new to you*.

### Why verified matters

Scraped lead lists typically bounce 10–40%. Bounces burn your sender reputation and get your domain blacklisted. Every email this Actor delivers passed a real-time SMTP mailbox check — your outreach lands.

### Quality report

Every run stores a `SUMMARY` in the key-value store — how many businesses were screened and exactly why the rest were rejected:

```json
{
  "delivered": 50,
  "places_found": 740,
  "below_min_reviews": 213,
  "no_website": 147,
  "no_email_found": 188,
  "email_verification_failed": 74,
  "excluded_by_dedupe": 62,
  "duplicate_place": 6
}
```

You see exactly what you paid for — and what you didn't pay for.

### FAQ

**What counts as a delivered lead?** A unique business with an SMTP-verified email that passed your filters and dedup. Everything else is free.

**Can I get leads not already in my CRM?** Yes — that's the dedupe input. Export your contacts to CSV, host it anywhere reachable by URL (e.g. a private S3/Drive link), and the run excludes every match by email, domain, and phone.

**What are catch-all emails?** Domains that accept mail for any address — deliverability can't be confirmed mailbox-by-mailbox. They're excluded by default; enable *Include catch-all emails* to receive them (marked `catch_all`).

**How fresh is the data?** Scraped live from Google Maps and the business's own website at run time. Nothing comes from a stale database.

***

*Only need email verification? Try our [Bulk Email Verifier](https://apify.com/leadproof/bulk-email-verifier) — $4.90 per 1,000 checks.*

# Actor input Schema

## `searchTerms` (type: `array`):

What kind of businesses to find, e.g. "dental clinic", "massage therapist", "HVAC contractor".

## `locations` (type: `array`):

Cities, regions or states to search, e.g. "Austin, Texas" or "Idaho, USA". One search per term per location.

## `maxLeads` (type: `integer`):

The run stops once this many verified leads are delivered. You pay only for delivered leads.

## `minReviews` (type: `integer`):

Only include businesses with at least this many Google reviews — a simple proxy for active, established businesses.

## `includeRisky` (type: `boolean`):

Catch-all domains accept mail for any address, so deliverability can't be confirmed mailbox-by-mailbox. Off = only fully verified (SMTP 'ok') emails are delivered.

## `excludeEmails` (type: `array`):

Leads whose email appears here are skipped — paste emails from your CRM to get only NEW contacts.

## `excludeDomains` (type: `array`):

Leads whose email or website domain appears here are skipped, e.g. "acmeclinic.com".

## `dedupeCsvUrl` (type: `string`):

Public or signed URL to a CSV/TXT export. All emails, domains and phone numbers found in it are excluded from delivery.

## `concurrency` (type: `integer`):

How many candidate websites are scraped in parallel.

## `mode` (type: `string`):

LeadProof internal runs can probe 100 businesses, project yield/margin, then scale the search size.

## `paidLeadTarget` (type: `integer`):

LeadProof internal target. Public users should use Maximum leads instead.

## `maxScreenedPlaces` (type: `integer`):

LeadProof internal safety cap for probe-then-scale fulfillment.

## `probePlaces` (type: `integer`):

Businesses to screen before deciding whether to scale.

## `targetGrossMargin` (type: `number`):

LeadProof internal margin floor before scaling.

## `salePerLeadUsd` (type: `number`):

LeadProof internal sale price per verified lead.

## Actor input object example

```json
{
  "searchTerms": [
    "dental clinic"
  ],
  "locations": [
    "Boise, Idaho"
  ],
  "maxLeads": 3,
  "minReviews": 5,
  "includeRisky": false,
  "concurrency": 10,
  "mode": "standard",
  "probePlaces": 100,
  "targetGrossMargin": 0.2
}
```

# 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 = {
    "searchTerms": [
        "dental clinic"
    ],
    "locations": [
        "Boise, Idaho"
    ],
    "maxLeads": 3,
    "minReviews": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadproof/google-maps-verified-leads").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 = {
    "searchTerms": ["dental clinic"],
    "locations": ["Boise, Idaho"],
    "maxLeads": 3,
    "minReviews": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("leadproof/google-maps-verified-leads").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 '{
  "searchTerms": [
    "dental clinic"
  ],
  "locations": [
    "Boise, Idaho"
  ],
  "maxLeads": 3,
  "minReviews": 5
}' |
apify call leadproof/google-maps-verified-leads --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ma1EWOiHUcvP2LGEU/builds/fNGEqb6MJs178aq3O/openapi.json
