# Skyscanner Email Scraper (`email_scraper/skyscanner-email-scraper`) Actor

Skyscanner Email Scraper extracts publicly indexed email addresses from Skyscanner using keywords, locations, and custom email domains. Build targeted travel and business lead lists with structured email, title, description, and URL data.

- **URL**: https://apify.com/email\_scraper/skyscanner-email-scraper.md
- **Developed by:** [Email Scraper](https://apify.com/email_scraper) (community)
- **Categories:**
- **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?

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

### Skyscanner Email Scraper – Overview

**Skyscanner Email Scraper** helps you discover publicly indexed email addresses associated with Skyscanner pages by searching for targeted keywords, email domains, and optional geographic terms.

The Actor is designed for lead research, contact discovery, market research, and travel-related prospecting. Instead of manually opening search results and checking pages one by one, you provide the search terms you care about and the Actor collects matching email addresses together with useful result context.

> 💡 **What this Actor does:** Search publicly indexed `skyscanner.com` results for your keywords and selected email domains, then extract matching email addresses from the available search-result descriptions.

The easiest workflow is simple: enter several relevant keywords, optionally specify a country or city, select one or more email domains, set the maximum number of emails, and run the Actor.

Because results depend on what is publicly indexed and visible in search results, the Actor does **not** guarantee that every Skyscanner-related page contains an email address or that every requested target will be reached.

***

### Skyscanner Email Scraper – Key Features

**Skyscanner Email Scraper** is focused on targeted email discovery rather than broad, unfiltered website crawling.

> 🚀 **Key Features**
>
> - Keyword-based Skyscanner search
> - Multiple keywords in one run
> - Optional country, state, or city targeting
> - Custom email-domain filtering
> - Maximum-email targeting from 1 to 10,000
> - Exclude-word and phrase filtering
> - Duplicate email protection
> - Structured dataset output
> - Incremental result storage
> - Resume-friendly progress handling
> - Suitable for focused travel and business lead research

The keyword system makes the Actor flexible for different research strategies. For example, a broad term such as `Hotel` can be combined with more specific terms such as `Boutique Hotel`, `Hotel Manager`, `Travel Agency`, or `Luxury Hotel`.

More specific queries can help narrow the search toward the type of result you actually want.

***

### Skyscanner Email Scraper – What Data Can You Extract?

The **Skyscanner Email Scraper** produces structured lead records instead of returning only a raw list of email addresses.

Each collected result can contain the keyword that produced the match, the result title, its description, the source URL, and the extracted email address.

> 📦 **Output / Data Fields**
>
> | Field         | Description                                                  |
> | ------------- | ------------------------------------------------------------ |
> | `network`     | Source network identifier: `Skyscanner.com`                  |
> | `keyword`     | Keyword used for the search                                  |
> | `title`       | Title of the matching search result                          |
> | `description` | Search-result description containing the matched information |
> | `url`         | Source result URL                                            |
> | `email`       | Extracted email address matching the selected domain         |

The dataset is useful when you need both the **email address** and the surrounding search-result context.

This can make downstream lead qualification easier because you can review the keyword, title, description, and URL alongside each email rather than working with an isolated email list.

> ✅ **Important:** The Actor extracts email addresses from the information available in indexed search-result descriptions. It should not be interpreted as a guarantee that an email address exists on every Skyscanner page.

***

### Skyscanner Email Scraper – How to Use It

Using the **Skyscanner Email Scraper** requires only a few input decisions.

#### 1. Add your keywords

Enter one or more search keywords or queries.

Examples:

```text
Airline
Hotel
Travel Agency
Hotel Manager
Luxury Hotel
Flight Booking
Travel Consultant
```

Using multiple related keywords usually provides broader search coverage than relying on a single generic term.

#### 2. Add an optional location

Enter a country, state, or city when you need geographic targeting.

Examples:

```text
United States
New York
London
Dubai
Bangladesh
Singapore
```

Leave the location empty to search without a geographic filter.

#### 3. Select email domains

Specify the email suffixes you want the Actor to search for.

Examples:

```text
@gmail.com
@yahoo.com
@outlook.com
@hotmail.com
```

You can also provide business or organization domains when they are relevant to your research.

#### 4. Set the email target

The `maxEmails` value controls the target for each keyword + domain combination.

For example, with:

```text
Keywords: 3
Domains: 2
maxEmails: 20
```

the Actor works through six keyword/domain combinations, with a target of up to 20 emails for each combination.

#### 5. Add exclusion terms

Use `excludeWords` when certain words or phrases should disqualify a search-result description.

For example:

```text
crypto
onlyfans
adult
```

The matching is case-insensitive. Single words are evaluated as whole words, while phrases are matched as phrases.

#### 6. Start the run

Run the Actor and review the resulting Apify Dataset.

> 💡 **Best practice:** Start with several highly relevant keywords instead of depending on one broad term. Then expand the keyword set when the first run produces limited results.

***

### How to Find Travel-Related Emails on Skyscanner

A practical **Skyscanner Email Scraper** strategy is to combine a business category with a role, service, or niche.

For example, instead of searching only:

```text
Hotel
```

consider:

```text
Hotel Manager
Boutique Hotel
Luxury Hotel
Travel Agency
Travel Consultant
Airline
Flight Booking
Vacation Rental
```

This creates more focused search intent and can help identify different types of publicly indexed results.

You can also combine these keywords with location targeting. For example:

```text
Keyword: Travel Agency
Location: Dubai
Domain: @gmail.com
```

The Actor then focuses the search around the requested keyword, location, and email-domain pattern.

> 🎯 **Search strategy:** Broad keywords can provide more coverage, while specific keyword combinations can improve relevance. Test both approaches and compare the resulting dataset.

***

### Can You Target a Country or City?

Yes. The optional `location` input allows a country, state, or city to be included in the search.

For example:

```text
United States
California
New York
London
Dubai
Toronto
```

This is useful when your lead research has a geographic requirement.

When `location` is empty, the Actor searches without adding a geographic term.

Location targeting should be treated as a search refinement rather than a guarantee that every returned result belongs exclusively to that geographic area.

> 📍 **Location Tip:** Very narrow location terms can reduce the number of searchable results. If a run returns fewer emails than expected, try a broader location or remove the location filter.

***

### Can You Search Specific Email Domains?

Yes. The `customDomains` input allows you to decide which email-domain suffixes the Actor should look for.

The default value is:

```text
@gmail.com
```

You can add multiple domains:

```text
@gmail.com
@yahoo.com
@outlook.com
@company.com
```

This is particularly useful when your research requires a specific type of contact data.

For consumer-oriented research, common providers can be useful. For business-oriented research, company-specific domains may provide additional relevance when those addresses are publicly indexed.

> 🔎 **Domain Filtering:** The Actor searches specifically for the email domains you provide. Adding more domains can increase search coverage, but results still depend on publicly indexed information.

***

### Can You Exclude Specific Words or Phrases?

Yes. The `excludeWords` input allows you to filter out unwanted search-result descriptions before email extraction.

Example:

```text
crypto
onlyfans
adult
```

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

Single-word matching is case-insensitive and uses whole-word matching. Multi-word entries are treated as phrases.

> 🛡️ **Filtering Tip:** Use exclusion terms for categories you do not want in your dataset. Keep the list focused because aggressive exclusions can remove otherwise relevant results.

***

### What Is the Best Way to Improve Search Results?

The quality and quantity of a **Skyscanner Email Scraper** run depend heavily on search coverage.

When the result count is lower than expected, consider broadening your search in one of three ways.

First, add related keywords. Instead of one term such as `Hotel`, include variations such as `Hotel Manager`, `Boutique Hotel`, `Luxury Hotel`, and `Hotel Booking`.

Second, add additional email domains. A search limited to one provider can miss publicly indexed addresses using other domains.

Third, broaden or remove the geographic restriction when location targeting is too narrow.

> 💡 **Optimization Formula**
>
> **More relevant keywords + appropriate domains + sensible location targeting = broader search coverage**
>
> Do not assume that increasing every setting always improves quality. The goal is relevant coverage, not simply a larger number of records.

***

### Skyscanner Email Scraper – Use Cases

#### Travel Lead Generation

Use the **Skyscanner Email Scraper** to research publicly indexed contact opportunities around travel-related keywords.

Potential keyword themes include:

```text
Travel Agency
Travel Consultant
Tour Operator
Hotel
Airline
Flight Booking
Vacation
Luxury Travel
```

The resulting dataset can provide email addresses together with contextual fields for further qualification.

#### Hotel and Hospitality Research

Hospitality-focused searches can be built around terms such as:

```text
Hotel Manager
Boutique Hotel
Luxury Hotel
Hotel Booking
Resort
```

Location targeting can then be added when the research is country- or city-specific.

#### Airline and Flight Research

Keywords such as `Airline`, `Flight`, `Flight Booking`, or other relevant aviation terms can be used to identify indexed search results containing matching contact information.

#### Market Research

Researchers can use different keyword combinations to compare publicly indexed contact coverage across travel-related categories.

#### Contact Discovery

When a relevant email is publicly visible in indexed search information, the Actor can capture it in a structured dataset together with the corresponding title, description, and URL.

> 📌 **Use Case Note:** The Actor is intended for publicly available, search-indexed information. Use collected data responsibly and follow applicable privacy, marketing, and data-protection requirements.

***

### Input

The following inputs are supported by the Actor.

#### `keywords`

**Type:** Array of strings
**Required:** Yes
**Default:**

```json
[
  "Airline",
  "Hotel"
]
```

A list of keywords or search queries used to discover relevant Skyscanner results.

Specific combinations can produce more focused results than a single generic keyword.

#### `location`

**Type:** String
**Required:** No
**Default:** Empty

An optional country, state, or city used to narrow the search.

Example:

```text
United States
```

#### `customDomains`

**Type:** Array of strings
**Required:** No
**Default:**

```json
[
  "@gmail.com"
]
```

Email-domain suffixes to include in the search.

#### `maxEmails`

**Type:** Integer
**Minimum:** 1
**Maximum:** 10,000
**Default:** 10

Controls the target number of emails for each keyword + domain combination.

For paid runs, the configured target can be used up to the supported maximum. Free runs are subject to the Actor's 100-email ceiling described below.

#### `excludeWords`

**Type:** Array of strings
**Required:** No
**Default:** Empty

Words or phrases that cause matching search-result descriptions to be skipped.

***

### Output

Results are saved to an Apify Dataset in structured form.

Example record:

```json
{
  "network": "Skyscanner.com",
  "keyword": "Hotel",
  "title": "Example Result",
  "description": "Example indexed description containing contact@example.com",
  "url": "https://skyscanner.com/...",
  "email": "contact@example.com"
}
```

The exact records returned depend on publicly indexed search results and the inputs selected for the run.

Because duplicate emails are tracked, the Actor avoids repeatedly returning the same email address during its collection process.

Apify Dataset data can then be reviewed and exported using the platform's available dataset tooling.

***

### Pricing

The Actor's code implements different result limits for free and paid users.

> 💰 **Pricing / Usage Behavior**
>
> - Free users are limited to a maximum of **100 email addresses** by the Actor.
> - Paid users do not receive that specific 100-email free-tier restriction.
> - `maxEmails` controls the requested collection target for each keyword + domain combination.
> - The Actor only returns emails that it can discover from publicly indexed search results.
> - Reaching a requested target is never guaranteed.

The Actor does not define a fixed monetary price in the provided configuration, so no invented per-result or per-run price is documented here.

Actual Apify platform usage costs should be checked on the Actor's current Store pricing page and your Apify account billing information.

***

### Tips and Best Practices

> ✅ **Tips for Better Results**
>
> - Use multiple specific keywords rather than one broad keyword.
> - Test related role, service, business, and niche terms.
> - Add multiple relevant email domains when appropriate.
> - Use location targeting for regional research.
> - Remove overly restrictive location terms when results are sparse.
> - Use `excludeWords` to eliminate unwanted categories.
> - Start with a moderate `maxEmails` target before running larger searches.
> - Review the title and description fields to qualify collected emails.
> - Remember that publicly indexed availability determines what can be found.

Large or broad searches can require more runtime because the Actor processes multiple keyword/domain combinations and search-result pages.

> ⚠️ **Important:** A requested email count is a collection target, not a guarantee. Public indexing, search-result availability, duplicate emails, filters, and available contact information can all reduce the final count.

***

### Frequently Asked Questions

#### What is Skyscanner Email Scraper?

**Skyscanner Email Scraper** is an Apify Actor for discovering email addresses associated with publicly indexed `skyscanner.com` search results using keywords, optional locations, and configurable email domains.

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

The Actor searches for keyword and domain combinations and extracts matching email addresses from the available search-result descriptions.

#### Can I search Skyscanner emails by keyword?

Yes. The required `keywords` input accepts multiple search terms or queries, making targeted research possible across different travel and business categories.

#### Can I use multiple keywords in one Skyscanner Email Scraper run?

Yes. You can provide an array containing multiple keywords. Each keyword is processed as part of the Actor's search workflow.

#### Can I target a specific country or city?

Yes. The optional `location` field accepts a country, state, or city to narrow the search.

#### Can I search Gmail, Yahoo, Outlook, or business emails?

Yes. The `customDomains` field allows you to specify the email-domain suffixes you want to search for, including common providers and relevant company domains.

#### What data does Skyscanner Email Scraper return?

The dataset contains `network`, `keyword`, `title`, `description`, `url`, and `email` fields.

#### Can I exclude unwanted profiles or results?

Yes. Use `excludeWords` to skip search-result descriptions containing specified words or phrases.

#### Why did my Skyscanner Email Scraper run return fewer emails than requested?

The target is not a guarantee. Search results may contain no email address, duplicate emails may already have been collected, the location may be too narrow, exclusion terms may remove matches, or public indexing may not contain enough relevant data.

#### How can I get more results from Skyscanner Email Scraper?

Try adding more relevant keywords, expanding email-domain coverage, broadening the location, or removing an overly restrictive location filter.

#### Is maxEmails a total run limit?

No. According to the Actor configuration and workflow, `maxEmails` is intended as a target for each keyword + domain combination. However, free users are additionally subject to the implemented 100-email ceiling.

#### Does the Actor guarantee that every Skyscanner profile has an email?

No. The Actor can only extract email addresses that are available in the indexed information it processes.

#### Does the Actor remove duplicate email addresses?

Yes. The Actor maintains a set of previously seen email addresses and avoids collecting the same address repeatedly during the run.

#### Can I export the results?

Yes. Results are stored in an Apify Dataset, allowing you to use Apify's standard dataset viewing and export capabilities.

***

### Support

For questions, customization requests, or bespoke Actor development related to **Skyscanner Email Scraper**, contact:

**<alphascraper69@gmail.com>**

> 📩 **Need a custom scraping workflow?** Describe the target data, search requirements, filters, or output format you need, and the Actor can be evaluated for customization.

# 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": [
    "Airline",
    "Hotel"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "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": [
        "Airline",
        "Hotel"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

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

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

```

## MCP server setup

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