# Google Maps Email Extractor & Lead Finder (`fetch_cat/google-maps-lead-finder`) Actor

Extract emails, phone numbers, and business contacts from Google Maps. Scrape any location or business category with website enrichment and contact page crawling.

- **URL**: https://apify.com/fetch\_cat/google-maps-lead-finder.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.56 / 1,000 lead extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Email Extractor & Lead Finder

Generate Google Maps business leads with public contact details, emails, phone numbers, websites, ratings, and location data for sales and market research.

### Google Maps lead generation and business contact data

**Google Maps Lead Finder** is a **Google Maps contact scraper** for **Google Maps business listings**. Search by keyword and location, then export **structured business leads** with **emails, phone numbers, ratings, reviews, and lead scores**. Use it as a **Google Maps leads scraper** for repeatable prospecting workflows. It enriches each business by visiting their website to extract **contact emails and social media links** — giving you ready-to-use **B2B lead lists** from any market worldwide.

### Why use Google Maps Lead Finder?

- **Complete contact data** — extracts phone, website, email, and social links in one run
- **Built-in lead scoring** — transparent 0–100 score ranks leads by outreach potential
- **Website enrichment** — automatically visits business homepages and contact pages to find emails and social profiles
- **Lead quality filters** — filter by minimum rating, require website, or require email to get only high-quality leads
- **Multi-location expansion** — combine keywords × locations for city-by-city market scans
- **Smart deduplication** — eliminates duplicate businesses across overlapping searches
- **Works worldwide** — supports 14 languages and 19 country targets for global prospecting

### Who is it for?

- **Sales teams** prospecting local businesses for outreach campaigns
- **Marketing agencies** building targeted client lists for their verticals
- **Real estate agents** finding local service providers and referral partners
- **Researchers** studying local business landscapes and market density
- **Recruiters** sourcing company contacts and hiring leads in specific cities
- **Entrepreneurs** doing competitive analysis and scouting new markets

### What data can you extract?

| Field | Example |
|---|---|
| `name` | Rescue Plumbing |
| `category` | Plumber |
| `address` | 3523 N Spaulding Ave, Chicago, IL 60618 |
| `city` | Chicago |
| `phone` | +1 773-799-8848 |
| `website` | https://www.rescueplumbing.com |
| `email` | info@rescueplumbing.com |
| `rating` | 4.9 |
| `reviewsCount` | 1284 |
| `leadScore` | 45 |
| `enrichment.socialLinks` | `{ "facebook": "...", "instagram": "..." }` |
| `googleMapsUrl` | Full Google Maps link |
| `scrapedAt` | 2026-02-28T12:00:00.000Z |

Plus: `placeId`, `fid`, `cid`, `categories`, `postalCode`, `countryCode`, `location` (lat/lng), `plusCode`, `businessStatus`, `priceLevel`, `openingHours`, `isOpen`, `mainPhotoUrl`, `searchQuery`, `searchLocation`, `dedupeKey`, `leadScoreBreakdown`, `emailVerification`, and the full `enrichment` object.

### Pricing

This Actor uses pay-per-event pricing:

- `start` is charged once when a valid run begins.
- `lead` is charged for each business lead saved to the dataset.
- `email-verified` is charged only when optional email verification is enabled and attempted.

See the live [Apify Pricing tab](https://apify.com/fetch_cat/google-maps-lead-finder/pricing) for current rates and plan discounts.

### How to scrape Google Maps leads

1. **Click "Start"** on the actor page or use the API.
2. **Enter search queries** — business keywords like `plumber`, `dentist pediatric`, or `yoga studio`.
3. **Add locations** (optional) — cities or regions like `Chicago, IL` or `Berlin, Germany`. Each query is combined with each location.
4. **Set max leads** — limit results to control cost and run time.
5. **Run and export** — download results as JSON, CSV, or Excel, or connect via API.

#### Example input

```json
{
  "searchQueries": ["plumber"],
  "locations": ["Chicago, IL"],
  "maxLeads": 5,
  "minRating": 4.0,
  "requireWebsite": true,
  "language": "en",
  "countryCode": "US",
  "includeWebsiteEnrichment": true
}
```

### Input recipes

**Local service leads:** use `searchQueries: ["plumber"]`, `locations: ["Chicago, IL"]`, and `maxLeads: 10`.

**Email-ready prospects:** add `requireEmail: true` and keep `includeWebsiteEnrichment: true` to return only businesses with a public email found on their website.

**Multi-city research:** provide several locations; the Actor searches every query/location combination and deduplicates overlapping businesses.

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchQueries` | `string[]` | required | Business keywords to search on Google Maps (e.g., "plumber", "dentist Berlin"). Each query becomes a separate Maps search. |
| `locations` | `string[]` | `[]` | Optional city or region names. When set, each query is combined with each location for comprehensive coverage. |
| `maxLeads` | `integer` | `100` | Maximum number of unique leads to return. Lower values reduce cost and run time. |
| `language` | `string` | `en` | Language for Google Maps results. Controls the language of returned business names and addresses. |
| `countryCode` | `string` | `US` | Country targeting for Google search. Helps return results relevant to the selected country. |
| `minRating` | `number` | — | Only include businesses with at least this Google rating (1.0–5.0). Leave empty to include all. |
| `requireWebsite` | `boolean` | `false` | Only include businesses that have a website URL listed on Google Maps. |
| `requireEmail` | `boolean` | `false` | Only include businesses where an email address was found (requires website enrichment). |
| `includeWebsiteEnrichment` | `boolean` | `true` | Visit each business website to extract emails and social media links. Disable to speed up runs when you only need basic listing data. |
| `enrichmentTimeoutSecs` | `integer` | `15` | Timeout in seconds when fetching business websites. Increase for slow-loading sites, decrease for faster runs. |
| `verifyEmails` | `boolean` | `false` | Opt-in email verification. When enabled, adds an `emailVerification` field with confidence score, MX status, provider detection, and disposable/role/free-provider flags. Free — no extra charge. |
| `verificationLevel` | `string` | `mx` | How deeply to verify each email. `format` — syntax only. `mx` — also checks DNS MX records (recommended). `smtp` — also attempts SMTP handshake (slowest; catch-all/Gmail/M365 results may be inconclusive). |
| `dedupeStrategy` | `string` | `placeIdAndAddress` | How to identify duplicate businesses. `placeId` uses Google's ID only; `placeIdAndAddress` also compares addresses for stricter matching. |
| `proxyConfiguration` | `object` | platform default | Apify proxy settings. Uses residential proxies by default for best results. |
| `debugMode` | `boolean` | `false` | Enable verbose logging for troubleshooting. Shows detailed parser diagnostics in the run log. |

### Output example

```json
{
  "placeId": "ChIJ0a3bMi0tDogRYzgJSKhi8pQ",
  "fid": "0x880e2d2d32db1ad1:0x94f262a4094933063",
  "cid": "10743905823605944419",
  "name": "Rescue Plumbing",
  "category": "Plumber",
  "categories": ["Plumber"],
  "address": "3523 N Spaulding Ave, Chicago, IL 60618",
  "city": "Chicago",
  "postalCode": "60618",
  "countryCode": "US",
  "location": { "lat": 41.9463, "lng": -87.7113 },
  "phone": "+1 773-799-8848",
  "website": "https://www.rescueplumbing.com",
  "rating": 4.9,
  "reviewsCount": 1284,
  "businessStatus": null,
  "priceLevel": null,
  "openingHours": ["Open · Closes 10 PM"],
  "isOpen": true,
  "plusCode": null,
  "mainPhotoUrl": null,
  "emailVerification": null,
  "googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ0a3bMi0tDogRYzgJSKhi8pQ",
  "searchQuery": "plumber",
  "searchLocation": "Chicago, IL",
  "dedupeKey": "ChIJ0a3bMi0tDogRYzgJSKhi8pQ|3523 n spaulding ave, chicago, il 60618",
  "leadScore": 45,
  "leadScoreBreakdown": {
    "ratingPotential": 5,
    "lowReviewOpportunity": 0,
    "hasWebsite": 0,
    "hasEmail": 20,
    "hasPhone": 10
  },
  "enrichment": {
    "homepageFetched": true,
    "emails": ["info@rescueplumbing.com"],
    "socialLinks": {
      "facebook": "https://www.facebook.com/rescueplumbing",
      "instagram": "https://www.instagram.com/rescueplumbing"
    },
    "contactPageHint": "https://www.rescueplumbing.com/contact"
  },
  "scrapedAt": "2026-02-28T12:00:00.000Z"
}
```

### Email verification (opt-in)

Set `verifyEmails: true` to add inline email verification to each lead. This is **free** — no extra charge per event.

When enabled, the output includes an `emailVerification` object for each lead that has an email:

```json
{
  "emailVerification": {
    "email": "info@rescueplumbing.com",
    "isValidFormat": true,
    "hasMxRecords": true,
    "isVerified": false,
    "confidenceScore": 35,
    "isDisposable": false,
    "isFreeProvider": false,
    "isRoleAccount": true,
    "provider": "google_workspace"
  }
}
```

#### Confidence score guide

| Score | Meaning |
|---|---|
| 0–20 | Invalid or very low quality (bad syntax, disposable) |
| 30–44 | Valid format, no MX records |
| 45 | MX records found — domain accepts mail |
| 60 | SMTP accepted but catch-all detected — cannot confirm individual mailbox |
| 95 | SMTP confirmed — mailbox exists (non-catch-all) |

**Note on SMTP level:** Gmail and Microsoft 365 often return inconclusive results for catch-all detection. `confidenceScore: 60` honestly reflects this ambiguity. Use `mx` (the default) for fast, reliable domain-level validation.

### Tips for best results

- **Use specific queries** — "dentist pediatric" works better than just "dentist" for targeted leads.
- **Add locations for city-level targeting** — combine queries with city names for cleaner geographic results.
- **Start small** — test with 5–10 leads before scaling to hundreds. It's cheaper and faster to iterate.
- **Keep enrichment enabled** — website enrichment finds emails and social links that Google Maps doesn't show.
- **Increase enrichment timeout for slow regions** — some international sites load slowly; try 25–30 seconds.
- **Use `placeIdAndAddress` dedup** (default) — catches duplicate listings that share a Place ID but have different addresses.
- **Check lead scores** — higher scores mean more outreach potential (missing website = opportunity, has email = actionable).
- **Export to CSV** for CRM import or use the API for automated pipelines.

### Integrations

Connect Google Maps Lead Finder with your existing tools and workflows:

- [**Google Sheets**](https://apify.com/integrations/google-sheets) — Automatically append new leads to a shared spreadsheet for your sales team
- [**Zapier**](https://apify.com/integrations/zapier) — Send new leads to HubSpot, Salesforce, or Mailchimp when a run completes
- [**Make**](https://apify.com/integrations/make) (formerly Integromat) — Build multi-step workflows: scrape leads, enrich emails, then push to your CRM
- [**Slack**](https://apify.com/integrations/slack) — Get notified when new leads are ready for review
- [**Webhooks**](https://docs.apify.com/platform/integrations/webhooks) — Send results directly to your own API endpoint for custom processing

See [all integrations](https://apify.com/integrations) for the full list.

### API usage

**Node.js**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('fetch_cat/google-maps-lead-finder').call({
  searchQueries: ['plumber'],
  locations: ['Chicago, IL'],
  maxLeads: 50,
  includeWebsiteEnrichment: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')

run = client.actor('fetch_cat/google-maps-lead-finder').call(run_input={
    'searchQueries': ['plumber'],
    'locations': ['Chicago, IL'],
    'maxLeads': 50,
    'includeWebsiteEnrichment': True,
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### Use with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-maps-lead-finder/runs?token=YOUR_API_TOKEN&waitForFinish=120" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQueries": ["plumber"],
    "locations": ["Chicago, IL"],
    "maxLeads": 50,
    "includeWebsiteEnrichment": true
  }'
```

### Use with AI agents via MCP

[Google Maps Lead Finder](https://apify.com/fetch_cat/google-maps-lead-finder) is available as a tool for AI assistants that support the [Model Context Protocol (MCP)](https://docs.apify.com/platform/integrations/mcp).

#### Setup for Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/google-maps-lead-finder"
```

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com?tools=fetch_cat/google-maps-lead-finder"
        }
    }
}
```

#### Example prompts

Once connected, try asking your AI assistant:

- "Find all dentists in Austin, TX with their phone numbers and websites"
- "Get all restaurants within 5 miles of Times Square with ratings above 4 stars"
- "Search Google Maps for plumbers in London and enrich with email addresses"

Learn more in the [Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp).

### FAQ

**How can I extract emails from Google Maps businesses?**
Enable `includeWebsiteEnrichment`. The Actor collects each public business website and extracts contact emails from the pages it visits.

**Can I export Google Maps leads through an API or MCP?**
Yes. Use the Apify API examples or MCP setup above to run searches and consume structured lead data from your application or AI assistant.

**How much does Google Maps lead extraction cost?**
Pricing is pay per event: a $0.005 run-start charge plus the per-lead tier shown above. Your Apify subscription tier determines the exact lead price.

**How many leads can I extract per run?**
There's no hard limit. Set `maxLeads` to control how many unique businesses you get. Typical runs extract 5–500 leads depending on market density.

**Does it extract email addresses?**
Yes. When `includeWebsiteEnrichment` is enabled (default), the actor visits each business website and extracts email addresses found on the homepage.

**What is the lead score?**
A 0–100 score based on the business profile. Businesses with lower ratings, fewer reviews, a website but no email, and a phone number score higher — they're better outreach targets.

**Can I search multiple cities in one run?**
Yes. Add multiple entries to the `locations` field. Each search query is combined with each location automatically.

**Does it work outside the US?**
Yes. The actor supports 14 languages and 19 country targets. Set the `language` and `countryCode` fields to match your target market.

**How fast is it?**
A typical run extracting 20 leads with enrichment takes 2–4 minutes. Speed depends on the number of leads, whether enrichment is enabled, and website response times.

**Can I use it with my CRM?**
Yes. Export data as CSV for direct import, or use the Apify API to send leads to any CRM, Google Sheets, or automation platform.

**What's the difference between the two dedupe strategies?**
`placeId` deduplicates by Google's unique Place ID only. `placeIdAndAddress` (default) also compares normalized addresses, catching edge cases where the same business has different Place IDs.

**Why am I getting fewer leads than expected?**
Google Maps results depend on your keyword specificity and location. Try broader terms (e.g., "restaurant" instead of "italian restaurant") or larger regions. Some areas simply have fewer businesses listed.

**Why are some emails missing even with enrichment enabled?**
Not all business websites publish email addresses. Some use contact forms instead. The actor extracts emails from the homepage only -- it does not fill out forms or crawl deep into the site. Try pairing results with [Email Finder](https://apify.com/fetch_cat/email-finder) for better email coverage.

**The run is slow -- how can I speed it up?**
Disable `includeWebsiteEnrichment` if you only need Google Maps listing data. Reduce `enrichmentTimeoutSecs` to skip slow-loading sites faster. Lower `maxLeads` to finish sooner.

**Can I run this on a schedule?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run the actor automatically on a daily, weekly, or custom cadence. Combine with a Google Sheets integration to append new leads to a shared spreadsheet.

### When to use Website Contact Finder

This Actor is the discovery-first option for category × location searches and includes website enrichment. Use [Website Contact Finder](https://apify.com/fetch_cat/website-contact-finder) when you already have a domain list or need a bounded crawl with contact source URLs, crawl diagnostics, and optional MX checks.

### Related tools

- [Google Maps Places Scraper](https://apify.com/fetch_cat/google-maps-places-scraper) — export public Google Maps place records without website enrichment
- [Email Enrichment](https://apify.com/fetch_cat/email-enrichment) — enrich email addresses with company data, social profiles, and verification
- [Email Finder](https://apify.com/fetch_cat/email-finder) — find email addresses for any person or company
- [Website Contact Finder](https://apify.com/fetch_cat/website-contact-finder) — extract contact information from any website
- [Multi-Source Lead Enrichment](https://apify.com/fetch_cat/multi-source-lead-enrichment) — enrich leads with data from multiple sources

### Support

Questions or unexpected results? Open an issue from the Actor's **Issues** tab with your public input and run ID. Do not include private credentials, cookies, or personal data.

# Actor input Schema

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

Business keywords to search on Google Maps (e.g., "plumber", "dentist Berlin"). Each query becomes a separate Maps search.

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

Optional city or region names (e.g., "Chicago, IL", "Berlin, Germany"). When set, each query is combined with each location for comprehensive geographic coverage.

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

Maximum number of unique leads to return. Lower values reduce cost and run time. Each lead triggers a pay-per-event charge.

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

Language for Google Maps results. Controls the language of returned business names, categories, and addresses.

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

Country targeting for Google search (gl parameter). Helps return results relevant to the selected country.

## `minRating` (type: `number`):

Only include businesses with at least this Google rating (1.0–5.0). Leave empty to include all.

## `requireWebsite` (type: `boolean`):

Only include businesses that have a website URL listed on Google Maps.

## `requireEmail` (type: `boolean`):

Only include businesses where an email address was found (requires website enrichment enabled).

## `includeWebsiteEnrichment` (type: `boolean`):

Visit each business website to extract emails and social media links. Disable to speed up runs when you only need basic listing data.

## `enrichmentTimeoutSecs` (type: `integer`):

Timeout in seconds when fetching business websites. Increase for slow-loading sites in some regions, decrease for faster runs.

## `verifyEmails` (type: `boolean`):

When enabled, each extracted email is verified before being included in the output. Adds an `emailVerification` field with format validity, MX records, delivery confidence, and provider detection. Free — no additional charge per event.

## `verificationLevel` (type: `string`):

How deeply to verify each email. `format` — syntax check only (fastest, no network). `mx` — also checks MX DNS records (recommended). `smtp` — also attempts SMTP handshake to confirm mailbox existence (slowest; catch-all/Gmail/M365 results are inconclusive).

## `dedupeStrategy` (type: `string`):

How to identify duplicate businesses across query/location combinations.

## `proxyConfiguration` (type: `object`):

Apify proxy configuration. Defaults to datacenter proxies, which are reliable for Google Maps and keep run costs low. Switch to residential only if you see blocks for your specific queries.

## `debugMode` (type: `boolean`):

Enable verbose logging for troubleshooting. Shows detailed parser diagnostics in the run log.

## Actor input object example

```json
{
  "searchQueries": [
    "plumber"
  ],
  "locations": [
    "Chicago, IL"
  ],
  "maxLeads": 2,
  "language": "en",
  "countryCode": "US",
  "requireWebsite": false,
  "requireEmail": false,
  "includeWebsiteEnrichment": true,
  "enrichmentTimeoutSecs": 12,
  "verifyEmails": false,
  "verificationLevel": "mx",
  "dedupeStrategy": "placeIdAndAddress",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugMode": false
}
```

# 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"
    ],
    "locations": [
        "Chicago, IL"
    ],
    "maxLeads": 2,
    "language": "en",
    "countryCode": "US",
    "includeWebsiteEnrichment": false,
    "enrichmentTimeoutSecs": 12,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/google-maps-lead-finder").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"],
    "locations": ["Chicago, IL"],
    "maxLeads": 2,
    "language": "en",
    "countryCode": "US",
    "includeWebsiteEnrichment": False,
    "enrichmentTimeoutSecs": 12,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/google-maps-lead-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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"
  ],
  "locations": [
    "Chicago, IL"
  ],
  "maxLeads": 2,
  "language": "en",
  "countryCode": "US",
  "includeWebsiteEnrichment": false,
  "enrichmentTimeoutSecs": 12,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call fetch_cat/google-maps-lead-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fetch_cat/google-maps-lead-finder"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/693xxxk771dflO9rF/builds/8tGXovLHkjhleuPKA/openapi.json
