# Yelp Email Scraper - Domain Filter & Deduplication (`insightflow/yelp-email-scraper-powerful-and-intelligent`) Actor

🍽️ Yelp Email Scraper — turn Yelp searches into a clean local business email list. Filter by keyword, location and domain, merge aliases and decode hidden addresses. 🏙️ For local marketing agencies & POS vendors.

- **URL**: https://apify.com/insightflow/yelp-email-scraper-powerful-and-intelligent.md
- **Developed by:** [InsightFlow](https://apify.com/insightflow) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 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/actors/running/actors-in-store.md#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

### Yelp Email Scraper

**Yelp Email Scraper** is a practical email scraper for turning public Yelp business directory data into usable business leads fast 📬. It helps marketers, data analysts, and researchers find local business contacts, extract contact information, and streamline lead generation without hours of manual web scraping. If you need scalable data extraction for prospecting or sales outreach, this automation tool is built for speed and ROI.

### What is Yelp Email Scraper? 🔍

**Yelp Email Scraper** is an Apify actor that collects public email addresses from Yelp using the keywords and filters you provide. It’s designed to reduce manual research by turning publicly available Yelp data into structured leads you can use for prospecting, CRM enrichment, and outreach. Instead of checking listings one by one, this Yelp contact scraper automates the process and saves time at scale.

It’s a useful Yelp email finder for marketers, recruiters, sales teams, and analysts who want cleaner business leads with less repetitive work. By combining keywords, optional location filtering, and domain filters, Yelp Email Scraper helps you build targeted lists of local business contacts from public web data.

### What Data Does Yelp Email Scraper Collect? 📊

This Yelp data extraction actor captures the core fields needed for lead generation and contact extraction. Each record includes the keyword that surfaced the result, the listing title, descriptive context, the direct URL, and the email address found in publicly available sources.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Contact | `email` | Public email address associated with the Yelp result |
| Identity | `title` | Listing or profile title |
| Context | `description` | Public descriptive text from the result |
| Discovery | `keyword` | Keyword used to find the result |
| Navigation | `url` | Direct link to the Yelp result |

### What Do Results from Yelp Email Scraper Look Like? 👀

Each result is saved as a structured JSON record in your Apify dataset. Here’s a realistic example of what a scraped lead can look like:

```json
{
  "keyword": "manager",
  "title": "Sunset Dental Group",
  "description": "Family dentistry in San Diego, CA. Contact our office for appointments and insurance questions.",
  "url": "https://www.yelp.com/biz/sunset-dental-group-san-diego",
  "email": "info@sunsetdentalgroup.com"
}
```

After the run, you can export your results in JSON or CSV from the Apify Console.

#### Core Features: Yelp Email Scraper ⚡

| Feature | Benefit |
|---|---|
| ✅ **Keyword-Driven Targeting** | Find relevant Yelp business leads using the terms that match your niche |
| ✅ **Location Filter** | Narrow results by location when you want more local business contacts |
| ✅ **Custom Domain Filter** | Focus on emails from specific domains such as `@gmail.com` or `@yahoo.com` |
| ✅ **Configurable Result Cap** | Use `maxEmails` to control run size and manage costs |
| ✅ **Built-In Proxy Support** | Helps keep scraping reliable across larger runs |
| ✅ **Real-Time Data Saving** | Results are saved as they’re found, reducing the risk of losing progress |
| ✅ **Structured Dataset Output** | Clean fields make it easy to use the data in CRM tools or spreadsheets |
| ✅ **Public Data Only** | Works with publicly available Yelp data for straightforward contact extraction |

### Getting Started with Yelp Email Scraper 🚀

1. **Open Apify Store** — Go to [apify.com/store](https://apify.com/store) and search for Yelp Email Scraper.
2. **Click Try for Free** — Sign in or create an Apify account to launch the actor.
3. **Open the Input Tab** — Enter your keywords and optional filters.
4. **Add Keywords** — Use terms that match the businesses or roles you want to reach.
5. **Set Optional Filters** — Add a location and/or custom email domains if needed.
6. **Cap Your Results** — Set `maxEmails` to control the size of your run.
7. **Click Start** — Run the actor and monitor progress in the logs.
8. **Access Your Data** — Open the dataset to preview or export your leads.

No coding required — it’s a simple way to automate business directory scraping and contact extraction at scale.

### Ways to Use Yelp Email Scraper 💡

- 🎯 **B2B Lead Generation** — Build targeted lists of local business contacts for sales outreach
- 📣 **Email Marketing** — Collect public emails for newsletters, campaigns, and follow-ups
- 🤝 **Prospecting** — Find businesses and decision-makers faster than manual research
- 🔬 **Market Research** — Study business directories by keyword and location
- 📊 **CRM Enrichment** — Add public contact details to your existing lead database
- ⚙️ **Automation Workflows** — Feed structured Yelp data into your existing web scraping or data extraction pipeline

#### Input Parameters — Yelp Email Scraper

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | Yes | `["manager","founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location used to filter search results. Leave it empty if you want broader coverage. |
| `customDomains` | Array | No | `["@gmail.com","@yahoo.com"]` | Email domains to look for, such as personal or company domains. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect before the run stops. |

#### Output Parameters — Yelp Email Scraper

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that produced the result. |
| `title` | Title | text | The title of the Yelp listing or profile. |
| `description` | Description | text | Public description text attached to the result. |
| `url` | Url | link | Direct link to the Yelp result. |
| `email` | Email | text | Public email address found for that result. |

### Why Choose Yelp Email Scraper? 🏆

If you need reliable business leads from Yelp, this actor gives you a clean mix of speed, structure, and practicality. It’s built for public web data, supports built-in proxy support for more stable runs, and keeps your output organized for fast CRM import. For marketers and researchers, that means less manual work and better ROI from prospecting and sales outreach. If you need help or custom support, reach out at <insightflowofficial@gmail.com>.

### How Many Results Can You Scrape? 📈

You can set `maxEmails` anywhere from 1 to 10,000. The number of results you actually get depends on how many Yelp listings match your keywords and whether those listings include public email addresses. Larger runs may take longer, and you can extend the timeout in Run Options if needed.

### Legal Guidelines for Scraping Yelp ⚖️

Yelp Email Scraper collects only publicly available data. It does not access private data, password-protected pages, or restricted accounts. You are responsible for using the results in line with applicable laws, including GDPR, CCPA, and spam regulations, as well as Yelp’s terms of service. Use the data for legitimate business purposes only. For data removal requests, contact <insightflowofficial@gmail.com>.

### FAQ — Yelp Email Scraper ❓

#### How does Yelp Email Scraper collect emails?

Yelp Email Scraper uses the keywords and filters you provide to identify relevant Yelp results, then extracts public email addresses and related listing details from publicly available sources.

#### What kind of Yelp results can I scrape?

You can scrape public Yelp business listings that expose an email address in their visible listing content or related public information. Results without public contact details may not produce an email.

#### Why use Yelp Email Scraper for lead generation?

It speeds up business leads collection by automating contact extraction from Yelp, making it easier to support sales outreach, market research, and CRM enrichment.

#### Can I use location filtering?

Yes. The `location` input lets you narrow your search results to a specific place when you want more local business contacts.

#### How do custom email domains help?

The `customDomains` input helps you focus on the email domains you care about, such as personal inboxes or company addresses, which can improve lead quality for B2B leads.

#### How does `maxEmails` work?

`maxEmails` sets the maximum number of emails the actor will collect in one run. Once that limit is reached, the scraper stops.

#### What if I get fewer results than expected?

Try broader keywords, add related terms, or include more email domains. In some niches, fewer Yelp listings publish public email addresses, so result volume can vary.

#### Who should use this automation tool?

It’s a strong fit for marketers, data teams, researchers, and anyone doing web scraping for prospecting, data extraction, or outreach.

### Conclusion 🏁

**Yelp Email Scraper** is a fast, structured way to extract public emails from Yelp and turn them into usable business leads. Whether you’re building contact lists, improving sales outreach, or running research at scale, it helps you save time and work more efficiently.

### 🆘 Support & Feedback

Have a question or feature request for Yelp Email Scraper?

Please contact <insightflowofficial@gmail.com> for support, custom solutions, or feedback.

### MX Lookup

Every address is checked at the DNS level: the actor resolves the mail domain's
MX records and reports what it found.

| Field | Meaning |
| --- | --- |
| `mxFound` | `true` when the domain publishes at least one mail server |
| `mxHost` | The lowest-preference (primary) mail server |
| `mxRecords` | Every MX record found, in preference order |
| `mxProvider` | Who runs the mail: Google Workspace, Microsoft 365, Zoho, Proton, ... |
| `mxStatus` | `found`, `no_records`, `no_such_domain`, `timeout`, `error`, or `skipped` |

**Inputs**

- **MX Lookup** - turn the check on or off (default: on).
- **Only keep contacts whose domain has an MX record** - drop unreachable domains.
  Only a definite negative (`no_records` / `no_such_domain`) drops a contact; a
  timeout or resolver error is treated as unknown and the lead is kept.
- **MX lookup timeout (seconds)** - per-domain DNS budget, 1-15s.

This is a domain-level check. It confirms the domain can receive mail; it does
not verify that an individual mailbox exists.

# Actor input Schema

## `keywords` (type: `array`):

A list of keywords or queries to search for.

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

Location to filter search results.

## `customDomains` (type: `array`):

List of custom email domains

## `maxEmails` (type: `integer`):

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `minLeadScore` (type: `integer`):

Drop any contact whose Lead Score (0-100) falls below this. Leave at 0 for no filter.

## `mxLookup` (type: `boolean`):

Resolve each address's domain to its mail servers. Adds the resolved MX hosts and the mail provider (Google Workspace, Microsoft 365, ...) to every result, and feeds the Lead Score. DNS-level only - it confirms the domain can receive mail, not that the individual mailbox exists.

## `requireMxRecord` (type: `boolean`):

Drop any contact whose domain provably accepts no mail. A lookup that times out or errors is treated as unknown and kept, so a DNS hiccup never silently deletes good leads.

## `mxTimeoutSecs` (type: `integer`):

How long to wait for each DNS answer. Clamped to 1-15 seconds.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "minLeadScore": 0,
  "mxLookup": true,
  "requireMxRecord": false,
  "mxTimeoutSecs": 3
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "manager",
        "founder"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("insightflow/yelp-email-scraper-powerful-and-intelligent").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 = {
    "keywords": [
        "manager",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("insightflow/yelp-email-scraper-powerful-and-intelligent").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 '{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ]
}' |
apify call insightflow/yelp-email-scraper-powerful-and-intelligent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insightflow/yelp-email-scraper-powerful-and-intelligent"
        }
    }
}

```

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/DN3ZLPOGtpFebxSeA/builds/klXcPGhffKEwmyyjU/openapi.json
