# Yelp Email Scraper - Bulk Keywords, Decodes Hidden Emails (`code-beat/yelp-email-scraper-ultra-fast-and-precise`) Actor

🍽️ Yelp Email Scraper extracts local business and restaurant emails in bulk by keyword. 🔓 Decodes obfuscated addresses with domain filtering. 🏙️ Great for local marketing agencies, POS vendors & SMB lead generation.

- **URL**: https://apify.com/code-beat/yelp-email-scraper-ultra-fast-and-precise.md
- **Developed by:** [Code Beat](https://apify.com/code-beat) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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 fast, practical way to collect publicly available email addresses from Yelp using keywords and filters you choose. It’s ideal for marketers, data analysts, and researchers who need a Yelp email extractor or Yelp lead generation tool without spending hours on manual browsing. 🚀

### What Does Yelp Email Scraper Do? 🤖

Yelp Email Scraper scrapes publicly available Yelp data and extracts email addresses that match your chosen keywords, location, and email-domain filters. During a run, it collects profile information such as the page title, description, profile URL, and email, then saves each match to your dataset in real time. This makes it a useful Yelp contact scraper, Yelp business email extractor, and Yelp data scraper for scalable prospecting. Instead of checking pages one by one, you can automate Yelp email collection and export structured leads much faster. ✅

### What Can Yelp Email Scraper Extract? 📊

This actor captures a focused set of lead data from publicly available Yelp profiles. Each record is designed to help you review, filter, and export contacts with minimal cleanup. It works well for building a Yelp business directory scraper workflow, identifying local prospects, and supporting outreach research.

| Data Type | Field Name | Description |
|---|---|---|
| Discovery | `keyword` | The keyword that surfaced the result |
| Identity | `title` | The page title of the Yelp result |
| Context | `description` | The visible description text collected from the page |
| Navigation | `url` | Direct link to the Yelp page |
| Contact | `email` | Email address found in the publicly available content |

#### Key Features of Yelp Email Scraper ⚡

- ✅ **Keyword-Driven Discovery:** Uses your chosen keywords to find relevant Yelp leads and make the search more precise.
- 🌍 **Location Filter:** Narrow results by location when you want a more local Yelp business scraper workflow.
- 📧 **Custom Email Domains:** Focus on domains like `@gmail.com` and `@yahoo.com` to better match your prospecting goals.
- 🔄 **Built-In Reliability:** Includes retries and fallbacks for more resilient public web data collection.
- 📊 **Structured Dataset Output:** Saves results as clean records that are easy to filter, export, or analyze.
- 💾 **Real-Time Saving:** Pushes results to the dataset as they are found, so you don’t lose progress during long runs.
- ⚙️ **Configurable Limits:** Use `maxEmails` to control how many results are collected and manage run costs.

### How to Use Yelp Email Scraper 🚀

1. **Open the Actor** — Start the Yelp Email Scraper in Apify.
2. **Add Keywords** — Enter one or more keywords to target the type of Yelp businesses or contacts you want.
3. **Set a Location** — Optionally narrow your results with a location filter.
4. **Choose Email Domains** — Add custom domains if you want more targeted email results.
5. **Set the Result Limit** — Define `maxEmails` to control the size of the run.
6. **Run the Actor** — Start the scraping job and monitor progress in the logs.
7. **Export the Dataset** — Download your results from the dataset in JSON or CSV format.

No coding required. 🙌

### Yelp Email Scraper Output Format 📦

The actor saves scraped leads into a structured dataset with five fields in a fixed order. Here’s a realistic example of what one output row looks like.

#### Output Example

```json
{
  "keyword": "founder",
  "title": "Green Leaf Bakery",
  "description": "Artisan bakery and coffee shop serving fresh pastries in downtown Austin.",
  "url": "https://www.yelp.com/biz/green-leaf-bakery-austin",
  "email": "hello@greenleafbakery.com"
}
```

#### Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that matched the result |
| `title` | Title | text | The page title of the Yelp listing |
| `description` | Description | text | The visible description text from the result |
| `url` | Url | link | Direct link to the Yelp page |
| `email` | Email | text | Email address extracted from the publicly available content |

### 🎯 Use Cases of Yelp Email Scraper

**B2B Lead Generation:** Build targeted lists of Yelp business contact data for outreach campaigns, sales prospecting, and partner discovery. This is especially useful when you need a Yelp leads scraper for specific industries or job roles.

**Email Marketing Campaigns:** Gather public business emails for newsletters, promotions, and follow-up outreach. A Yelp email finder can help you source contacts faster than manual research.

**Local Market Research:** Use the Yelp business listing scraper workflow to map businesses by keyword and location, helping you understand niche markets and competitor clusters.

**CRM Enrichment:** Add new business names, website links, and email addresses to your CRM records for cleaner segmentation and better contact coverage.

**Research and Data Analysis:** Study public business listings, descriptions, and contact patterns to support regional, vertical, or category-based analysis.

### How Much Will Yelp Email Scraper Cost You? 💰

Pricing depends on your Apify usage and how much data you choose to collect. This actor uses the `maxEmails` limit to help you control run size and keep spending predictable. If you’re testing a Yelp prospecting tool for the first time, start with a smaller limit and increase it only when you’re happy with the results. You can also monitor usage in the Apify Console while the actor runs. 💡

### Is It Legal to Scrape Yelp? ⚖️

This actor collects only publicly available data from Yelp. It does not require login access or private account data. As with any public web data tool, you are responsible for following applicable laws, platform terms, and anti-spam rules in your region. Use the results for legitimate research, marketing, or lead generation purposes. If you have concerns or need help, contact <codebeatapi@gmail.com>. ✅

### Yelp Email Scraper Input Parameters 📋

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager", "founder"]` | One or more keywords or queries used to find relevant Yelp results. |
| `location` | String | No | `""` | A location filter that narrows search results to a specific area. |
| `customDomains` | Array | No | `["@gmail.com", "@yahoo.com"]` | Email domains to match when collecting addresses. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect before the actor stops. |

### During the Actor Run ⏱️

While the actor is running, you can expect live log updates in Apify Console showing progress across keywords and domain filters. Results are saved to the dataset as they are found, so you can review them before the run ends. Larger searches or higher limits may take longer, especially when you use broad keywords or multiple domain filters. If you don’t get many results, try related terms or widen the location filter. 🔍

### Final Note ✉️

Start collecting Yelp business contact data in minutes with the Yelp Email Scraper — no manual searching, no repetitive copying, just structured leads ready for action. Questions or feedback? Reach out at <codebeatapi@gmail.com>. 🚀

### FAQ — Yelp Email Scraper ❓

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

The actor uses your keywords, location filter, and email-domain filters to find relevant publicly available Yelp content, then extracts email addresses that appear in that data. It returns only email addresses that are visible in public sources.

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

You can scrape public Yelp results that contain an email address in the visible content. If a result does not include a publicly available email, it will not produce an email output.

#### Why use a Yelp business email extractor instead of manual search?

A Yelp business email extractor saves time by automating discovery, filtering, and dataset export. Instead of checking listings one by one, you get structured results you can review and reuse quickly.

#### Can I use Yelp Email Scraper for local business prospecting?

Yes. The location filter makes it a strong Yelp local business scraper for city-level or regional prospecting, especially when you want nearby leads for outreach or research.

#### How much does Yelp Email Scraper cost to use?

The actor is designed to help you control run size with `maxEmails`, so you can keep usage predictable. For exact pricing and platform usage details, check your Apify account and dataset activity during a run.

#### Is Yelp Email Scraper good for lead generation?

Yes. It’s built as a Yelp lead generation scraper for marketers, agencies, and researchers who want public contact data in a structured format that’s easy to export and analyze.

#### What makes this Yelp contact extractor useful for research?

It gives you keyword-based discovery, location filtering, and clean output fields, which makes it useful for comparing business categories, tracking public contact patterns, or building niche datasets.

#### How do I get support for Yelp Email Scraper?

For support, feature requests, or feedback, contact <codebeatapi@gmail.com>.

### Country & Time Targeting

Both filters are applied to the Google query itself, so they shape which pages
the dork is answered from rather than filtering after the fact.

**Target Country** - runs the search as if from that country (`gl`). Turn on
**Strict country filter** to additionally restrict results to pages Google
attributes to it (`cr=countryXX`); that is much tighter and returns noticeably
fewer results. Leave the country on *Global (no country filter)* for worldwide
results.

**Result Language** - restricts results to a single language (`hl` + `lr`).

**Time Range** - limits results to a publication window: past hour, 24 hours,
week, month, year, or an explicit *Custom range* using **Custom range: from** /
**to** in `YYYY-MM-DD` form. A page Google indexed last week is far more likely
to carry a live mailbox than one it last saw five years ago.

Selecting *Custom range* without either date falls back to no time filter rather
than searching all of time by accident.

# Actor input Schema

## `scrapeMode` (type: `string`):

Find New Emails (default) searches Airbnb by keyword. Clean My List skips searching entirely and instead runs the emails you paste into Email List (below) through the same deliverability checks.

## `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

## `emailList` (type: `array`):

Paste the emails you want checked for deliverability. Only used when Scrape Mode is set to "Clean My List".

## `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.

## `verificationMode` (type: `string`):

Quick Check (default) validates syntax and MX records only - fast, no added latency. Deep Check additionally flags disposable-domain addresses and checks each domain against a public spam blocklist (Spamhaus DBL). Off skips validation entirely.

## `minQualityScore` (type: `number`):

Drop any contact whose quality score (0.0-1.0) falls below this. Leave at 0 for no filter.

## `excludeCatchAll` (type: `boolean`):

Drop contacts on domains confirmed to accept mail for any address (only applies when that signal is available).

## `requireMxValid` (type: `boolean`):

Drop any contact whose domain has no valid mail server (MX record).

## `targetCountry` (type: `string`):

Ask Google to answer as if searching from this country. Leave on "Global (no country filter)" for worldwide results.

## `strictCountry` (type: `boolean`):

Restrict results to pages Google attributes to the target country (cr=countryXX), instead of only preferring them. Much tighter targeting, noticeably fewer results.

## `searchLanguage` (type: `string`):

Restrict results to one language. Leave on "Any language" for no filter.

## `timeRange` (type: `string`):

Only return pages Google indexed within this window. Recent pages are more likely to hold a mailbox that still works.

## `customDateFrom` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## `customDateTo` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## Actor input object example

```json
{
  "scrapeMode": "Find New Emails",
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "emailList": [],
  "maxEmails": 20,
  "verificationMode": "Quick Check",
  "minQualityScore": 0,
  "excludeCatchAll": false,
  "requireMxValid": false,
  "targetCountry": "Global (no country filter)",
  "strictCountry": false,
  "searchLanguage": "",
  "timeRange": "Any time",
  "customDateFrom": "",
  "customDateTo": ""
}
```

# 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"
    ],
    "emailList": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("code-beat/yelp-email-scraper-ultra-fast-and-precise").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",
    ],
    "emailList": [],
}

# Run the Actor and wait for it to finish
run = client.actor("code-beat/yelp-email-scraper-ultra-fast-and-precise").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"
  ],
  "emailList": []
}' |
apify call code-beat/yelp-email-scraper-ultra-fast-and-precise --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,code-beat/yelp-email-scraper-ultra-fast-and-precise"
        }
    }
}

```

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/CU7hIOmhdVDjqq7pO/builds/tOrKg0Sp8jGpbI4jZ/openapi.json
