# Best Twitter Email Scraper (`scrapevanta/best-twitter-email-scraper`) Actor

Best Twitter Email Scraper helps you find publicly available email addresses from X (Twitter) profiles quickly and accurately. Extract emails, usernames, bios, follower counts, and website links for lead generation, outreach, sales prospecting, recruitment, and market research.

- **URL**: https://apify.com/scrapevanta/best-twitter-email-scraper.md
- **Developed by:** [ScrapeVanta](https://apify.com/scrapevanta) (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 $5.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 Twitter Email Scraper ⚡

Scraping Twitter contact emails manually is slow, inconsistent, and doesn’t scale when you need real leads fast. **Best Twitter Email Scraper** automatically extracts business and consumer emails from X (Twitter) using your keywords and targeting settings. If you’re looking for the **best Twitter email scraper** or a **Twitter email scraper tool** to build outreach lists by country and email type, this actor is for you. Sales teams, researchers, and marketers use it to turn public profiles into usable email-domain and contact datasets in a single run.

---

### See the Data: Sample Output

Here’s a real record from a single run:

```json
{
  "keyword": "fitness",
  "title": "John Fitness Studio",
  "url": "https://x.com/john_fitness_studio",
  "description": "Train with us — bookings and inquiries available.",
  "email": "hello@johnfitnessstudio.com",
  "email_domain": "johnfitnessstudio.com",
  "email_type": "B2B",
  "scrape_from": "Profile",
  "country": "United States",
  "status": "success",
  "error_message": null
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `keyword` | string | The keyword you used to generate the lead, useful for campaign-level tracking and filtering. |
| `title` | string | The page/profile title that helps you quickly sanity-check relevance. |
| `url` | string | The X (Twitter) profile URL so your team can review context before outreach. |
| `description` | string | The extracted text snippet that provides supporting context around the email. |
| `email` | string | The actual extracted contact email address you can use for outreach. |
| `email_domain` | string | Lets you group leads by company domain and improve deliverability (and deduping). |
| `email_type` | string | Indicates whether the email is treated as B2B or B2C based on your selection. |
| `scrape_from` | string | Shows whether results came from `All`, `Status`, or `Profile` so you understand source coverage. |
| `country` | string | Confirms the country targeting used for the run output. |
| `status` | string | Signals whether the record was produced successfully vs. hit an issue. |
| `error_message` | string | Contains an error description when something goes wrong, otherwise `null`. |

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", "workout", "gym"],
  "country": "United States",
  "scrapeFrom": "All",
  "emailType": "B2B",
  "engine": "cost-effective",
  "maxEmails": 100
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `keywords` | ✅ | Enter one or more keywords to search for on X (Twitter). |
| `country` | ✅ | Specify the country to target for the run’s location focus. |
| `scrapeFrom` | ✅ | Choose one option—`All`, `Status`, or `Profile`—to control where the actor looks for contact info. |
| `emailType` | ✅ | Choose one—`B2C` or `B2B`—to bias results toward consumer vs. business-style emails. |
| `engine` | ⬜ | Pick the scraping engine: `cost-effective` for faster/cheaper scraping, or `legacy` for more reliable (but slower and more expensive) scraping. |
| `maxEmails` | ✅ | Set the maximum number of emails to collect for this run (helps manage scraping time and cost). |

***

### What It Does

Best Twitter Email Scraper extracts emails from X (Twitter) and writes structured results directly into your Apify dataset so you can use them immediately.

#### Finds Twitter leads by keywords and targeting

You provide `keywords`, a `country`, and an `emailType`, and the actor returns records that include the lead context (`title`, `url`, `description`) alongside the extracted email fields. This makes it easier to turn discovery into outreach without manual searching.

#### Supports B2B and B2C email extraction

By selecting `emailType` as `B2B` or `B2C`, Best Twitter Email Scraper is designed to focus results toward business-style or consumer-style email addresses. It also outputs the `email_type` field per record so you can filter cleanly in your workflow.

#### Uses your scrape scope: All, Status, or Profile

With `scrapeFrom`, you control whether the actor searches across every type (`All`) or narrows to `Status` or `Profile`. The output includes `scrape_from` so you can analyze what worked best for your niche and messaging.

#### Produces clean, integration-ready datasets

Each dataset row includes `keyword`, `title`, `url`, `description`, `email`, `email_domain`, `email_type`, `scrape_from`, and `country`. That consistent structure makes it simple to import into spreadsheets, CRMs, or build downstream automations.

#### Handles engine choice and run cost control

You can switch between `engine` modes depending on whether you want `cost-effective` speed/cost or the more `legacy`-style reliability tradeoff. Use `maxEmails` to cap results and keep longer runs predictable.

Overall, Best Twitter Email Scraper helps you generate a usable Twitter email list faster—without the spreadsheet cleanup usually required after manual collection.

***

### Why Best Twitter Email Scraper?

There are plenty of ways to pull data from X (Twitter) — here’s why Best Twitter Email Scraper stands out.

#### Built for outreach-ready email datasets

Instead of dumping raw pages, it outputs an email-focused dataset with `email` and `email_domain` plus context fields like `url` and `description`. That structure supports both fast deduping and higher-quality outreach.

#### Flexible targeting for real lead finding

Best Twitter Email Scraper lets you steer results with `keywords`, `country`, `scrapeFrom`, and `emailType`, so you don’t end up with a random list. This is especially useful when you’re doing Twitter leads email scraper style research across multiple campaigns.

#### Engine options for your speed vs reliability needs

You can select `cost-effective` when you want faster, cheaper scraping or switch to `legacy` when you prefer the more reliable approach. That makes the actor a practical choice for both testing and larger sourcing efforts like bulk Twitter email scraper workflows.

***

### Real-World Use Cases

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

**Sales Teams**\
A sales development team has a list of target keywords for a new vertical and needs direct contact emails from relevant X (Twitter) profiles. They run Best Twitter Email Scraper with `emailType` set to `B2B` and `scrapeFrom` set to `All`, then import the results into their outreach tool using `email` and `email_domain`. The team spends less time searching and more time personalizing.

**Marketing Agencies**\
An agency building a lead pipeline for multiple clients needs separate email lists by niche. They run the actor per client keyword group, filter by `keyword`, and keep only the `B2B` or `B2C` results they need. The structured output (including `url` and `description`) helps their analysts validate lead relevance quickly.

**Freelance Researchers & Analysts**\
A researcher wants to quantify which kinds of X (Twitter) accounts publish business contact emails for a specific market. They use `country` targeting and switch `scrapeFrom` between `Profile` and `Status` to compare coverage. The dataset’s `scrape_from` field makes it easy to segment analysis by source.

**Automation & Integration Specialists**\
A data engineer wants to trigger recurring lead-gathering runs and push results into a data warehouse. They schedule runs in Apify, then use the dataset export to feed their pipeline with consistent fields like `email`, `email_domain`, and `country`. This supports repeatable workflows for Twitter contact email finder use cases.

***

### How to Run It

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

1. **Open the actor page on Apify**\
   Go to the actor on Apify: https://console.apify.com and find **Best Twitter Email Scraper**.

2. **Enter your inputs**\
   Add `keywords`, choose `country`, set `scrapeFrom`, pick `emailType`, and set `maxEmails` to control output size.

3. **Configure proxy settings (optional but recommended)**\
   If you use Apify Proxy for better reliability, enable it in the Run options as you normally would on Apify.

4. **Start the run and watch the live log**\
   Launch the actor and monitor progress in the log to confirm it’s extracting emails as expected.

5. **Open the Dataset tab to see live results**\
   As records are produced, you’ll see fields like `email`, `email_domain`, `url`, and `email_type`.

6. **Export in your preferred format**\
   Download JSON, CSV, or Excel directly from the Apify dataset tab, then import into your workflow.

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

***

### Export & Integration Options

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

You can export your dataset from the Apify dashboard as JSON, CSV, or Excel. Since each record includes fields like `email`, `email_domain`, and `url`, it’s easy to map into spreadsheets, CRMs, or lead lists without extensive transformation.

For integration, you can connect your run outputs via the Apify API, use webhooks to trigger downstream steps when the run completes, and automate pushes with no-code tools like Zapier or Make. You can also schedule runs for ongoing lead sourcing so your Twitter email extraction software workflow stays current.

***

### Pricing

Best Twitter Email Scraper runs on Apify, which includes a **free tier** — no credit card needed to start. Free tier usage is based on sign-up credits and is typically enough for several real test runs.

After that, the actor is billed using Apify’s compute model (Actor compute units), so you scale based on workload rather than paying for a fixed monthly lock-in. For the exact cost details and plan limits, 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 |
|---|---|
| Scoping and volume control | You can limit output using `maxEmails` to manage time and cost. |
| Different scraping approaches | You can choose `engine` as `cost-effective` or `legacy` based on reliability vs cost/speed needs. |
| Dataset-ready output | Results are saved to a structured dataset with consistent fields like `email`, `email_domain`, and `email_type`. |

Limitations: the actor works with publicly available content and cannot access login-gated or private data. Results quality depends on what contact information is published publicly by X (Twitter) account owners. For larger or more specialized requirements, consider tuning `keywords`, `country`, `scrapeFrom`, and `emailType`.

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 sign-up credits so you can run Best Twitter Email Scraper for testing without immediate payment.

#### Do I need to log in or create an account on X (Twitter)?

No. This actor is designed to work with publicly available data and doesn’t require a X (Twitter) login from your side.

#### How accurate is the extracted data?

The actor extracts email information and associated context from what’s publicly available. Accuracy depends on the quality of what the account owner has published.

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

You control the maximum by setting `maxEmails` (minimum 1, maximum 10000). Higher values can increase run time, so it’s best to set a limit based on your target list size.

#### How fresh is the data?

Results reflect what’s available at the time the actor runs, since it scrapes publicly available sources during execution.

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

You should always use the output responsibly and comply with applicable regulations and platform terms. This actor collects publicly available data; how you store, process, and contact people is your responsibility.

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

Yes. You can export from the Apify dashboard as JSON, CSV, or Excel, which you can then import into Google Sheets or other tools.

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

Yes. On Apify, you can schedule actor runs so your Twitter email harvesting software workflow refreshes leads automatically.

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

Yes. You can trigger runs programmatically and fetch dataset results using the Apify API.

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

Errors are handled so you can inspect issues per record (for example, via an `error_message` field when present) while still reviewing successful outputs in your dataset.

***

### Get Help & Use Responsibly

Got a question about Best Twitter Email Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com> — we respond quickly and keep the actor maintained. If you want improvements like better batching for bulk Twitter email scraper runs or tighter filters for Twitter contact email finder workflows, tell us what you need.

**This actor collects publicly available data.** It does not access private accounts, login-gated pages, or password-protected content. You are responsible for complying with GDPR, CCPA, and platform Terms of Service when using the 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 X (Twitter).

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

Specify the country to target for Google search results.

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

Choose one option — All, Status, or Profile.

## `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("scrapevanta/best-twitter-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("scrapevanta/best-twitter-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 scrapevanta/best-twitter-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Best Twitter Email Scraper",
        "description": "Best Twitter Email Scraper helps you find publicly available email addresses from X (Twitter) profiles quickly and accurately. Extract emails, usernames, bios, follower counts, and website links for lead generation, outreach, sales prospecting, recruitment, and market research.",
        "version": "1.0",
        "x-build-id": "bVJQItDZfH4nVVypm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapevanta~best-twitter-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapevanta-best-twitter-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/scrapevanta~best-twitter-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapevanta-best-twitter-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/scrapevanta~best-twitter-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapevanta-best-twitter-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 X (Twitter).",
                        "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",
                            "Status",
                            "Profile"
                        ],
                        "type": "string",
                        "description": "Choose one option — All, Status, or Profile.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
