# Bing Places Email Scraper (`email_scraper/bing-places-email-scraper`) Actor

Bing Places Email Scraper finds publicly indexed business contact emails using targeted keywords, locations, and custom email domains. Extract structured leads with titles, descriptions, URLs, and emails for local business research, lead generation, and outreach.

- **URL**: https://apify.com/email\_scraper/bing-places-email-scraper.md
- **Developed by:** [Email Scraper](https://apify.com/email_scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🔍 Bing Places Email Scraper – Overview

**Bing Places Email Scraper** is an Apify Actor designed to discover publicly indexed email addresses associated with Bing Places-related search results using targeted keywords, optional locations, and customizable email domains.

It is useful for local business research, lead generation, B2B prospecting, sales research, market research, directory research, and other workflows where publicly available business contact information can help identify relevant prospects.

The Actor lets you turn search terms such as `Restaurant`, `Dentist`, `Plumber`, `Real Estate Agent`, or `Roofing Contractor` into structured contact records. You can combine several keywords with different email domains and optionally narrow the search to a country, state, or city.

> **💡 Quick Start**
>
> - Add one or more business-related keywords.
> - Optionally enter a location such as New York, London, or Toronto.
> - Select the email domains you want to search.
> - Set the maximum number of emails per keyword + domain combination.
> - Optionally exclude unwanted words or phrases.
> - Run the Actor and review the structured results in the Apify Dataset.

The Actor discovers emails from publicly indexed search-result descriptions. It does not claim access to private business information or private Bing Places data.

Because results depend on public search indexing, the requested number of emails is a target rather than a guarantee. If a particular keyword has limited indexed results or few publicly visible email addresses, the Actor may return fewer records.

### 🔹 Bing Places Email Scraper – Key Features

**Bing Places Email Scraper** combines targeted keyword search, geographic targeting, custom email domains, exclusion filters, duplicate prevention, and structured dataset output.

> **⚡ Key Features**
>
> - Search Bing Places-related indexed results using specific keywords.
> - Discover matching email addresses from public search-result descriptions.
> - Target cities, states, countries, or other geographic terms.
> - Search multiple email domains in one Actor run.
> - Set an independent email target for each keyword + domain combination.
> - Exclude unwanted categories using words or phrases.
> - Prevent duplicate email addresses from being added repeatedly.
> - Push results incrementally into an Apify Dataset.
> - Process multiple keywords and email domains automatically.
> - Preserve progress during processing so the Actor can continue after an interruption.

#### 🎯 Keyword-Based Business Search

Keyword selection is central to **Bing Places Email Scraper**.

Instead of relying on a single broad term, you can create a group of specific business or service keywords. This gives you more targeted search intent and allows different segments of local businesses to be researched within the same run.

For example, a local-services research workflow could use:

- Restaurant
- Dentist
- Dental Clinic
- Roofing Contractor
- Plumber
- Electrician
- Real Estate Agent
- Cleaning Service

Specific keywords can make it easier to focus your business lead generation workflow on the type of company or service you actually need.

#### 🌎 Location Targeting

The optional `location` input lets you narrow the search using a geographic term.

Examples include:

- New York
- Los Angeles
- London
- Toronto
- California
- Germany
- Australia

You can leave the location empty when you want to search without a geographic filter.

Location targeting can be useful for local business prospecting, regional market research, city-specific lead generation, and service-area research.

#### 📧 Custom Email Domains

The Actor supports multiple email-domain suffixes.

The default is:

```text id="4mlj2v"
@gmail.com
```

You can also add domains such as:

- `@gmail.com`
- `@yahoo.com`
- `@outlook.com`
- `@hotmail.com`
- `@icloud.com`
- Custom business domains such as `@example.com`

Each selected domain is processed with each keyword, creating separate keyword + domain search combinations.

#### 🚫 Exclude Words and Phrases

The `excludeWords` option lets you prevent unwanted search-result descriptions from contributing email addresses.

For example:

```json id="q7rj3p"
{
  "excludeWords": [
    "crypto",
    "onlyfans"
  ]
}
```

Matching ignores letter case. A single-word exclusion is matched as a whole word, while a phrase is matched as a phrase.

When an excluded term appears in a result description, that entire result is skipped.

### 🔹 Bing Places Email Scraper – What Data You Can Extract

**Bing Places Email Scraper** produces structured lead records containing the search context and the discovered email address.

> **📊 Output / Data Fields**
>
> - **keyword** — The keyword used to find the search result.
> - **title** — The title of the indexed search result.
> - **description** — The public search-result description or snippet.
> - **url** — The URL associated with the search result.
> - **email** — The extracted email address matching the selected domain.
> - **network** — The underlying pushed record also contains `Bing Places.com`.

The default Apify Dataset table displays five primary fields: `keyword`, `title`, `description`, `url`, and `email`.

The `description` is particularly useful because it provides context around the email discovery. Instead of receiving an email address without context, you can see the search-result text associated with it.

#### 🧾 Sample Output

A representative record can look like this:

```json id="k5c8a1"
{
  "network": "Bing Places.com",
  "keyword": "Restaurant",
  "title": "Restaurant Business Listing",
  "description": "Restaurant information and contact details ... example@gmail.com ...",
  "url": "https://www.bing.com/...",
  "email": "example@gmail.com"
}
```

The actual title, description, URL, and email depend on the publicly indexed results available for your selected keyword, location, and domain.

### 🔹 Bing Places Email Scraper – How It Works

The general workflow of **Bing Places Email Scraper** is designed around search-engine discovery.

You provide search criteria, and the Actor works through the resulting keyword and email-domain combinations.

The workflow is:

- Read the configured keywords, location, domains, maximum target, and exclusions.
- Build a targeted search for each keyword + domain combination.
- Include the optional location when supplied.
- Process publicly indexed search results.
- Read the title, URL, and description from each result.
- Skip descriptions containing excluded words or phrases.
- Extract email addresses matching the selected domain suffix.
- Ignore email addresses already discovered during the run.
- Push new records to the Apify Dataset.
- Continue through the configured search combinations.

This means the Actor is primarily a search-result discovery tool. It should not be interpreted as direct access to private Bing Places records.

### 🔹 Bing Places Email Scraper – How to Use It

#### 1. 🔑 Enter Business Keywords

The required `keywords` field accepts a list of search terms.

For example:

```json id="m2r8vf"
{
  "keywords": [
    "Restaurant",
    "Dentist",
    "Dental Clinic",
    "Plumber"
  ]
}
```

Using multiple specific terms can provide broader coverage than using only one generic keyword.

For example, `Restaurant` may be useful for broad research, while combinations such as `Italian Restaurant`, `Pizza Restaurant`, and `Family Restaurant` can create more specific search intent.

#### 2. 🌍 Add a Location

Enter a country, state, city, or other geographic term when your research is location-specific.

Example:

```text id="x3n6qk"
Chicago
```

For global or unrestricted research, leave the field empty.

If a highly specific location produces sparse results, try a broader region or remove the location filter.

#### 3. 📬 Select Email Domains

The default domain is `@gmail.com`.

You can expand the search:

```json id="c9u4ws"
{
  "customDomains": [
    "@gmail.com",
    "@yahoo.com",
    "@outlook.com"
  ]
}
```

You can also use business-specific domains where appropriate.

#### 4. 🔢 Set `maxEmails`

The `maxEmails` input accepts values from **1 to 10,000**.

The limit applies independently to each keyword + domain combination.

For example:

- 3 keywords
- 2 email domains
- `maxEmails = 20`

creates 6 keyword + domain combinations, with a target of up to 20 emails for each combination.

> **⚠️ Important:** This is not a guaranteed total. The Actor can only collect emails that are publicly available in the indexed search results. Global duplicate prevention can also reduce the final number of unique records.

#### 5. 🚫 Add Exclusion Terms

If certain categories are not relevant to your research, add them to `excludeWords`.

Example:

```json id="p8y2wd"
{
  "excludeWords": [
    "crypto",
    "gambling"
  ]
}
```

If a matching word or phrase occurs in a result description, that result is skipped before email extraction.

#### 6. ▶️ Run the Actor

After configuring the inputs, start the run.

Results are pushed incrementally into the configured **Bing Places Emails Dataset**. Larger keyword, domain, and location combinations can require more processing time.

The input configuration specifies a default run timeout of 3600 seconds. Wider searches may benefit from increasing the run timeout through the available run options.

### 🔹 How to Scrape Bing Places Emails by Keyword

To use **Bing Places Email Scraper** for keyword-based local business research, start with clear business categories.

For example:

```json id="t6q1ne"
{
  "keywords": [
    "Dentist",
    "Dental Clinic",
    "Orthodontist"
  ],
  "location": "New York",
  "customDomains": [
    "@gmail.com",
    "@outlook.com"
  ],
  "maxEmails": 20
}
```

This configuration gives the Actor multiple business search intents and two email-domain targets for the selected location.

If results are limited, consider broadening the location, adding related business terms, or adding additional email domains.

### 🔹 How to Find Local Business Emails with Bing Places

**Bing Places Email Scraper** can support local business research when publicly indexed search results contain matching email addresses.

Useful keyword categories include:

- Restaurants and food businesses
- Dental practices
- Medical businesses
- Home improvement services
- Real estate businesses
- Automotive services
- Cleaning companies
- Beauty salons
- Fitness businesses
- Professional services

For example, a home-services researcher could search:

```text
Plumber
Electrician
Roofing Contractor
HVAC Contractor
```

A real-estate research workflow could use:

```text
Real Estate Agent
Property Manager
Real Estate Broker
```

The Actor returns only what can be discovered through its public indexed search process.

### 🔹 Can You Search Bing Places by City or Country?

Yes. The `location` field allows an optional geographic term to be included in the search.

For example:

```text
location: Toronto
```

or:

```text
location: United Kingdom
```

This can be useful when building location-focused business lead datasets.

If you are not targeting a particular area, leaving `location` empty allows the search to operate without a geographic filter.

### 🔹 Can You Search Multiple Email Domains?

Yes. You can supply multiple email-domain suffixes in `customDomains`.

For example:

```json id="v7n3ka"
{
  "customDomains": [
    "@gmail.com",
    "@yahoo.com",
    "@outlook.com",
    "@hotmail.com"
  ]
}
```

The Actor processes each domain separately for each keyword.

This can increase search coverage when businesses or publicly indexed contacts use different email providers.

### 🔹 Bing Places Email Scraper – Use Cases

> **💼 Common Use Cases**
>
> - **Local business lead generation** — Research businesses by category and location.
> - **B2B prospecting** — Build structured business contact datasets for legitimate prospecting.
> - **Sales research** — Identify publicly indexed contact information associated with relevant businesses.
> - **Local market research** — Explore businesses operating in a specific city, state, or country.
> - **Agency prospecting** — Research potential clients in selected service categories.
> - **Restaurant research** — Search restaurant-related keywords and locations.
> - **Home-service research** — Find public contact information for contractors and service providers.
> - **Real estate research** — Search real estate-related business categories.
> - **Business directory research** — Turn targeted search terms into structured lead records.
> - **Audience research** — Compare results across business categories, locations, and email domains.

These use cases are based on the Actor's actual keyword, location, domain, filtering, and structured-output functionality.

### 🔹 Bing Places Email Scraper – Input

The required input is `keywords`. The other settings provide optional targeting and filtering controls.

| Input           | Type    | Default             | Purpose                            |
| --------------- | ------- | ------------------- | ---------------------------------- |
| `keywords`      | Array   | Restaurant, Dentist | Business search terms              |
| `location`      | String  | Empty               | Optional geographic filter         |
| `customDomains` | Array   | @gmail.com          | Email-domain suffixes              |
| `maxEmails`     | Integer | 5                   | Target per keyword + domain        |
| `excludeWords`  | Array   | Empty               | Terms that exclude result snippets |

#### 📝 Complete Sample Input

```json id="e5w2ru"
{
  "keywords": [
    "Restaurant",
    "Italian Restaurant",
    "Catering Company"
  ],
  "location": "Los Angeles",
  "customDomains": [
    "@gmail.com",
    "@outlook.com"
  ],
  "maxEmails": 10,
  "excludeWords": [
    "crypto"
  ]
}
```

This searches three business-related keywords with two email domains and a Los Angeles location term.

### 🔹 Bing Places Email Scraper – Output Format

The configured dataset is named **Bing Places Emails Dataset** and uses a **Scraped Leads** table view.

The primary displayed fields are:

| Field         | Description                       |
| ------------- | --------------------------------- |
| `keyword`     | Keyword used for the search       |
| `title`       | Search-result title               |
| `description` | Search-result description/snippet |
| `url`         | Search-result URL                 |
| `email`       | Extracted matching email          |

The pushed record also contains:

```text
network: "Bing Places.com"
```

The dataset is updated incrementally as new email addresses are found.

### 🔹 Bing Places Email Scraper – Pricing and Limits

> **💰 Pricing / Limit Information**
>
> - `maxEmails` supports values from 1 to 10,000.
> - The default `maxEmails` value is 5.
> - The target is applied independently to each keyword + domain combination.
> - Free-tier processing applies a maximum of 100 emails per keyword + domain combination.
> - Paid users are not restricted by that free-tier result ceiling.
> - Larger targets can require more search processing and may take longer.
> - No fixed monetary Actor price is specified in the supplied configuration.

The requested limit should therefore be viewed as a collection target rather than a guaranteed number of final records.

### 🔹 Tips and Best Practices

> **💡 Important Notes**
>
> - Use specific business keywords instead of only broad categories.
> - Combine related service terms for wider search coverage.
> - Add multiple email domains when broader email discovery is appropriate.
> - Use location targeting for city-specific or regional research.
> - Remove restrictive location terms when results are too sparse.
> - Use `excludeWords` to remove clearly irrelevant result categories.
> - Start with a modest `maxEmails` value and evaluate result quality.
> - Increase the run timeout for wider searches when necessary.
> - Review the title and description before using an email for outreach.
> - Remember that public indexing determines what the Actor can discover.

A useful strategy is to begin with several related keywords, evaluate the dataset, and then refine the search terms based on the quality and relevance of the returned business records.

### 🔹 Does Bing Places Email Scraper Remove Duplicate Emails?

Yes. The Actor tracks email addresses that have already been discovered and avoids registering the same email repeatedly.

This is especially useful when several keywords describe overlapping businesses. A business may appear in more than one search combination, but the same email address is not intentionally added again.

As a result, the number of unique final emails can be lower than the theoretical sum of all keyword + domain targets.

### 🔹 What Data Does Bing Places Email Scraper Extract?

The Actor extracts five primary dataset fields:

- Keyword
- Title
- Description
- URL
- Email

The underlying pushed record also includes the `network` field.

The email is extracted from the publicly available search-result description and must match one of the email-domain suffixes supplied in `customDomains`.

This makes the dataset useful for both contact discovery and contextual lead research.

### 🔹 Why Use Bing Places Email Scraper?

**Bing Places Email Scraper** provides a structured way to turn business-oriented search intent into an organized contact dataset.

Instead of manually reviewing individual search results, you can define several keywords, locations, email domains, and exclusion terms in advance.

> **🚀 Why Use This Actor**
>
> - Convert business keywords into structured contact records.
> - Search multiple business categories in one run.
> - Apply optional geographic targeting.
> - Search multiple email-domain suffixes.
> - Filter unwanted search-result descriptions.
> - Reduce duplicate contact records.
> - Receive incremental dataset output.
> - Keep keyword and search-result context alongside discovered emails.

This workflow is particularly useful for local business research, B2B prospecting, market research, and structured lead-generation projects.

### 🔹 Frequently Asked Questions

#### ❓ What is Bing Places Email Scraper?

**Bing Places Email Scraper** is an Apify Actor that searches publicly indexed Bing Places-related results using keywords and email-domain filters, then extracts matching email addresses from available search-result descriptions.

#### ❓ How do I scrape Bing Places emails by keyword?

Enter business terms in `keywords`, optionally provide a `location`, select `customDomains`, and configure `maxEmails`. The Actor processes each keyword + domain combination.

#### ❓ Can I find restaurant emails with Bing Places Email Scraper?

Yes. You can use terms such as `Restaurant`, `Italian Restaurant`, `Pizza Restaurant`, or `Catering Company` and optionally add a city or country.

#### ❓ Can I search dentist and restaurant businesses together?

Yes. Multiple keywords can be supplied in the same input, allowing different business categories to be processed within one run.

#### ❓ Can I search Bing Places emails by location?

Yes. The `location` input accepts a country, state, city, or other geographic term and adds it to the search.

#### ❓ Can I search Gmail, Yahoo, and Outlook emails together?

Yes. Add multiple email-domain suffixes to `customDomains`.

#### ❓ Why did the Actor return fewer emails than my `maxEmails` value?

The target is not a guarantee. The available public search index may contain fewer relevant results or matching email addresses. Narrow keywords, restrictive locations, duplicate emails, and exclusion filters can also reduce the final count.

#### ❓ Does the Actor access private Bing Places information?

No. The Actor is designed around publicly indexed search results and does not claim access to private business information.

#### ❓ Is `maxEmails` a total run limit?

No. It is applied independently to each keyword + domain combination. Global duplicate prevention can nevertheless reduce the number of unique records produced.

#### ❓ Can I exclude specific business categories?

Yes. Add words or phrases to `excludeWords`. If an excluded term appears in a search-result description, that result is skipped.

#### ❓ What is the best way to improve Bing Places email search results?

Use several specific business keywords, add relevant email domains, broaden restrictive locations when necessary, and avoid unnecessary exclusion terms. Testing different search intents can help identify which terms produce the most relevant public results.

#### ❓ Does Bing Places Email Scraper guarantee an email for every business?

No. An email is only returned when a matching address is available in the publicly indexed search-result content and matches the configured domain criteria.

### 🔹 Responsible Data Use

Use **Bing Places Email Scraper** responsibly and in accordance with applicable privacy, data-protection, anti-spam, and platform rules.

The Actor is intended to work with publicly indexed information. Public availability does not automatically mean that every discovered email can be used for every type of communication.

Before using contact data for marketing, sales, or outreach, review applicable regulations and your organization's policies.

### 🔹 Support

For questions about **Bing Places Email Scraper**, input configuration, output fields, result quality, or custom Actor requirements, contact:

**contact me by email : <alphascraper69@gmail.com>**

# Actor input Schema

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

A list of keywords or queries to search for.

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

Optional country, state or city used to narrow the search. Leave it empty to search without a geographic filter.

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

List of custom email domains

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

How many addresses each search keyword + domain suffix combination may collect before the finder moves on to the next one. This is a per-combination target, not a run-wide total: with 3 keyword and 2 Domains and a limit of 20, the run works through all 6 combinations and aims for up to 20 addresses in each, so up to 120 overall. Lower values finish sooner and cost less; higher values dig deeper but never guarantee a fuller result, since the run can only find what is publicly listed.

## `excludeWords` (type: `array`):

Words or phrases you do not want to see.

## Actor input object example

```json
{
  "keywords": [
    "Restaurant",
    "Dentist"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 5,
  "excludeWords": []
}
```

# 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": [
        "Restaurant",
        "Dentist"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("email_scraper/bing-places-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": [
        "Restaurant",
        "Dentist",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
    "excludeWords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("email_scraper/bing-places-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": [
    "Restaurant",
    "Dentist"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ],
  "excludeWords": []
}' |
apify call email_scraper/bing-places-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,email_scraper/bing-places-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/DsiD0S4qOhEjoshWp/builds/li3DiIr3r1JHUsA2L/openapi.json
