# Best Facebook Email Scraper (`scrapeflux/best-facebook-email-scraper`) Actor

🚀 Best Facebook Email Scraper helps you extract verified Facebook user emails for targeted outreach. 🎯 Save time, boost lead gen, and streamline CRM research with smart, compliant-friendly scraping for sales & marketing teams.

- **URL**: https://apify.com/scrapeflux/best-facebook-email-scraper.md
- **Developed by:** [ScrapeFlux](https://apify.com/scrapeflux) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### Best Facebook Email Scraper 🎯
Getting emails from Facebook the manual way is slow, inconsistent, and quickly becomes unmanageable when you’re trying to build a Facebook marketing email list at scale. **Best Facebook Email Scraper** automates the job by extracting business and consumer email addresses from public Facebook content using keyword and country targeting. It’s a strong Facebook email extractor tool for lead research, outreach email scraper workflows, and Facebook group email scraper projects. This is built for marketers, data analysts, and researchers who need usable email leads fast. In one run, you can collect up to your chosen limit (for example, 100 emails) and keep the work moving without copy-pasting.

---

### See the Data: Sample Output
Here's a real record from a single run:
```json
{
  "keyword": "fitness",
  "title": "Fitness Studio — Contact",
  "url": "https://www.facebook.com/ExamplePage/about",
  "description": "Email us for bookings and business inquiries.",
  "email": "hello@fitnesstudio.example",
  "email_domain": "fitnesstudio.example",
  "email_type": "B2B",
  "scrape_from": "Profiles",
  "country": "United States",
  "status": "success",
  "error_message": null
}
````

**Output Fields**

| Field | Type | What It Tells You |
|---|---|---|
| `keyword` | string | The keyword that drove this discovery result—useful for segmenting leads by topic. |
| `title` | string | The page/profile title captured alongside the email for better context during review. |
| `url` | string | The Facebook URL where the contact was found so you can verify and reference the source. |
| `description` | string | The surrounding text snippet that contains the email clue (handy for qualification). |
| `email` | string | The extracted email address you can use for outreach and lead enrichment. |
| `email_domain` | string | The domain portion of the email—great for domain-based filtering and CRM matching. |
| `email_type` | string | Whether the email is treated as `B2B` or `B2C` so you can route leads correctly. |
| `scrape_from` | string | The Facebook content type used for scraping (for example Profiles, Groups, Reels, or Marketplace). |
| `country` | string | The country targeting used for the run, so you can build geo-specific segments. |
| `status` | string | Lets you quickly identify whether the record represents a successful extraction. |
| `error_message` | string | null | Contains details when something goes wrong so you can troubleshoot without guesswork. |

Export your full dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Setting It Up

Drop this into your `input.json` and you're ready to go:

```json
{
  "keywords": ["fitness", "gym", "workout"],
  "country": "United States",
  "scrapeFrom": "All",
  "emailType": "B2C",
  "engine": "legacy",
  "maxEmails": 100
}
```

**Input Fields**

| Parameter | Required | What It Does |
|---|---:|---|
| `keywords` | ✅ | One or more keywords to search for on Facebook. |
| `country` | ✅ | Targets a specific country for your run so results are more relevant to your market. |
| `scrapeFrom` | ✅ | Chooses where to scrape from on Facebook (All, Profiles, Reels, Posts, Groups, Videos, Photos, Events, or Marketplace). |
| `emailType` | ✅ | Select `B2C` or `B2B` so your outreach email list matches your lead strategy. |
| `engine` | ⬜ | Pick `cost-effective` (faster, cheaper scraping) or `legacy` (more reliable but slower and more expensive). |
| `maxEmails` | ✅ | Sets the maximum number of emails to collect so you can control scraping time and cost. |

***

### What It Does

It extracts email addresses from public Facebook content based on your keywords, country, and selected email type.

#### Targeted lead discovery by keyword and country

You provide `keywords` and a `country`, and the actor uses those inputs to focus the search for relevant Facebook contacts—perfect for building a Facebook contact email finder workflow that doesn’t waste time.

#### Control where emails are scraped from

With `scrapeFrom`, you can target Facebook Profiles, Groups, Reels, Posts, Videos, Photos, Events, Marketplace—or select `All` to search across every type. This makes it useful as both a Facebook page email extraction tool and a Facebook group email scraper, depending on your goals.

#### Output that’s ready for outreach and analysis

Each result includes `email`, `email_domain`, and contextual fields like `title`, `url`, and `description`. That means a Facebook outreach email scraper workflow can hand off clean data to your CRM, spreadsheet, or enrichment process.

#### Uses your B2B or B2C strategy

By setting `emailType` to `B2B` or `B2C`, you can align the results with your outreach motion—whether you’re building a business email harvesting software list or a consumer-oriented contact pool.

#### Engine choice for cost vs. reliability

The `engine` input lets you choose `cost-effective` or `legacy` depending on how you want to balance speed and reliability. If you’re running large searches or high email limits, the ability to manage performance and time becomes especially valuable for Facebook email harvesting software at scale.

Overall, Best Facebook Email Scraper helps you build a usable email list from Facebook faster—without turning the process into a manual spreadsheet project.

***

### Why Best Facebook Email Scraper?

There are plenty of ways to pull data from Facebook—here’s why **Best Facebook Email Scraper** stands out.

#### Designed for practical lead list building

It focuses on extracting email leads with the context you need (`url`, `title`, `description`) so your team can qualify faster instead of starting from raw noise. This is exactly what you want from a “Facebook scraper to get emails” when outreach speed matters.

#### Strong control over scope and output volume

You can limit results with `maxEmails` and steer scraping scope with `scrapeFrom` and `emailType`. That level of control makes Best Facebook Email Scraper suitable for both small tests and larger Facebook marketing email list scraper runs.

#### Built for resilient runs

The actor includes resilience behaviors such as retries and fallbacks to reduce the impact of temporary failures. It also writes results into your dataset so you keep progress even when you stop early or encounter extraction issues.

***

### Real-World Use Cases

Here's how different teams put Best Facebook Email Scraper to work:

**Growth marketers** need fresh targets for new campaign launches. They run keyword + country batches, pull the resulting emails into their pipeline, and quickly build a Facebook marketing email list scraper export for segmented outreach.

**Sales teams** often start with a list of niche pages or community categories. By setting `scrapeFrom` to the right content types and choosing `emailType` (B2B or B2C), they generate leads with `email_domain` for fast CRM matching and deduping.

**Recruiters and partnerships researchers** use the tool to find contact emails that relate to business inquiries. With contextual `description` and source `url`, they can verify relevance before sending outreach—ideal for a “Facebook contact email finder” workflow.

**Data analysts and researchers** may want structured results for downstream modeling or reporting. The consistent dataset fields (`country`, `scrape_from`, `email_type`, plus email/domain) make it straightforward to analyze lead distributions by topic and geo.

**Automation specialists / developers** integrate the actor into a larger data pipeline. They trigger runs via the Apify API, then ingest the dataset into their storage layer for scheduled refreshes—useful when building a repeatable Facebook email extractor tool process.

***

### How to Run It

No code required. Here's how to get your first results in under 5 minutes:

1. **Open the actor on Apify** — visit the actor page at [console.apify.com](https://console.apify.com) and open **Best Facebook Email Scraper**.
2. **Enter your inputs** — set `keywords`, `country`, `scrapeFrom`, `emailType`, and (optionally) `maxEmails` and `engine`.
3. **Configure proxy settings** — if you’re running larger batches, set proxy options in Run Options for better scraping reliability.
4. **Start the run and watch the live log** — use the actor logs to monitor progress while the dataset fills.
5. **Open the Dataset tab to see live results** — records appear as the run progresses, ready for review.
6. **Export in your preferred format** — download JSON, CSV, or Excel from the dataset.
7. **Refine and rerun** — adjust `keywords`, `scrapeFrom`, and `emailType` to expand beyond the first batch.

The whole setup takes under 5 minutes — results start appearing within seconds of launch.

***

### Export & Integration Options

Once your data is collected, Best Facebook Email Scraper fits directly into your existing workflow.

You can download your results from the Apify dataset tab in **JSON, CSV, or Excel**. For teams who need a spreadsheet-first process, this makes it easy to move from raw extraction to a Facebook outreach email scraper list in minutes.

For automation, you can connect the results to your stack using **Apify API**, **webhooks**, and **Zapier / Make** integrations. If you want the same Facebook email extraction workflow on a schedule, you can also run the actor automatically via cron scheduling in Apify.

***

### Pricing

Best Facebook Email Scraper runs on Apify, which includes a **free tier** — no credit card needed to start.

You’ll use Apify credits for platform compute, and you can scale up when you move from testing to larger runs. For the most accurate, up-to-date details (including how many credits your workloads typically consume), check the pricing page on Apify.

Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate-limited public pages | Includes resilience behaviors such as retries and fallbacks |
| Different scraping scopes | Lets you choose `scrapeFrom` to control which Facebook content types are targeted |
| Output size control | Uses `maxEmails` to cap results for predictable run behavior |
| Mixed result quality | Returns extracted fields with contextual information (`title`, `url`, `description`) |
| Run interruptions | Progress is written to your dataset as the run proceeds |

**Limitations:** This actor extracts emails from publicly available data. It does not provide access to private or login-gated content, and the number of emails you get depends on what email information is actually present in public sources. Always review and validate leads before outreach.

For enterprise-scale needs or custom configurations, reach out and we'll help.

***

### Frequently Asked Questions

#### Is there a free plan?

Yes, Apify offers a free tier with usage credits so you can run Best Facebook Email Scraper for testing. Exact credit amounts depend on your account and current Apify terms.

#### Do I need to log in or create an account on Facebook?

No. The actor is designed to work with publicly available Facebook content, so you don’t need a Facebook login to run it.

#### How accurate is the extracted data?

Accuracy depends on what’s published in public Facebook sources. The actor extracts emails into structured fields such as `email` and `email_domain`, but you should still validate before sending outreach.

#### How many results can I get per run?

You control this using `maxEmails`, which sets the maximum number of emails to collect. If you set a higher limit, you may collect more results, but the run can take longer.

#### How fresh is the data?

Freshness depends on when the actor accesses the public pages during your run. If you rerun with updated `keywords`, country, and limits, you’ll refresh the dataset.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor collects data from **publicly available data** that users can view without logging in. Compliance with GDPR, CCPA, and all applicable laws is your responsibility when storing and using contact details.

#### Can I export to Google Sheets or Excel?

Yes. You can export your dataset from the Apify dashboard as JSON, CSV, or Excel, and then import into Google Sheets or your preferred spreadsheet tool.

#### Can I schedule this to run automatically?

Yes. Apify supports scheduled runs, so you can automate repeated lead collection workflows for Best Facebook Email Scraper without manual intervention.

#### Can I access results via the API?

Yes. You can retrieve results programmatically using the Apify API, which is useful for data pipelines and custom dashboards.

#### What happens when the actor encounters an error?

When extraction hits issues, results may be missing for some entries, and the dataset includes status/error context (for example `status` and `error_message`). You can use that to understand what happened and rerun with adjusted settings if needed.

***

### Get Help & Use Responsibly

Got a question about Best Facebook Email Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com>. We welcome support questions and ideas that improve lead quality, output consistency, and workflow options for Facebook email extractor tool users.

**Disclaimer:** This actor collects **publicly available data**. It does not access private accounts, login-gated pages, or password-protected content. It’s your responsibility to comply with GDPR, CCPA, platform ToS, and any applicable regulations when using or storing results. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

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

Enter one or more keywords to search for on Facebook.

## `country` (type: `string`):

Specify the country to target for Google search results.

## `scrapeFrom` (type: `string`):

Choose one option — All, Profiles, Reels, Posts, Groups, Videos, Photos, Events, or Marketplace.

## `emailType` (type: `string`):

Choose one — B2C or B2B.

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

Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE\_SERP proxy with traditional selectors - more reliable but slower and more expensive.

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

Enter the maximum number of emails to collect.

## Actor input object example

```json
{
  "keywords": [
    "fitness",
    "gym",
    "workout"
  ],
  "country": "United States",
  "scrapeFrom": "All",
  "emailType": "B2C",
  "engine": "legacy",
  "maxEmails": 20
}
```

# 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": [
        "fitness",
        "gym",
        "workout"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeflux/best-facebook-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": [
        "fitness",
        "gym",
        "workout",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapeflux/best-facebook-email-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "fitness",
    "gym",
    "workout"
  ]
}' |
apify call scrapeflux/best-facebook-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapeflux/best-facebook-email-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Best Facebook Email Scraper",
        "description": "🚀 Best Facebook Email Scraper helps you extract verified Facebook user emails for targeted outreach. 🎯 Save time, boost lead gen, and streamline CRM research with smart, compliant-friendly scraping for sales & marketing teams.",
        "version": "1.0",
        "x-build-id": "2doK4M4mcfA8qHUjN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapeflux~best-facebook-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapeflux-best-facebook-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapeflux~best-facebook-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapeflux-best-facebook-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapeflux~best-facebook-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapeflux-best-facebook-email-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords",
                    "country",
                    "scrapeFrom",
                    "emailType",
                    "maxEmails"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Enter one or more keywords to search for on Facebook.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "United States",
                            "United Kingdom",
                            "Canada",
                            "Australia",
                            "Germany",
                            "France",
                            "India",
                            "Japan",
                            "Brazil",
                            "Italy",
                            "Spain",
                            "Netherlands",
                            "Sweden",
                            "Norway",
                            "Denmark",
                            "Finland",
                            "Poland",
                            "Czech Republic",
                            "Hungary",
                            "Romania",
                            "Bulgaria",
                            "Croatia",
                            "Slovenia",
                            "Slovakia",
                            "Estonia",
                            "Latvia",
                            "Lithuania",
                            "Portugal",
                            "Greece",
                            "Cyprus",
                            "Malta",
                            "Luxembourg",
                            "Ireland",
                            "Belgium",
                            "Austria",
                            "Switzerland",
                            "Liechtenstein",
                            "Iceland",
                            "South Korea",
                            "China",
                            "Mexico",
                            "Argentina",
                            "Chile",
                            "Colombia",
                            "Peru",
                            "Venezuela",
                            "Ecuador",
                            "Uruguay",
                            "Paraguay",
                            "Bolivia",
                            "Guyana",
                            "Suriname",
                            "French Guiana",
                            "Falkland Islands (Malvinas)",
                            "South Georgia and the South Sandwich Islands",
                            "Bonaire, Sint Eustatius and Saba",
                            "Curaçao",
                            "Aruba",
                            "Sint Maarten (Dutch part)",
                            "Turks and Caicos Islands",
                            "British Virgin Islands",
                            "Anguilla",
                            "Montserrat",
                            "Antigua and Barbuda",
                            "Barbados",
                            "Dominica",
                            "Grenada",
                            "Saint Kitts and Nevis",
                            "Saint Lucia",
                            "Saint Vincent and the Grenadines",
                            "Trinidad and Tobago",
                            "Jamaica",
                            "Bahamas",
                            "Belize",
                            "Costa Rica",
                            "Guatemala",
                            "Honduras",
                            "Nicaragua",
                            "Panama",
                            "El Salvador",
                            "Cuba",
                            "Dominican Republic",
                            "Haiti",
                            "Puerto Rico",
                            "U.S. Virgin Islands",
                            "American Samoa",
                            "Guam",
                            "Northern Mariana Islands",
                            "Saudi Arabia",
                            "United Arab Emirates",
                            "Bahrain",
                            "Iraq",
                            "Iran, Islamic Republic of",
                            "Israel",
                            "Jordan",
                            "Kuwait",
                            "Lebanon",
                            "Oman",
                            "Qatar",
                            "Syrian Arab Republic",
                            "Yemen",
                            "Afghanistan",
                            "Bangladesh",
                            "Bhutan",
                            "Maldives",
                            "Nepal",
                            "Pakistan",
                            "Sri Lanka",
                            "Myanmar",
                            "Cambodia",
                            "Lao People's Democratic Republic",
                            "Thailand",
                            "Viet Nam",
                            "Malaysia",
                            "Singapore",
                            "Brunei Darussalam",
                            "Philippines",
                            "Indonesia",
                            "Timor-Leste",
                            "Papua New Guinea",
                            "Fiji",
                            "New Zealand",
                            "Solomon Islands",
                            "Vanuatu",
                            "New Caledonia",
                            "French Polynesia",
                            "Wallis and Futuna",
                            "Samoa",
                            "Tonga",
                            "Tuvalu",
                            "Kiribati",
                            "Nauru",
                            "Federated States of Micronesia",
                            "Marshall Islands",
                            "Palau",
                            "Cook Islands",
                            "Niue",
                            "Tokelau"
                        ],
                        "type": "string",
                        "description": "Specify the country to target for Google search results.",
                        "default": "United States"
                    },
                    "scrapeFrom": {
                        "title": "Scrape From",
                        "enum": [
                            "All",
                            "Profiles",
                            "Reels",
                            "Posts",
                            "Groups",
                            "Videos",
                            "Photos",
                            "Events",
                            "Marketplace"
                        ],
                        "type": "string",
                        "description": "Choose one option — All, Profiles, Reels, Posts, Groups, Videos, Photos, Events, or Marketplace.",
                        "default": "All"
                    },
                    "emailType": {
                        "title": "Email Type",
                        "enum": [
                            "B2C",
                            "B2B"
                        ],
                        "type": "string",
                        "description": "Choose one — B2C or B2B.",
                        "default": "B2C"
                    },
                    "engine": {
                        "title": "Engine",
                        "enum": [
                            "cost-effective",
                            "legacy"
                        ],
                        "type": "string",
                        "description": "Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE_SERP proxy with traditional selectors - more reliable but slower and more expensive.",
                        "default": "legacy"
                    },
                    "maxEmails": {
                        "title": "Max Emails",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Enter the maximum number of emails to collect.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
