# Bayut Email Scraper (`email_scraper/bayut-email-scraper`) Actor

Extract targeted email addresses from Bayut using keywords, locations, and custom email domains. Bayut Email Scraper helps collect structured Bayut contact leads with titles, descriptions, URLs, and emails for real estate research, lead generation, prospecting, and data collection.

- **URL**: https://apify.com/email\_scraper/bayut-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

### Bayut Email Scraper

Bayut Email Scraper is an Apify Actor designed to find email addresses published in Bayut-related search results based on the keywords, email domains, and optional location you provide. It helps turn targeted Bayut searches into structured lead records that can be reviewed in an Apify dataset.

You provide one or more search keywords, optionally narrow the search with a country, state, or city, select the email domains you want to find, and optionally exclude profiles whose description snippets contain specific words or phrases. The Actor then returns matching email addresses together with the keyword, result title, description, and source URL.

This workflow is useful for real estate research, lead discovery, market research, prospecting, dataset building, and other data-collection tasks where publicly listed Bayut contact information is relevant.

> **🔎 Key point:** Results depend on the information publicly exposed in the available Bayut-related search results. A requested email target is not a guarantee that the requested number of addresses exists.

### What Is the Bayut Email Scraper?

The Bayut Email Scraper is a keyword-based email extraction tool focused on Bayut. Instead of manually searching many profile pages and copying addresses, you can define a set of targeted search terms and let the Actor collect matching email records into an Apify dataset.

The Actor is particularly useful when your search intent is specific. For example, instead of using only `property`, you can enter more focused terms such as `Real estate agents`, `Property consultant`, `Real estate broker`, or other phrases relevant to the audience you are researching.

You can also use a location such as `Dubai`, `Abu Dhabi`, or another supported geographic phrase. Leaving the location empty allows the search to run without a geographic filter.

### Key Features

| Feature                              | Description                                                           | User Benefit                            |
| ------------------------------------ | --------------------------------------------------------------------- | --------------------------------------- |
| Keyword-based search                 | Search using one or multiple keywords or queries                      | Build targeted lead searches            |
| Location filtering                   | Optionally add a country, state, or city                              | Narrow results geographically           |
| Custom email domains                 | Provide domains such as `@gmail.com` or other suffixes                | Focus extraction on desired email types |
| Per-combination email target         | Set a maximum for each keyword + domain combination                   | Control collection depth                |
| Exclude words filter                 | Skip descriptions containing selected words or phrases                | Reduce unwanted matches                 |
| Structured dataset output            | Records are pushed to the Apify dataset                               | Easier review and downstream processing |
| Duplicate email filtering            | Previously collected email addresses are not collected again          | Reduce duplicate contacts               |
| Multiple keyword/domain combinations | The Actor works through combinations of supplied keywords and domains | Expand search coverage                  |

### What Data Can You Extract?

The Bayut Email Scraper returns structured records containing the email address and contextual information from the matching search result.

The main data categories include:

- **Email address** — The email address matching one of your selected domain suffixes.
- **Keyword** — The search keyword associated with the record.
- **Title** — The title of the matched result.
- **Description** — The description snippet associated with the result.
- **URL** — The source URL associated with the search result.
- **Network** — The source network value returned by the Actor, recorded as `Bayut.com`.

This combination provides more context than an email-only list. You can use the title, description, keyword, and URL to understand why an address was collected and organize the resulting contacts.

### Why Use This Actor?

Manual lead research can involve repeating the same searches, checking descriptions, identifying email addresses, and recording source information. This Actor automates that collection workflow around your chosen search criteria.

It is designed for users who need structured Bayut contact data rather than a list assembled manually. Multiple keywords and multiple email domains can be combined in the same run, while the exclusion filter gives you a way to remove unwanted description matches.

Because records are written to the Apify dataset as they are collected, the resulting dataset can be reviewed as the run progresses and used as a structured source for further analysis.

### How to Use the Bayut Email Scraper

A typical workflow is:

- Enter one or more relevant keywords in the **Keywords or Queries** field.
- Add a location when geographic targeting is required.
- Enter the email domain suffixes you want to include.
- Set `maxEmails` according to the amount of data you want each keyword/domain combination to target.
- Add exclusion words or phrases when certain profile descriptions should be skipped.
- Start the Actor and review the resulting dataset.
- Validate important contacts before using them in business workflows.

For better coverage, use several specific and closely related search terms instead of relying on one broad keyword.

### Input Fields

| Field           | Type             | Required | Default                              | Description                                                                                  |
| --------------- | ---------------- | -------- | ------------------------------------ | -------------------------------------------------------------------------------------------- |
| `keywords`      | Array of strings | Yes      | `["property", "Real estate agents"]` | Keywords or queries used to search for Bayut-related results. Multiple values are supported. |
| `location`      | String           | No       | `""`                                 | Optional country, state, city, or other geographic phrase used to narrow the search.         |
| `customDomains` | Array of strings | No       | `["@gmail.com"]`                     | Email domain suffixes to include when matching addresses.                                    |
| `maxEmails`     | Integer          | No       | `5`                                  | Maximum target for each keyword + domain combination. Allowed range: 1–10,000.               |
| `excludeWords`  | Array of strings | No       | `[]`                                 | Words or phrases that cause a matching description snippet to be skipped.                    |

#### Keywords

The `keywords` field is required and accepts multiple search terms. Specific phrases are generally more useful for focused research. You can combine job titles, professional roles, services, or other relevant phrases.

#### Location

The `location` field is optional. Enter a geographic phrase such as a country, state, or city when you want to narrow the search. Leave it empty when you do not want a geographic filter.

#### Custom Email Domains

The `customDomains` field accepts a list of email suffixes. Examples include `@gmail.com`, `@yahoo.com`, `@outlook.com`, or another domain suffix you want to target.

Each keyword and domain combination is processed separately for the configured email target.

#### Max Emails

`maxEmails` controls how many addresses the Actor targets for each keyword + domain combination. The allowed input range is 1 through 10,000.

For example, with 3 keywords, 2 domains, and a value of `20`, there are 6 keyword/domain combinations, with a target of up to 20 addresses for each combination where matching public results are available.

For free users, the Actor applies a maximum configured `maxEmails` value of 100. Since the setting applies per keyword/domain combination, the total number of records across a multi-combination run can exceed 100.

#### Exclude Words

Use `excludeWords` to skip result descriptions containing unwanted terms or phrases. Matching is case-insensitive. Single-word entries are matched as whole words, while phrases are matched as phrases.

For example, you may use terms such as `crypto` or `onlyfans` when those categories are not relevant to your research.

### Input Example

```json
{
  "keywords": [
    "Real estate agents",
    "Property consultant",
    "Property broker"
  ],
  "location": "Dubai",
  "customDomains": [
    "@gmail.com",
    "@outlook.com"
  ],
  "maxEmails": 10,
  "excludeWords": [
    "crypto",
    "onlyfans"
  ]
}
```

### Output

Each collected result is written as a structured dataset record. The output is designed to preserve both the extracted email and the surrounding search context.

This makes the Bayut Email Scraper useful when you want to review where an address came from, which keyword produced it, and what description was associated with the result.

The Actor also avoids collecting the same email address more than once during the run.

### Output Fields

| Field         | Description                                                  |
| ------------- | ------------------------------------------------------------ |
| `network`     | Source network value, returned as `Bayut.com`.               |
| `keyword`     | Keyword that produced the matching result.                   |
| `title`       | Title of the matching search result.                         |
| `description` | Description snippet associated with the result.              |
| `url`         | URL of the matching result.                                  |
| `email`       | Extracted email address matching the selected domain suffix. |

### Output Example

```json
{
  "network": "Bayut.com",
  "keyword": "Real estate agents",
  "title": "Example Property Consultant",
  "description": "Property consultant serving clients in Dubai. Contact: jane.agent@gmail.com",
  "url": "https://www.bayut.com/",
  "email": "jane.agent@gmail.com"
}
```

### Use Cases

The Bayut Email Scraper can support several practical data-collection workflows, including:

- **Real estate lead research** — Discover publicly listed email contacts related to real estate roles and property services.
- **Market research** — Build structured contact datasets around targeted property-related search terms.
- **Prospecting** — Identify potential business contacts based on keywords and geographic filters.
- **Property industry research** — Collect contextual information alongside email addresses for later review.
- **Dataset creation** — Build organized datasets for analysis, enrichment, or internal research.
- **Competitive research** — Study publicly visible contact information and search-result context within a defined market.
- **Automation workflows** — Run repeatable keyword-based collection tasks through Apify.

### Advantages

The Actor combines targeted search configuration with structured output, which can make repetitive Bayut contact research easier to organize.

Multiple keywords help you explore different search intents, while multiple email domains let you define the types of addresses you want to collect. Location filtering provides an additional way to focus research. The exclusion filter can also remove snippets that contain terms outside your target audience.

Because each result includes contextual fields such as title, description, keyword, and URL, the resulting dataset is more useful for review than an isolated list of addresses.

### Competitive Advantages

The main practical strengths of the Bayut Email Scraper are its configuration options and structured workflow.

Users can provide multiple search terms, combine them with multiple email domains, optionally add geographic targeting, and control the collection target for each combination. The dataset output also keeps the extracted email connected to its search context.

These features make the Actor suitable for targeted Bayut data collection without requiring users to manually assemble the same fields from each search result.

### Limitations

The Actor can only collect email addresses that appear in the publicly available information exposed by matching Bayut-related search results. It cannot guarantee that every relevant profile or contact contains an email address.

Results may also vary based on the specificity of your keywords, location settings, selected email domains, and the amount of relevant information available for a given query.

A larger `maxEmails` value does not guarantee more records. When matching results contain fewer qualifying addresses, the Actor may finish below the requested target.

Broad multi-keyword and multi-domain runs may also take longer than small, narrowly targeted runs.

### Pros and Cons

| Pros                                     | Cons                                                      |
| ---------------------------------------- | --------------------------------------------------------- |
| Multiple keywords can be used in one run | Results depend on publicly available matching information |
| Optional geographic filtering            | Narrow searches can return fewer results                  |
| Custom email-domain targeting            | A higher target does not guarantee more addresses         |
| Exclude unwanted words or phrases        | Large combinations can take longer to process             |
| Structured Apify dataset records         | Returned context may vary by result                       |
| Duplicate email addresses are filtered   | Some relevant profiles may have no publicly visible email |

### Comparison With Manual Research

| Capability                  | Bayut Email Scraper   | Manual / Typical Alternative         |
| --------------------------- | --------------------- | ------------------------------------ |
| Repeatable keyword searches | Supported             | Often repeated manually              |
| Multiple keywords           | Supported             | Usually handled one search at a time |
| Email domain targeting      | Supported             | Requires manual filtering            |
| Location filtering          | Supported             | Requires manual query refinement     |
| Exclude-word filtering      | Supported             | Requires manual inspection           |
| Structured dataset records  | Supported             | Often requires manual formatting     |
| Duplicate email filtering   | Supported             | Requires manual checking             |
| Search-result context       | Included with records | Must be copied manually              |

This comparison describes workflow differences rather than guaranteeing a specific result volume or quality.

### Best Practices

For more focused research, use specific keyword combinations rather than one broad term. For example, separate `Real estate agents`, `Property consultant`, and `Property broker` can represent different search intents.

Start with a small `maxEmails` value to verify that your keywords and domains produce the type of contacts you need. Expand the keyword list when results are sparse, or broaden the location when geographic filtering is too restrictive.

Choose email domains deliberately. Using several relevant domains can increase coverage, while a smaller domain list can keep the search more focused.

Use `excludeWords` when certain categories clearly do not belong in your research. Review a sample of results before relying on the dataset for important business decisions.

### Troubleshooting

#### Invalid Input

Check that `keywords` is provided as an array of strings. Verify that `maxEmails` is an integer between 1 and 10,000 and that the other array fields contain valid string values.

#### Empty Results

Try broader or more specific related keywords, depending on your goal. You can also remove the location filter or test additional email domains.

#### Partial Results

Receiving fewer addresses than requested is possible when qualifying public information is limited. Increase coverage by testing additional relevant keywords, domains, or geographic settings.

#### Missing Fields

Some search results may have limited contextual information. The Actor only records the fields available from the matching result and extracted email data.

#### Temporary Failures

Retry the run with validated inputs and a smaller test scope. Large searches can involve many keyword and domain combinations, so testing a narrower configuration first can help identify configuration issues.

### Frequently Asked Questions

**What does the Bayut Email Scraper do?**

It searches for Bayut-related results using your keywords and extracts email addresses matching the email domains you provide.

**What inputs are required?**

Only `keywords` is required. Location, custom email domains, maximum email targets, and exclusion words are optional.

**Can I use multiple keywords?**

Yes. The `keywords` field accepts multiple search terms, allowing you to research several related search intents in one Actor run.

**Can I search a specific city or country?**

Yes. Use the `location` field to provide a country, state, city, or other geographic phrase.

**Can I choose which email domains to collect?**

Yes. The `customDomains` field lets you specify email suffixes such as `@gmail.com`, `@yahoo.com`, or `@outlook.com`.

**What does `maxEmails` control?**

It defines the target number of addresses for each keyword + domain combination, within the allowed range of 1–10,000. It does not guarantee that the requested number will be found.

**Does the Actor collect duplicate email addresses?**

The Actor filters previously collected email addresses so the same address is not added repeatedly during the run.

**What happens when an exclude word matches?**

When a configured word or phrase appears in the relevant description snippet, that snippet is skipped and no email is extracted from it.

**Why did I receive fewer emails than requested?**

The requested target is a maximum collection goal, not a guarantee. There may simply be fewer qualifying public email addresses for the selected query, domain, or location.

**Is the Bayut Email Scraper suitable for automated workflows?**

Yes. It runs as an Apify Actor and writes structured records to an Apify dataset, making it suitable for repeatable data-collection workflows.

### NLP Keywords

- Bayut email scraper
- Bayut email extractor
- Bayut contact scraper
- Bayut lead scraper
- Bayut data extraction
- Bayut contact information
- Bayut email addresses
- Bayut property leads
- Bayut real estate leads
- Bayut profile data
- Bayut contact data
- Bayut lead generation data
- Bayut keyword search
- Bayut location search
- Bayut email domain filtering
- Bayut lead dataset
- Bayut structured data
- Bayut prospect research
- Bayut real estate contacts
- Bayut public contact data

### Related Keywords

- scrape Bayut emails
- extract emails from Bayut
- Bayut contact extraction
- Bayut lead generation
- Bayut real estate scraper
- Bayut property contact scraper
- Bayut email finder
- Bayut business contact scraper
- Bayut prospecting data
- Bayut realtor email scraper
- Bayut property agent leads
- Bayut real estate contact data
- Bayut email collection tool
- Bayut keyword lead search
- Bayut location-based lead search
- Bayut email domain search
- Bayut profile contact extraction
- Bayut public email scraper
- Bayut lead dataset scraper
- Bayut data collection

### Final Overview

Bayut Email Scraper provides a focused way to collect publicly listed Bayut-related email addresses using configurable search keywords, optional geographic targeting, selected email domains, and exclusion terms.

Its structured dataset records include the extracted email together with the keyword, title, description, URL, and source network. The ability to combine multiple keywords and email domains makes it suitable for targeted real estate research, prospect discovery, market analysis, and repeatable data-collection workflows.

For the most useful results, start with focused keywords, test a small collection target, choose relevant domains, and adjust the location or search terms based on the data returned.

*Contact me:* <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": [
    "property",
    "Real estate agents"
  ],
  "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": [
        "property",
        "Real estate agents"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

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

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

```

## MCP server setup

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