# Google Maps & Website Email & Contact Extractor (`folksy_fire/google-maps-website-email-contact-extractor`) Actor

Extract emails, phone numbers, and social media links from Google Maps businesses and any website. Search by keyword + location or feed URLs directly. Checks multiple pages per site including /contact and /about for maximum email coverage

- **URL**: https://apify.com/folksy\_fire/google-maps-website-email-contact-extractor.md
- **Developed by:** [J](https://apify.com/folksy_fire) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 contact 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

### What does Business Contact Extractor do?

**Business Contact Extractor** finds **emails, phone numbers, and social media links** from any business website. Feed it URLs directly or search Google Maps by keyword and location to build targeted lead lists. Run it via the Apify platform with full API access, scheduling, integrations, and proxy rotation.

### Why use Business Contact Extractor?

- **Lead generation**: Build email lists of businesses in any city or industry
- **Sales prospecting**: Enrich your CRM with verified contact details
- **Market research**: Map the competitive landscape with business contact data
- **Outreach campaigns**: Find decision-maker emails for cold outreach

### How to use Business Contact Extractor

1. Open the Actor in Apify Console and click **Try for free**
2. Choose your mode: enter website URLs directly, or enter a search keyword + location for Google Maps search
3. Click **Run** and wait for results
4. Download your data as JSON, CSV, Excel, or HTML from the Dataset tab

### Input

#### Extract contacts from URLs
```json
{
    "urls": ["https://example-dentist.com", "https://another-business.com"],
    "checkSubpages": true
}
````

#### Search Google Maps and extract contacts

```json
{
    "query": "dentist",
    "location": "Austin, TX",
    "maxResults": 50,
    "hasEmailOnly": true,
    "minRating": 4.0,
    "googleApiKey": "YOUR_GOOGLE_PLACES_API_KEY"
}
```

### Output

```json
{
    "name": "Example Dental Office",
    "address": "123 Main St, Austin, TX 78701",
    "phone": "(512) 555-0123",
    "website": "https://example-dental.com",
    "rating": 4.7,
    "review_count": 203,
    "emails": ["info@example-dental.com", "appointments@example-dental.com"],
    "socials": {
        "facebook": ["https://www.facebook.com/exampledental"],
        "instagram": ["https://www.instagram.com/exampledental"]
    }
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data fields

| Field | Description |
|-------|-------------|
| name | Business name |
| address | Full street address |
| phone | Phone number |
| website | Business website URL |
| rating | Google Maps star rating (1.0-5.0) |
| review\_count | Number of Google reviews |
| emails | Array of extracted email addresses |
| socials | Object with social media profile URLs |
| latitude | GPS latitude |
| longitude | GPS longitude |
| place\_id | Google Maps place ID |

### Pricing

- **$3.00 per 1,000 website contact extractions** ($0.003 per site)
- **$4.00 per 1,000 Google Maps results with contact enrichment** ($0.004 per result)

No setup fees. No subscriptions. The Apify free tier gives you $5 in credits to test.

### Tips

- **Enable subpage checking** for best email coverage. The extractor checks /contact, /about, /about-us, /team, /impressum, and /kontakt pages in addition to the homepage.
- **Use a Google Places API key** for Maps search. Without one, the Maps search feature cannot return results. You can get a key from the Google Cloud Console.
- **Filter by email** using the `hasEmailOnly` option to only get businesses where at least one email was found.
- **Filter by rating** to focus on established businesses.

### FAQ and support

This Actor extracts only publicly available contact information from business websites. It does not bypass any login walls, CAPTCHAs, or access restricted data.

If you encounter issues, please open a ticket on the **Issues** tab. Response time is typically under 24 hours.

Need a custom solution? Contact us through the Issues tab.

### MCP Server

This Actor works as an MCP server for AI agents. Connect it to Claude, Cursor, or any MCP client:

```json
{
    "mcpServers": {
        "business-contacts": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://YOUR_USERNAME--business-contact-extractor.apify.actor/mcp",
                "--header",
                "Authorization: Bearer YOUR_APIFY_TOKEN"
            ]
        }
    }
}
```

Three tools are exposed:

- `extract_contacts_from_url` - Single URL extraction
- `extract_contacts_bulk` - Batch extraction (up to 500 URLs)
- `search_maps_and_extract_contacts` - Google Maps search + extraction

# Actor input Schema

## `urls` (type: `array`):

List of website URLs to extract contacts from. Use this OR the Google Maps search fields below.

## `query` (type: `string`):

Business type or keyword (e.g., 'dentist', 'plumber', 'italian restaurant')

## `location` (type: `string`):

City or area to search (e.g., 'Austin, TX', 'London, UK')

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

Maximum number of businesses to return

## `checkSubpages` (type: `boolean`):

Check /contact, /about, /about-us pages for more emails. Slower but better results.

## `hasEmailOnly` (type: `boolean`):

Filter out businesses where no email was found.

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

Only return businesses with at least this rating (1.0-5.0)

## `googleApiKey` (type: `string`):

Providing a Google Places API key gives much better and more reliable search results.

## Actor input object example

```json
{
  "maxResults": 20,
  "checkSubpages": true,
  "hasEmailOnly": 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("folksy_fire/google-maps-website-email-contact-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("folksy_fire/google-maps-website-email-contact-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 '{}' |
apify call folksy_fire/google-maps-website-email-contact-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps & Website Email & Contact Extractor",
        "description": "Extract emails, phone numbers, and social media links from Google Maps businesses and any website. Search by keyword + location or feed URLs directly. Checks multiple pages per site including /contact and /about for maximum email coverage",
        "version": "0.0",
        "x-build-id": "pi3AihJf8jKcQB6v8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/folksy_fire~google-maps-website-email-contact-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-folksy_fire-google-maps-website-email-contact-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/folksy_fire~google-maps-website-email-contact-extractor/runs": {
            "post": {
                "operationId": "runs-sync-folksy_fire-google-maps-website-email-contact-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/folksy_fire~google-maps-website-email-contact-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-folksy_fire-google-maps-website-email-contact-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",
                "properties": {
                    "urls": {
                        "title": "Website URLs",
                        "type": "array",
                        "description": "List of website URLs to extract contacts from. Use this OR the Google Maps search fields below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "query": {
                        "title": "Google Maps Search Query",
                        "type": "string",
                        "description": "Business type or keyword (e.g., 'dentist', 'plumber', 'italian restaurant')"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City or area to search (e.g., 'Austin, TX', 'London, UK')"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of businesses to return",
                        "default": 20
                    },
                    "checkSubpages": {
                        "title": "Check Subpages",
                        "type": "boolean",
                        "description": "Check /contact, /about, /about-us pages for more emails. Slower but better results.",
                        "default": true
                    },
                    "hasEmailOnly": {
                        "title": "Only Return Businesses with Emails",
                        "type": "boolean",
                        "description": "Filter out businesses where no email was found.",
                        "default": false
                    },
                    "minRating": {
                        "title": "Minimum Rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only return businesses with at least this rating (1.0-5.0)"
                    },
                    "googleApiKey": {
                        "title": "Google Places API Key (Optional)",
                        "type": "string",
                        "description": "Providing a Google Places API key gives much better and more reliable search results."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
