# Best Etsy Email Scraper (`scraperoka/best-etsy-email-scraper`) Actor

📧 Best Etsy Email Scraper helps you quickly extract seller emails from Etsy listings for targeted outreach. ⚡ Fast, accurate, and user-friendly—ideal for lead generation, marketing, and B2B research. 🚀 Boost conversions with less manual work!

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

## Pricing

from $0.01 / 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 Etsy Email Scraper 📬

**Best Etsy Email Scraper** is a purpose-built Etsy email extractor that helps you discover contact emails at scale from publicly available Etsy pages. If you’re trying to build an Etsy outreach email list, speed up Etsy email list building, or find Etsy shop contact email leads by keyword and country, this tool streamlines the process—so you can spend less time hunting manually and more time running campaigns.

Whether you’re a marketer, recruiter, or data-driven researcher, this actor focuses on turning Etsy search intent into structured email data you can export and use right away.

---

### Why choose Best Etsy Email Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **All-in-one Etsy crawling** | Extract emails across multiple Etsy page types using one run (All / listing / shop / profile). |
| ✅ **Reliability options via Engine** | Choose between **Cost Effective (New)** and **Legacy** scraping engines to match your needs. |
| ✅ **Email Type filtering (B2B / B2C)** | Collect emails targeted for business outreach or consumer-style contacts. |
| ✅ **Structured dataset output** | Receive consistent fields like `email`, `email_domain`, and source metadata for clean analysis. |
| ✅ **Max limit control** | Set `maxEmails` to manage scraping time and cost while collecting up to your target volume. |
| ✅ **Scales with your keywords** | Use multiple **keywords** to broaden coverage for Etsy competitor email scraper-style research. |

---

### Key features

- 🔍 **Keyword-driven Etsy discovery**: Use one or more `keywords` to target relevant Etsy pages for scraping Etsy seller emails.
- 🌍 **Country targeting**: Focus results by selecting a `country` to improve relevance for Etsy outreach email list building.
- 🧩 **Scrape from multiple page types**: Choose `scrapeFrom` as **All**, **listing**, **shop**, or **profile** to match your lead sourcing strategy.
- 📌 **B2B or B2C email extraction**: Select `emailType` to tailor results to **B2B** or **B2C** contact styles for your Etsy seller email extractor workflow.
- 🛡️ **Engine choice for reliability & performance**: Pick **cost-effective** for faster, cheaper runs or **legacy** for a more traditional approach labeled as more reliable.
- 💾 **Dataset saved in structured fields**: Each extracted contact includes `keyword`, `url`, `description`, `email_domain`, and more for easy downstream use.
- ⏱️ **Max Emails guardrail**: Control output volume with `maxEmails` (from 1 up to 10000) so large runs stay manageable.
- 🤖 **Automation-ready for bulk workflows**: Designed for bulk email scraper for Etsy use cases where you want repeatable results.

---

### Input

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

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

#### Input Fields

| Key | Required | Description |
| --- | --- | --- |
| `keywords` | ✅ | Enter one or more keywords to search for on Etsy (e.g., “fitness”, “marketing”). |
| `country` | ✅ | Specify the country to target for results. This helps you focus your Etsy email list building on a specific geography. |
| `scrapeFrom` | ✅ | Choose where to scrape from: `All`, `listing`, `shop`, or `profile`. Selecting `All` searches across every type. |
| `emailType` | ✅ | Choose the email category: `B2C` or `B2B`. This helps tailor results for Etsy seller email extractor use cases. |
| `engine` | ❌ | Choose the scraping engine. `cost-effective` is described as **Cost Effective (New)**, while `legacy` is described as **Legacy** and labeled more reliable but slower and more expensive. |
| `maxEmails` | ✅ | Enter the maximum number of emails to collect (minimum 1, maximum 10000). Higher values can gather more, but large searches may take longer. |

***

### Output

The actor saves each extracted contact’s data in JSON format into the dataset view **Scraped Emails** (table fields shown in the UI correspond to the dataset schema).

Example output record shape:

```json
[
  {
    "keyword": "fitness",
    "title": "Example Etsy Seller Title",
    "url": "https://www.etsy.com/people/example-profile/",
    "description": "Example description text from the source page",
    "email": "seller@example.com",
    "email_domain": "example.com",
    "email_type": "B2C",
    "scrape_from": "profile",
    "country": "United States"
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `keyword` | string | The keyword that triggered the scraping for this result. |
| `title` | string | Title associated with the scraped page result. |
| `url` | string | The URL to the Etsy page where the email/contact details were found. |
| `description` | string | Description/snippet text captured from the source page. |
| `email` | string | The extracted email address. |
| `email_domain` | string | The domain portion of the extracted email (for segmentation and cleanup). |
| `email_type` | string | The requested email type category used for the extraction (**B2B** or **B2C**). |
| `scrape_from` | string | Where the actor scraped from (**All**, `listing`, `shop`, or `profile` context as captured in output). |
| `country` | string | The selected country for targeting results. |

You can export the dataset from Apify Console to common formats like JSON and CSV for your next step in Etsy email list building or CRM import.

***

### How to use Best Etsy Email Scraper (via Apify Console)

1. **Open Apify Console**: Go to [console.apify.com](https://console.apify.com) and sign in.
2. **Find the actor**: Search for **Best Etsy Email Scraper** in the Actors marketplace.
3. **Add your inputs**: In the **INPUT** panel, fill in:
   - `keywords` (one or more)
   - `country`
   - `scrapeFrom` (All / listing / shop / profile)
   - `emailType` (B2C or B2B)
   - (Optional) `engine`
   - `maxEmails` to set the volume cap
4. **Choose the engine (optional)**: If you want **Cost Effective (New)** behavior, select `cost-effective`; if you prefer the **Legacy** approach labeled more reliable, use `legacy`.
5. **Run the actor**: Click **Run** to start scraping. Watch the run logs for progress and any retry/fallback behavior.
6. **Review results**: When finished, open the **OUTPUT** tab and open the dataset view **Scraped Emails**.
7. **Export your data**: Export the dataset to your preferred format and use the email contacts for outreach, research, or lead enrichment.

No coding required—get accurate Etsy seller email extractor results in minutes with Best Etsy Email Scraper.

***

### Advanced features & SEO optimization

- 🔧 **Engine selection for your workflow**: Best Etsy Email Scraper supports both `cost-effective` and `legacy` engines, so you can align scraping speed and reliability with your goals.
- 🧠 **Designed for Etsy email list building**: Engineered to excel at “Etsy email scraper tool” and “Etsy seller email extractor” use cases where you need contact emails tied to keywords and country.
- 🗂️ **Better lead targeting with filters**: Use `emailType` (B2B vs B2C) and `scrapeFrom` (All/listing/shop/profile) to refine results for outreach email list building.
- 💾 **Structured output for downstream analysis**: The dataset includes consistent fields like `email_domain`, `scrape_from`, and `country` for easy filtering and segmentation.

***

### Best use cases

- 📈 **Marketers building outreach lists**: Generate an Etsy outreach email list by extracting emails using your chosen `keywords`, `country`, and `emailType`.
- 🧾 **Sales teams sourcing B2B leads**: Collect business-focused contacts with `emailType: "B2B"` for lead generation tool for Etsy emails workflows.
- 🧑‍💼 **Recruiters and talent scouts**: Identify relevant business or consumer contacts by extracting Etsy shop contact email finder results for professional outreach.
- 🔬 **Market researchers analyzing competitors**: Use Best Etsy Email Scraper as an Etsy competitor email scraper to study who lists public contact emails related to your niche.
- 🧠 **Data analysts segmenting contact domains**: Analyze `email_domain`, compare results by keyword, and clean/normalize contacts from the exported dataset.
- 🧑‍💻 **Developers integrating into automations**: Feed the dataset into your pipeline for automatic Etsy email collection and CRM enrichment.
- 🧮 **Growth teams running bulk collection**: Use `maxEmails` to control volume and collect enough contacts for bulk email scraper for Etsy campaigns.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `keywords` as an array (string list)
  - ✅ `country` as a string from the provided selection
  - ✅ `scrapeFrom` as `All`, `listing`, `shop`, or `profile`
  - ✅ `emailType` as `B2C` or `B2B`
  - ✅ `maxEmails` as an integer (1–10000)
  - ✅ (Optional) `engine` as `cost-effective` or `legacy`

- **Proxy Support**
  - ✅ Built-in proxy support for reliable scraping (engine choice can affect how performance and reliability are optimized)

- **Retry Mechanism**
  - ✅ Includes retries and fallbacks for resilience in long-running or large searches

- **Dataset Structure**
  - ✅ Saved dataset view **Scraped Emails** with fields:
    `keyword`, `title`, `url`, `description`, `email`, `email_domain`, `email_type`, `scrape_from`, `country`

- **Rate Limits & Performance**
  - ✅ Large searches or high email limits may take longer
  - ✅ You can increase timeout in Run Options for large runs (default mentioned: 3600 s / 1 hr)

- **Limitations**
  - ❌ Results depend on publicly available contact information present on the scraped pages
  - ❌ Higher `maxEmails` improves opportunity but isn’t guaranteed to match your exact target volume

***

### FAQ

#### Can I scrape both B2B and B2C emails from Etsy?

✅ Yes. Use the `emailType` input and choose either `B2B` or `B2C` based on whether you’re building a business outreach email list or a consumer-style contact list.

#### What does `scrapeFrom` control?

`scrapeFrom` controls where the actor looks on Etsy. You can choose `All` (searches across every type), or limit to `listing`, `shop`, or `profile` depending on how you want to source Etsy seller email extractor leads.

#### How do I control how many emails I get?

Set `maxEmails` to the maximum number of emails to collect. This is the main guardrail for managing scraping time and cost, especially when running large keyword batches.

#### Does the actor support different scraping engines?

✅ Yes. The `engine` parameter lets you choose between `cost-effective` (labeled Cost Effective (New)) and `legacy` (labeled Legacy, described as more reliable but slower and more expensive).

#### Where are the results saved?

The actor saves results into a dataset view called **Scraped Emails**. The dataset includes fields like `email`, `email_domain`, `keyword`, and `country`, which makes it easy to export and analyze.

#### Do I need to do any coding to use this actor?

✅ No coding required. You can configure input values directly in Apify Console, run the actor, and then export the dataset.

#### What’s the best way to use this for Etsy email list building?

Start by picking 2–5 strong `keywords`, set a relevant `country`, choose `scrapeFrom` based on whether you want shops/profiles/listings, and select `emailType` according to your outreach goals. Then set `maxEmails` to match your desired list size.

#### Is it legal to use scraped email data for outreach?

⚠️ It’s your responsibility to comply with applicable laws (including privacy requirements) and relevant platform policies. Best Etsy Email Scraper only works with information from publicly available sources, but you must ensure your use is compliant.

***

### Support & feature requests

If you’re using Best Etsy Email Scraper and want improvements, share feedback and feature ideas with us.

- 💡 **Feature Requests**: Examples include CSV export enhancements, additional filtering options, or new dataset fields that match your Etsy email outreach workflows.
- 📧 **Contact**: Send us a note at <dataforleads@gmail.com>

Your feedback helps shape the roadmap for better Etsy email scraper tool experiences.

***

*If you’re looking for the most comprehensive and SEO-optimized way to scrape Etsy seller emails, Best Etsy Email Scraper is built to help you collect leads faster—at scale.*

***

### Disclaimer

**This tool accesses publicly accessible sources only**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for ensuring your use complies with applicable laws and regulations (for example GDPR/CCPA where relevant), spam/marketing rules, and the target platforms’ terms of service. Use the results responsibly and ethically.

For data removal requests, contact us at <dataforleads@gmail.com>.

Always use Best Etsy Email Scraper for legitimate purposes.

# Actor input Schema

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

Enter one or more keywords to search for on Etsy.

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

Specify the country to target for Google search results.

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

Choose one option — All, listing, shop, 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"
  ],
  "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"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/best-etsy-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"] }

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/best-etsy-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"
  ]
}' |
apify call scraperoka/best-etsy-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Best Etsy Email Scraper",
        "description": "📧 Best Etsy Email Scraper helps you quickly extract seller emails from Etsy listings for targeted outreach. ⚡ Fast, accurate, and user-friendly—ideal for lead generation, marketing, and B2B research. 🚀 Boost conversions with less manual work!",
        "version": "1.0",
        "x-build-id": "lqdWmPREEonfSFBMO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~best-etsy-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-best-etsy-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/scraperoka~best-etsy-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-best-etsy-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/scraperoka~best-etsy-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-best-etsy-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 Etsy.",
                        "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",
                            "listing",
                            "shop",
                            "profile"
                        ],
                        "type": "string",
                        "description": "Choose one option — All, listing, shop, 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
