# Yelp Email Scraper - Keyword & Location Targeting (`scrapido/yelp-email-scraper`) Actor

🍽️ Yelp Email Scraper finds local business and restaurant emails by keyword and location. 🔓 Domain filters plus decoding and duplicate handling. 📤 Export Yelp leads to CSV, JSON or Excel for local marketing agencies.

- **URL**: https://apify.com/scrapido/yelp-email-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (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 $2.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** extracts email addresses from Yelp profiles based on your chosen keywords and filters, so you can build targeted Yelp leads fast. Use it as a Yelp email scraper or Yelp lead generation automation tool—an efficient Yelp email extractor for scaling prospecting outreach.

***

### What Does Yelp Email Scraper Do? 🤖

Yelp Email Scraper takes the keywords you provide (plus optional `location` and `customDomains`) and runs a web data extraction workflow on Yelp to collect publicly listed contact emails. During a run, it searches for relevant Yelp profiles, extracts email addresses, filters results to your selected email domains, and exports everything into a structured dataset. Your output is saved record-by-record with the profile details needed for lead research and CRM import—so you can extract emails from Yelp without manual searching and automate Yelp email collection at scale. If results are limited, adjust keywords, domains, or location for a better match.

***

### What Can Yelp Email Scraper Extract? 📊

This Yelp contact scraper focuses on contact discovery from Yelp profiles and returns the key pieces you need for downstream outreach and analysis: emails plus the context to verify and organize leads.

| Data Type | Field Name | Description |
|---|---|---|
| Contact | `email` | Primary email address collected from a Yelp profile |
| Identity | `title` | Profile name or business handle shown in the extracted result |
| Context | `description` | Profile text snippet / bio-style context associated with the lead |
| Discovery | `keyword` | Search keyword from your input that surfaced this profile |
| Navigation | `url` | Direct URL to the Yelp page related to the scraped lead |

***

#### Key Features of Yelp Email Scraper ⚡

- ✅ **Keyword-Driven Search:** Targets Yelp profiles using your exact `keywords` list for focused Yelp lead extraction
- 🌍 **Location Targeting:** Use `location` to filter results for a specific city, state, or region
- 📧 **Custom Domain Filtering:** Use `customDomains` (like `@gmail.com`, `@yahoo.com`) to isolate emails for cleaner Yelp business email lists
- 🔄 **Proxy-Ready & Reliable:** Includes built-in proxy support designed to improve stability during web scraping
- 📊 **Structured JSON Output:** Each result is saved with consistent, labeled fields for easy import and analysis
- 💾 **Real-Time Saving:** Results are pushed to the dataset incrementally during the run so you keep what you’ve already collected
- ⚙️ **Configurable Limits:** Control runtime and spend using `maxEmails` to cap how many email results to collect

***

### How to Use Yelp Email Scraper 🚀

1. **Find the Actor** — Search **Yelp Email Scraper** on [Apify Store](https://apify.com/store)
2. **Open Input Tab** — Go to the **Input** section in the Apify Console
3. **Add Keywords** — Enter job titles, business types, or search terms relevant to your outreach
4. **Configure Filters** *(optional)* — Set `location` and `customDomains` to narrow Yelp contacts
5. **Set Result Limit** — Choose `maxEmails` to cap the number of emails returned
6. **Click Start** — Run the actor and monitor live progress in the logs
7. **Download Results** — Export from the **Dataset** tab as JSON/CSV

*No coding required.*

***

### Yelp Email Scraper Output Format 📦

The actor saves results to your Apify dataset in structured JSON format.

#### ⬇️ Input Example

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

#### ⬆️ Output Example

```json
[
  {
    "keyword": "manager",
    "title": "Golden Gate Kitchen",
    "description": "Family-owned restaurant with outdoor seating and seasonal specials. Reach out for catering and events.",
    "url": "https://www.yelp.com/biz/golden-gate-kitchen-san-francisco",
    "email": "hello@goldengatekitchen.com"
  },
  {
    "keyword": "founder",
    "title": "Marina Coffee Roasters",
    "description": "Small-batch coffee roaster. Partnerships and wholesale inquiries welcome.",
    "url": "https://www.yelp.com/biz/marina-coffee-roasters-san-francisco",
    "email": "partnerships@marinacoffee.com"
  }
]
```

***

### 🎯 Use Cases of Yelp Email Scraper

**B2B Lead Generation:** Build lists of local business contacts for cold outreach, partnerships, and sales follow-ups using Yelp leads found via your keyword + domain strategy.

**Email Marketing Campaigns:** Quickly collect a restaurant email list style dataset to power newsletter signups, drip campaigns, and promotional outreach—without spending hours extracting Yelp business email manually.

**Talent Recruitment:** Source professionals and creators listed on Yelp with public email addresses to speed up recruiting and outreach.

**Market Research:** Use extracted Yelp business context to compare niches and segments, then refine your Yelp directory mining approach by changing keywords, location, or domains.

**CRM Enrichment:** Add scraped Yelp contacts (email + profile URL + context fields) to existing pipelines for better segmentation and faster follow-up.

***

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

Pricing on Apify is pay-per-result (charged per email result), not per run. Apify may offer free credits/new-user compute, and your best budgeting lever is `maxEmails`—set it to cap how many emails you want returned. For high-volume Yelp lead generation, start small and scale your `maxEmails` only after you confirm the quality of your Yelp email extractor results.

***

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

Yelp Email Scraper extracts emails from publicly available sources on Yelp—no private accounts or password-protected content. Whether scraping is acceptable depends on Yelp’s Terms of Service and applicable laws in your region. Use extracted data responsibly for legitimate marketing, outreach, research, or recruitment use. If you have concerns or need assistance, contact <scrapidocontact@gmail.com>.

***

### Yelp Email Scraper Input Parameters 📋

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | array | ✅ Yes | `["manager","founder"]` | A list of keywords or queries used to find relevant Yelp profiles |
| `location` | string | No | `""` | Location to filter search results (for example, a city or region) |
| `customDomains` | array | No | `["@gmail.com","@yahoo.com"]` | List of custom email domains to filter extracted emails (like `@gmail.com`) |
| `maxEmails` | integer | No | `20` | Maximum number of emails to collect; helps control run time and cost |

***

### During the Actor Run ⏱️

You’ll see live logs in the Apify Console showing progress while it processes your keyword combinations. Results are saved incrementally to the dataset, so you can review partial output as it runs. Total duration depends on `maxEmails` and network conditions. If you’re getting limited results, expand your keyword coverage, broaden `customDomains`, or use a different `location`.

***

### Final Note ✉️

Start building a targeted Yelp business email list in minutes with Yelp Email Scraper. Run it on Apify, then export your results for outreach and analysis. Questions or feedback? Email <scrapidocontact@gmail.com>.

***

### FAQ — Yelp Email Scraper ❓

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

The actor uses your provided `keywords` (and optionally `location`) to retrieve relevant Yelp profile results, then extracts email addresses that match your `customDomains` filter from the scraped profile data.

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

You can scrape publicly listed Yelp profiles that include email addresses visible in the extracted profile content. If a profile doesn’t show a public email address, it won’t produce usable results for your dataset.

#### What did your tests show about the Yelp Email Scraper?

Actual email yield depends on how many Yelp profiles match your keywords and how many of those profiles display public emails matching your `customDomains`. If results are sparse, increasing keyword variety and domain coverage usually improves output.

#### Why scrape Yelp for emails?

Yelp is a strong source for local business contact outreach. Instead of manually extracting Yelp emails one-by-one, this actor automates Yelp email collection using your keyword intent and domain filters—ideal for Yelp leads and B2B prospecting emails.

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

This actor is billed on a pay-per-result basis (per email result). Use `maxEmails` to cap spending for each run and avoid unexpected volume. Apify may provide free credits to new users, which can help you test before scaling.

#### How does the Yelp Email Scraper help my business?

It helps you go from “lead research” to “actionable email list” faster. The output dataset includes `email` plus supporting fields like `title`, `description`, and `url`, organized by the `keyword` that surfaced the profile—making it easier to enrich and manage outreach.

#### What are the challenges of using a Yelp scraper?

Not every Yelp profile displays a public email address, so output volume can vary by niche and by how closely your keywords align with businesses that publish contact emails. Domain filtering (`customDomains`) also affects how many emails qualify.

#### How do I choose the right Yelp email scraper?

Choose based on structured output, filtering controls, and reliability for prospecting workflows. Yelp Email Scraper provides configurable `keywords`, optional `location`, `customDomains` filtering, and a clear `maxEmails` cap—making it a practical Yelp email extractor for lead generation automation.

***

### 🆘 Support & Feedback

Need help with Yelp Email Scraper or want a tailored solution for your Yelp leads workflow? Contact <scrapidocontact@gmail.com>.

### Multiple Email Types

**Email Types** replaces the old single Audience Type choice: select as many
kinds of mailbox as you want and the run chases all of them together.

| Type | What it matches |
| --- | --- |
| Personal / free webmail | Gmail, Outlook, Yahoo, iCloud, AOL, Proton, ... |
| Business / corporate | Company domains - free webmail and institutions excluded |
| Education (.edu / .ac) | `.edu`, `.ac.uk`, `.edu.au`, `.ac.in` and other academic suffixes |
| Government (.gov / .mil) | `.gov`, `.mil`, `.gov.uk`, `.gc.ca`, ... |
| Non-profit (.org) | `.org`, `.ngo`, `.org.uk`, ... |

Each selected type contributes its own Google dork patterns *and* its own domain
test, so a result is only kept if it genuinely belongs to the type that found
it. Every row carries an `emailType` field recording which one that was.

Suffixes are matched as real domain suffixes, so `cs.mit.edu` counts as
Education while `notedu.com` does not.

Setting **Custom Email Domains** still overrides everything: an explicit domain
list is a manual override and replaces the type-driven patterns. The legacy
`audienceType` value is still accepted, so saved inputs keep working.

# Actor input Schema

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

A list of keywords or queries to search for.

## `audienceType` (type: `string`):

Business Emails runs contextual discovery patterns tuned for company contact pages ("email us at", "contact@", careers, bookings, ...) and filters out consumer webmail domains. Consumer Emails instead searches gmail.com, yahoo.com, outlook.com, hotmail.com and icloud.com directly.

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

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

Optional manual override — provide specific email domains to search for (e.g. @hubspot.com) instead of using Audience Type. Leave empty to use Audience Type.

## `emailTypes` (type: `array`):

Which kinds of mailbox to hunt for. Pick as many as you like - each type contributes its own set of Google search patterns and its own domain filter, and every result records the type it was found as. Personal = free webmail (Gmail, Outlook, Yahoo, iCloud). Business = company domains, excluding free webmail and institutions. Education = .edu / .ac.uk and friends. Government = .gov / .mil. Non-profit = .org.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "audienceType": "Consumer Emails",
  "maxEmails": 20,
  "customDomains": [],
  "emailTypes": [
    "Personal",
    "Business"
  ]
}
```

# 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"
    ],
    "customDomains": [],
    "emailTypes": [
        "Personal",
        "Business"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/yelp-email-scraper").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",
    ],
    "customDomains": [],
    "emailTypes": [
        "Personal",
        "Business",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/yelp-email-scraper").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"
  ],
  "customDomains": [],
  "emailTypes": [
    "Personal",
    "Business"
  ]
}' |
apify call scrapido/yelp-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/6bfuRwo0Cy0eptiO5/builds/SxjNQLacDgWbFkzTY/openapi.json
