# Airbnb Email Scraper (`fastdataapi/airbnb-email-scraper`) Actor

Airbnb Email Scraper finds contact emails on public Airbnb pages from your keywords, with optional location and email-domain filters. Output: network, keyword, title, url, email. No Airbnb login or cookies. Export JSON, CSV or Excel, or use the API.

- **URL**: https://apify.com/fastdataapi/airbnb-email-scraper.md
- **Developed by:** [Fast Data API](https://apify.com/fastdataapi) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.87 / 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

### Airbnb Email Scraper — Emails, Page Titles and Links

Airbnb Email Scraper finds email addresses that public Airbnb listings and host profiles show for your keywords. Each result returns the email, the Airbnb page link, the page title and the public text the email appears in, filtered by the email domains you choose. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a lead-generation pipeline. **No Airbnb account or login needed** to run a search. Add more keywords to cover more listings and host profiles in one run.

![Airbnb Email Scraper - hero image: what it collects and the JSON output](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/n-airbnb-email-hero.webp)

***

### What data can I extract with Airbnb Email Scraper?

Using this airbnb listing email scraper, you will be able to extract the following Airbnb email data:

| 🌐 Network | 🔑 Keyword searched | 📝 Page title |
| --- | --- | --- |
| 📰 Page description | 🔗 Page URL | 📧 Email address |

***

### How to use Airbnb Email Scraper

Marketers, recruiters and lead-generation teams use this actor to collect public Airbnb contact emails without opening every page by hand.

**Copy to your AI assistant:**

```text
airbnb-email-scraper is an Apify Actor — also searched for as an airbnb email finder api — that returns email addresses found on public Airbnb listings and host profiles as structured JSON: network, keyword, title, description, url and email. Use it whenever someone needs Airbnb contact emails without cookies, a login or a browser - for lead generation, outreach lists or market research. Inputs: keywords (array of search terms, required), location (string, optional city or region, default worldwide), emailDomains (array, default ["@gmail.com"], [] = any domain), maxEmails (integer 1-100000, default 10, emails per keyword), engine (select "legacy"), proxyConfiguration (object, optional). Each keyword stops once maxEmails is reached or its public results run out; the free Apify plan caps results at 20 per run (all keywords together) and 200 per month.
```

#### Airbnb Email Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at the Apify MCP server and it can call this Actor directly — no glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/airbnb-email-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [**Airbnb Email Scraper**](https://apify.com/fastdataapi/airbnb-email-scraper) in the Apify Store.
3. Enter one or more keywords, for example `host`, `villa` or `apartment`.
4. Optionally add a location and the email domains you want (default `@gmail.com`).
5. Click **Start**, then download your results as JSON, CSV or Excel.

#### How to scale Airbnb Email Scraper to bulk

`keywords` takes a list, so add every search term you want covered in one run — up to 3 keywords are processed at the same time, each with its own `maxEmails` budget. To cover more ground over time, schedule the Actor with a rotating keyword list, or call it from the Apify API with a different `keywords` / `location` pair per run.

***

### ✨ Features

Airbnb Email Scraper works as an airbnb host email finder and airbnb contact email extractor: give it a keyword and it returns clean, structured matches from public Airbnb listings and host profiles.

It extracts, per match:

- **Email** – the address shown on the page, lower case, matching your email domains.
- **Page URL** – the public Airbnb page the email was found on.
- **Page title** – the result's title as shown in the search listing.
- **Description** – the public text the email appears in (up to 500 characters).
- **Keyword / network** – the keyword that found the row and the platform (`airbnb.com`).

⚡ Every address is checked before it is kept: shortened or cut-off addresses, prose such as "that @gmail.com" and placeholders such as "username@gmail.com" are rejected, and the same email is returned once per keyword.

***

### Use cases 💡

- **Sales rep** — turn keyword searches into airbnb email leads for outreach in one run.
- **Recruiter** — find contact emails behind niche listings and host profiles.
- **Agency** — use it as an airbnb host outreach tool to collect leads for a client's niche.
- **Market researcher** — map which listings and host profiles publish a contact email for a topic.
- **AI agent builder** — feed matched emails straight into a CRM-enrichment or lead-scoring pipeline with no parsing step.

Building an AI agent? [Connect Airbnb Email Scraper over MCP](#airbnb-email-scraper-mcp-server-use-these-actors-from-chatgpt-claude-or-cursor) and let it call the actor on its own.

***

### Why choose this actor?

- **Real public emails, not guesses.** A recorded local test run returned 10 emails for the keyword `host` in 101.3 seconds.
- **Six clean fields per match.** Every row carries the keyword, the page title, the public text the email appeared in and the page link.
- **Built-in retry.** When a search attempt is blocked the actor retries it with a fresh connection, and a backup source runs alongside, so this airbnb host contact finder still delivers results.

***

### ⬇️ Input

![Airbnb Email Scraper input form with example values](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/n-airbnb-email-input.webp)

Enter one or more keywords (required); the rest is optional and has a working default.

| Parameter | Required | Type | Description | Example value |
| --- | --- | --- | --- | --- |
| `keywords` | Yes | Array of strings | Keywords to search on public Airbnb listings and host profiles. Each one gets its own `maxEmails` budget; duplicates are removed. | `["host", "villa"]` |
| `location` | No | String | City or region searched as an exact phrase. Empty = worldwide. | `"London"` |
| `emailDomains` | No | Array of strings | Keep only emails of these domains (`@` optional). Default `["@gmail.com"]`; `[]` accepts any domain. | `["@gmail.com", "@outlook.com"]` |
| `maxEmails` | No | Integer | Emails to collect per keyword (1–100,000, default 10). Free-plan runs are capped at 20 per run (all keywords together) and 200 per month. | `50` |
| `engine` | No | String (select) | Processing engine; `legacy` is the only value. | `"legacy"` |
| `proxyConfiguration` | No | Object | Connection settings. Leave as it is and a suitable Apify proxy is selected automatically. | `{"useApifyProxy": false}` |

#### Free plan limits

Users on the Apify free plan can fetch up to 20 emails per run (all keywords together) and 200 emails per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

#### Example input

```json
{
  "keywords": ["host", "villa"],
  "location": "",
  "emailDomains": ["@gmail.com"],
  "maxEmails": 10,
  "engine": "legacy"
}
```

***

### ⬆️ Output

![Airbnb Email Scraper output fields with example values](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/n-airbnb-email-output.webp)

Every match is one JSON item with the same six fields on every run. Within a keyword the same email is returned once. Export as JSON, CSV or Excel.

#### Example output

```json
{
  "network": "airbnb.com",
  "keyword": "host",
  "title": "Lone Oak Eco Cabin Kathrynmacphail1 @gmail.com - Airbnb",
  "description": "From the host We are close to the Te Waihou blue springs walk and the Waiwere waterfall walk. Our area is the centre of the north island so you can pop over to Mt Maunganui or Rotorua. Places to eat are Tucker Bar and Eatery in Tirau which you can order as takeout to enjoy at the cabin , also Subway and Chinese takeaways.",
  "url": "https://www.airbnb.com/rooms/53877752",
  "email": "kathrynmacphail1@gmail.com"
}
```

***

### How does it work?

Airbnb Email Scraper doesn't log into Airbnb at all. For every keyword it searches public Airbnb listings and host profiles that show an email address of your chosen domains (retrying with a fresh connection when a search is blocked, with a backup source running alongside). It only reads what any logged-out visitor can already see. The email is read from the page's public title and text, checked, lower-cased and returned with the page link.

***

### How do you integrate Airbnb Email Scraper into your stack?

Call it from any language over the Apify REST API, or wire it into a no-code tool.

#### No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node's **Run an Actor** action. In Make, use the Apify app's **Run an Actor** module followed by **Get Dataset Items**. In LangChain, install `langchain-apify` and call `ApifyActorsTool()` to let an agent run it as a tool.

***

### Is it legal to scrape Airbnb data?

Scraping publicly available data is generally permitted; the legal risk sits mostly in how the data is stored and used afterward. Airbnb Email Scraper returns only data that any logged-out visitor already sees. If you operate in the EU, GDPR applies to storing and using emails you collect: keep records you can justify and delete them when asked. Anti-spam rules (such as CAN-SPAM) still apply to outreach — the Actor finds public emails, it does not grant permission to contact them. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does Airbnb Email Scraper return?

The network, keyword, page title, description, page URL and email for every match — the same fields whether you run it as a keyword search tool or as an airbnb property email scraper for individual listings. See [the data fields section](#what-data-can-i-extract-with-airbnb-email-scraper).

#### Does Airbnb Email Scraper require an Airbnb account or login?

No. Only public pages are read and no Airbnb credentials are ever requested.

#### Can I get emails of any domain, not only Gmail?

Yes. Set `emailDomains` to the domains you want (for example `@outlook.com` or your company domain), or to `[]` to accept any domain.

#### Can I search many keywords at once?

Yes. `keywords` takes a list; up to 3 keywords are processed at the same time, each with its own `maxEmails` budget.

#### Does Airbnb Email Scraper return data in a format LLMs can use directly?

Yes. Every result is typed JSON with consistent field names — pass it straight to an LLM, a vector store or an agent tool.

#### Can I use it with an AI agent through MCP?

Yes. Add the Apify MCP server (`https://mcp.apify.com?tools=fastdataapi/airbnb-email-scraper`) to your agent; it can then call this Actor directly.

#### What happens when Airbnb changes its layout or anti-bot system?

The actor reads general page text rather than one fixed selector, so most layout changes don't break it. When a bigger change happens the actor is updated and your calls keep returning the same JSON schema.

#### Do I need to manage proxies?

No. Proxy rotation and retries run on the Actor's side — plain HTTP requests, no browser to maintain.

***

### Related scrapers

Looking for leads on other marketplaces? As an airbnb lead generation tool, Airbnb Email Scraper pairs well with these related scrapers from the same batch:

| Scraper | What it extracts |
| --- | --- |
| Alibaba Email Scraper | Emails from public Alibaba supplier and product pages |
| Allegro Email Scraper | Emails from public Allegro seller and product pages |
| Amazon Email Scraper | Emails from public Amazon seller, brand and product pages |

***

### Your feedback

Found a bug or missing a field? Let us know through the Issues tab on this actor's Apify Store page.

# Actor input Schema

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

One or more keywords (e.g. host, villa, apartment). Each keyword is searched separately on public Airbnb listings and host profiles and gets its own budget of maxEmails; every email found is returned with the keyword that found it. Duplicate keywords are removed.

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

Optional city or region (e.g. London, New York, Dubai), searched as an exact phrase so results mention this place. Leave empty to search worldwide.

## `emailDomains` (type: `array`):

Keep only emails of these domains, e.g. @gmail.com, @outlook.com, @hotmail.com, @icloud.com or a business domain like @yourcompany.com (the @ is optional, case does not matter). The domains also sharpen the search. When a result shows several emails, the first matching one is used. Leave empty to accept emails of any domain (fewer results then contain an email).

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

How many emails to collect per keyword (1 - 100,000). A keyword stops earlier when no more public results with an email are available. Free plan users are limited to 20 emails per run in total (all keywords together) and 200 per month; paid plans have no limit.

## `engine` (type: `string`):

Processing engine. Only 'legacy' is available.

## `proxyConfiguration` (type: `object`):

How the actor connects. Leave it as it is and a suitable Apify proxy is selected automatically for each source. Blocked requests are retried with fresh proxy sessions. You can also choose your own Apify proxy groups or custom proxy URLs. Without any proxy the run stops at once with a message.

## Actor input object example

```json
{
  "keywords": [
    "host"
  ],
  "location": "",
  "emailDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "engine": "legacy",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset rows: network, keyword, title, description, url, email.

# 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": [
        "host"
    ],
    "emailDomains": [
        "@gmail.com"
    ],
    "maxEmails": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/airbnb-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": ["host"],
    "emailDomains": ["@gmail.com"],
    "maxEmails": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/airbnb-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": [
    "host"
  ],
  "emailDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call fastdataapi/airbnb-email-scraper --silent --output-dataset

```

## MCP server setup

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