# Facebook B2b Email Scraper (`scrapers-hub/facebook-b2b-email-scraper`) Actor

📧 Facebook B2B Email Scraper extracts business emails from Facebook pages for targeted outreach. 🚀 Fast, accurate results to power lead generation, sales, and recruitment. 🏢 Get verified contacts and grow your pipeline efficiently!

- **URL**: https://apify.com/scrapers-hub/facebook-b2b-email-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Lead generation, Automation, Social media
- **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

### Facebook B2b Email Scraper 🔍

**Facebook B2b Email Scraper** helps you extract business email addresses from public Facebook sources using keyword-driven discovery by country and content type. If you’re searching for a **facebook lead email scraper**, a **facebook b2b email scraper**, or a tool to **extract email addresses from facebook**, this actor is designed to save you hours of manual lead hunting—especially when you’re building outreach lists at scale.

Whether you’re a marketer, recruiter, sales development rep, or data enthusiast, you can use this actor to automate email discovery for B2B workflows like prospecting, enrichment, and research, producing structured results you can export and analyze.

---

### Why choose Facebook B2b Email Scraper? ✅

| Feature | Benefit |
|---|---|
| ✅ **Keyword-based discovery** | Find relevant leads using your input keywords, then scrape matching public contacts |
| ✅ **Flexible “Scrape From” scope** | Target specific Facebook content types (Profiles, Posts, Groups, and more) or scrape everything |
| ✅ **Engine selection for performance vs reliability** | Choose **cost-effective** or **legacy** scraping behavior based on your needs |
| ✅ **Reliability built in** | Includes resilience patterns (retries and fallbacks) to handle intermittent blocking |
| ✅ **Structured dataset output** | Get clean, tabular fields ready for spreadsheets, CRMs, and analytics |
| ✅ **Scale-friendly automation** | Use max-email limits to control output size while running large keyword batches |

---

### Key features 🚀

- 📌 **Accurate business email extraction**: Focuses on B2B-style contact signals to help you collect email addresses for outreach
- 🧩 **Input flexibility (keywords + country + content type)**: Tune your results with `keywords`, `country`, and `scrapeFrom`
- 🛡️ **Resilient scraping engine options**: Switch between `cost-effective` and `legacy` modes to match your reliability needs
- 🔄 **Retry and fallback behavior**: Built for robustness when public pages are inconsistent or temporarily unavailable
- 📊 **Complete, structured results**: Every record includes `keyword`, `title`, `url`, `description`, `email`, `email_domain`, `scrape_from`, and `country`
- 💾 **Real-time dataset writing**: Data is pushed into the Apify dataset as it’s collected (reduces risk of data loss)
- 🌐 **Email-domain ready fields**: Includes both the full `email` and the derived `email_domain` for easier filtering

---

### Input

Provide input via an `input.json` file. Example structure:

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

#### Input Fields

| Key | Required | Description |
|---|---:|---|
| `keywords` | ✅ | One or more keywords to search for on Facebook. Use multiple keywords to broaden lead discovery. |
| `country` | ✅ | Select the country to target for the lead discovery run. |
| `scrapeFrom` | ✅ | Choose which Facebook content types to scrape: `All`, `Profiles`, `Reels`, `Posts`, `Groups`, `Videos`, `Photos`, `Events`, or `Marketplace`. |
| `engine` | ❌ | Pick the scraping engine: `cost-effective` (faster/cheaper approach) or `legacy` (traditional approach). Default is `legacy`. |
| `maxEmails` | ✅ | The maximum number of emails to collect (between 1 and 10000). Default is `20`. |

***

### Output

After execution, the actor saves each profile’s data in JSON format in the dataset **Scraped Emails**.

```json
[
  {
    "keyword": "fitness",
    "title": "Example Fitness Studio",
    "url": "https://www.facebook.com/examplepage",
    "description": "Example contact description text from the public source.",
    "email": "contact@example.com",
    "email_domain": "example.com",
    "scrape_from": "Profiles",
    "country": "United States"
  }
]
```

#### Output Fields

| Field | Required | Description |
|---|---:|---|
| `keyword` | ✅ | The keyword that produced this result. |
| `title` | ✅ | The title extracted from the public source. |
| `url` | ✅ | A link to the Facebook source for this record. |
| `description` | ✅ | The descriptive text associated with the record (as scraped from the public source). |
| `email` | ✅ | The extracted email address (if found). |
| `email_domain` | ✅ | The domain part of the email (e.g., `example.com`) for easy filtering. |
| `scrape_from` | ✅ | Indicates which content type was scraped (based on your `scrapeFrom` setting). |
| `country` | ✅ | The country used for this run. |

> Export note: You can export the dataset from Apify’s **OUTPUT** tab as JSON/CSV depending on your workflow (e.g., onboarding into a CRM or further analysis in a spreadsheet).

***

### How to use Facebook B2b Email Scraper (via Apify Console) 🧭

1. **Open Apify Console**\
   Log in at [console.apify.com](https://console.apify.com) and navigate to the **Actors** page.

2. **Find Facebook B2b Email Scraper**\
   Search for **Facebook B2b Email Scraper** and open the actor details page.

3. **Go to the INPUT panel**\
   Paste your `input.json` values into the built-in input form (or switch to JSON mode if available).

4. **Set your discovery inputs**\
   Enter `keywords` (one or more), choose a `country`, and set `scrapeFrom` to target the content type you care about (for example, `Profiles` or `Groups`).

5. **Choose an engine (optional but recommended)**\
   If you want faster runs and cost control, set `engine` to `cost-effective`. If you want the more traditional approach, use `legacy` (default).

6. **Control volume with maxEmails**\
   Set `maxEmails` to cap how many emails the actor collects for this run.

7. **Run the actor & monitor progress**\
   Start the run. You’ll see logs while it collects results and writes them to the dataset, including handling for intermittent failures via retries and fallbacks.

8. **Open the dataset & export**\
   After completion, open the dataset **Scraped Emails** to view and export your results (great for **facebook lead email scraper** and **facebook outreach email list scraper** workflows).

No coding required — get accurate results in minutes with this **facebook b2b leads email tool**.

***

### Advanced features & SEO optimization ✨

- ⚙️ **Engine choice for your budget and reliability needs**: Use `engine: cost-effective` for a more cost-efficient approach, or `engine: legacy` when you prefer the traditional scraping behavior.
- 🔎 **Engineered for lead generation use cases**: Built to excel at “facebook b2b email scraper” workflows like automated facebook email finder for b2b and automated facebook email scraping.
- 🧠 **Input normalization through your keyword strategy**: Your `keywords`, `country`, and `scrapeFrom` settings directly shape what gets scraped and returned.
- 📋 **Email + domain separation**: The dataset includes both `email` and `email_domain`, which makes filtering and enrichment easier for outreach campaigns.

***

### Best use cases 🎯

- 📈 **Sales teams building outbound pipelines**: Generate a targeted **facebook b2b leads email tool** dataset for new account outreach in specific regions
- 🧑‍💼 **Recruiters sourcing industry talent**: Build lists of businesses and organizations connected to your search keywords to reach hiring managers
- 🎯 **Marketing teams running partner outreach**: Extract business emails tied to relevant Facebook content to contact agencies, vendors, and partners faster
- 🧠 **Data analysts enriching lead research**: Use the structured dataset fields (`email`, `email_domain`, `country`, `scrape_from`) for segmentation and quality checks
- 🛠️ **CRM and automation developers**: Feed the **Facebook B2b Email Scraper** output into your pipeline for deduping and workflow triggers
- 🧾 **Market researchers mapping contact channels**: Compare email domains across regions to understand where B2B contact info is publicly discoverable
- 👥 **Community-focused lead generation**: Scrape from `Groups` or `Events` (via `scrapeFrom`) to find organizations that publicly list contact emails

***

### Technical specifications 🧰

- **Supported Input Formats**
  - ✅ `keywords` (array of strings)
  - ✅ `country` (string from the provided enum list)
  - ✅ `scrapeFrom` (string: `All`, `Profiles`, `Reels`, `Posts`, `Groups`, `Videos`, `Photos`, `Events`, `Marketplace`)
  - ✅ `engine` (`cost-effective` or `legacy`)
  - ✅ `maxEmails` (integer, min 1, max 10000)

- **Proxy Support**
  - ✅ Includes built-in proxy support for reliable scraping

- **Retry Mechanism**
  - ✅ Includes retries and fallbacks for resilience when data access is inconsistent

- **Dataset Structure**
  - ✅ Dataset: **Facebook Email Data**
  - ✅ Dataset view: **Scraped Emails**
  - ✅ Fields: `keyword`, `title`, `url`, `description`, `email`, `email_domain`, `scrape_from`, `country`

- **Rate Limits & Performance**
  - ✅ Controlled output volume using `maxEmails`
  - ✅ Designed to handle real-world variability with resilience patterns

- **Limitations**
  - ❌ Results depend on publicly available content and whether emails are discoverable
  - ❌ Not every record will necessarily include an email, depending on source content

***

### FAQ ❓

#### Is Facebook B2b Email Scraper suitable for B2B lead generation?

✅ Yes. **Facebook B2b Email Scraper** is designed to collect business email addresses from publicly available Facebook sources using your `keywords`, `country`, and `scrapeFrom` settings—making it a practical option for **facebook lead email scraper** and **facebook b2b email scraper** use cases.

#### What kinds of Facebook content can it scrape?

It supports `scrapeFrom` values including `All`, `Profiles`, `Reels`, `Posts`, `Groups`, `Videos`, `Photos`, `Events`, and `Marketplace`, so you can narrow results to the formats most relevant to your outreach.

#### What does the dataset contain?

The actor saves results to a dataset view called **Scraped Emails**, with fields such as `keyword`, `title`, `url`, `description`, `email`, `email_domain`, `scrape_from`, and `country`.

#### Do I need to code to use it?

✅ No coding is required. You can configure inputs in Apify Console and run the actor directly, then export the dataset as needed.

#### Can I control how many emails I collect?

Yes. Use `maxEmails` to set the maximum number of emails the actor will collect for your run (range: 1–10000).

#### How do the engine options differ?

You can choose `engine` as `cost-effective` or `legacy`. `cost-effective` is intended to be more cost-efficient, while `legacy` provides the traditional behavior. If you want the safest default, `legacy` is the default value.

#### Is it legal to use scraped emails for outreach?

💡 The tool is designed to work with **publicly accessible sources**. However, whether you can use the data for outreach depends on applicable laws (for example, GDPR/CCPA), platform rules, and email/spam regulations—so it’s your responsibility to ensure compliant usage.

#### Can I remove data after scraping?

If you need data removal, contact <dataforleads@gmail.com>.

***

### Support & feature requests 🤝

Want to improve **Facebook B2b Email Scraper** for your **facebook b2b email scraper** workflow? Send feedback and ideas—your input helps shape the roadmap.

- 💡 **Feature Requests**: Examples include adding more export-friendly options (like CSV formatting improvements), additional filtering options for domains, or enhancements for data shaping.
- 📧 **Contact**: Reach out via <dataforleads@gmail.com>.

***

### Closing CTA / Final thoughts 🚀

*Get a faster path to reliable B2B contact discovery with this most comprehensive, SEO-optimized **Facebook B2b Email Scraper**.*\
*Set your keywords and country, choose your `scrapeFrom`, and export structured results for your outreach and analysis.*

***

### Disclaimer

**This tool accesses publicly accessible sources.** It does not access private profiles, authenticated data, or password-protected pages. It is your responsibility to comply with applicable laws (including GDPR/CCPA where relevant), platform terms of service, and email/spam regulations before using the extracted data.

For data removal requests, contact <dataforleads@gmail.com>. Always use this tool responsibly, ethically, and for legitimate purposes only.

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

## `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",
  "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("scrapers-hub/facebook-b2b-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("scrapers-hub/facebook-b2b-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 scrapers-hub/facebook-b2b-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook B2b Email Scraper",
        "description": "📧 Facebook B2B Email Scraper extracts business emails from Facebook pages for targeted outreach. 🚀 Fast, accurate results to power lead generation, sales, and recruitment. 🏢 Get verified contacts and grow your pipeline efficiently!",
        "version": "1.0",
        "x-build-id": "S86BU9F6dSFRXPJzl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~facebook-b2b-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-facebook-b2b-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/scrapers-hub~facebook-b2b-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-facebook-b2b-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/scrapers-hub~facebook-b2b-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-facebook-b2b-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",
                    "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"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
