# Best TikTok Email Scraper (`scrapebridge/best-tiktok-email-scraper`) Actor

Best TikTok Email Scraper extracts publicly available email addresses and contact details from TikTok profiles at scale. Collect emails, usernames, bios, follower counts, website links, and profile data for lead generation, outreach, influencer marketing, sales prospecting, and market research.

- **URL**: https://apify.com/scrapebridge/best-tiktok-email-scraper.md
- **Developed by:** [Scrape Bridge](https://apify.com/scrapebridge) (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 $3.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 Tiktok Email Scraper 🎯
Finding a real contact email from TikTok profiles shouldn’t take days of manual digging and copy-pasting. **Best Tiktok Email Scraper** pulls business and consumer emails from publicly available TikTok sources using your keywords, country, and content scope—so you can build a lead list faster. It’s ideal for TikTok email finder tool workflows, TikTok scrape email contacts, and TikTok outreach email scraper campaigns. Teams, freelancers, and analysts use it to discover and export email contacts at scale—often within minutes.  

---

### See the Data: Sample Output
Here's a real record from a single run:

```json
{
  "keyword": "fitness",
  "title": "Personal Trainer • Fitness Content",
  "url": "https://www.tiktok.com/@fitlife.coach",
  "description": "Online coaching for strength & conditioning. Email in bio: hello@fitlifecoaching.com",
  "email": "hello@fitlifecoaching.com",
  "email_domain": "fitlifecoaching.com",
  "email_type": "B2C",
  "scrape_from": "Profile",
  "country": "United States",
  "status": "success",
  "error_message": null
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `keyword` | string | Which of your search keywords produced this contact, so you can segment leads correctly. |
| `title` | string | The profile/video page title captured alongside the email for quick context during review. |
| `url` | string | The TikTok page link you can open to verify or manually spot-check the source. |
| `description` | string | Extra page text that helps you understand why the email was found and reduces guesswork. |
| `email` | string | The extracted email address you can use for outreach and workflows. |
| `email_domain` | string | The domain for deduping and filtering (for example, to keep only specific companies). |
| `email_type` | string | Whether the email was categorized as `B2B` or `B2C` for matching your outreach strategy. |
| `scrape_from` | string | Where the actor pulled the contact from (based on your `scrapeFrom` selection). |
| `country` | string | The target country scope used for your lead discovery run. |
| `status` | string | Indicates whether the record was captured successfully or encountered an issue. |
| `error_message` | string | Contains details when something goes wrong; otherwise it’s `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"],
  "country": "United States",
  "scrapeFrom": "All",
  "emailType": "B2C",
  "engine": "legacy",
  "maxEmails": 100
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `keywords` | ✅ | One or more keywords to search for on TikTok. |
| `country` | ✅ | Specifies the country to target for results (selected from the provided enum). |
| `scrapeFrom` | ✅ | Chooses where to scrape from: `All`, `Profile`, or `Videos`. |
| `emailType` | ✅ | Chooses one email category: `B2B` or `B2C`. |
| `engine` | ⬜ | Selects the scraping engine mode: `cost-effective` (Cost Effective (New)) or `legacy` (Legacy). |
| `maxEmails` | ✅ | Sets the maximum number of emails to collect (min 1, max 10000). |

↳ For the built-in `keywords` field, you can provide multiple terms (for example: `fitness`, `gym`, `workout`).

***

### What It Does

Best Tiktok Email Scraper extracts business and consumer emails from TikTok at the record level so you can export ready-to-use lead data.

#### Keyword and country-focused TikTok outreach leads

You provide `keywords` (like fitness- or marketing-related terms) and choose a `country` to focus the results. This makes it much easier to run targeted TikTok email scraping software instead of sifting through irrelevant pages.

#### Scrape from exactly what you need: Profile, Videos, or All

Use `scrapeFrom` to pick whether you want emails from profiles, videos, or both (`All`). This flexibility supports workflows like finding email from TikTok profile and extracting TikTok emails from videos and related pages.

#### Supports B2B and B2C email strategies

Set `emailType` to `B2B` or `B2C` so your TikTok contact email extraction aligns with your outreach goals. This helps when you’re building a TikTok email list builder for different buyer personas.

#### Cost and time control with Max Emails

Set `maxEmails` to cap how many contacts you want per run. If you increase the limit, searches may take longer and you may want to adjust run time in Run Options for large jobs.

#### Engine choice for different reliability and cost preferences

The `engine` input lets you choose between `cost-effective` and `legacy`. This is useful when you want a faster/cheaper approach for bulk work or a more traditional approach for maximum familiarity with the run behavior.

Overall, Best Tiktok Email Scraper delivers TikTok email finder tool results you can export directly for lead generation email scraper use cases.

***

### Why Best Tiktok Email Scraper?

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

#### Designed for bulk email discovery

Instead of manually checking profiles one by one, Best Tiktok Email Scraper helps you collect up to your `maxEmails` limit in a single run. That makes it a strong option for bulk TikTok email scraper workflows and TikTok email list builder projects.

#### Clear, integration-ready output

The dataset fields are structured and consistent, including `email`, `email_domain`, `email_type`, and the source context (`scrape_from`, `country`). This means TikTok outreach email scraper teams can import results directly into their pipelines with less cleanup.

#### Practical control over what gets scraped

By adjusting `scrapeFrom`, `emailType`, and `keywords`, you can steer results toward the contacts you actually want. That’s the difference between generic TikTok email harvesting tool output and focused TikTok influencer email scraper lists.

***

### Real-World Use Cases

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

**Growth and outreach teams**\
A lead gen team needs TikTok outreach email scraper contacts for multiple niches. They run Best Tiktok Email Scraper with a set of keywords and a country, choose `scrapeFrom: "All"`, and export the collected emails to launch email sequences faster.

**Influencer marketing managers**\
An influencer marketer is building a shortlist and wants to find email from TikTok profile sources without spending hours visiting each account. They use `emailType` to separate B2B vs B2C targets and pull structured results with `url` and `description` context for review.

**Freelance researchers**\
A freelancer has a client request to extract TikTok contact email extraction data for a report. They set `maxEmails` to control run duration, then deliver a dataset that includes `keyword`, `email_domain`, and `scrape_from` so the client can filter and analyze easily.

**Agencies running campaigns**\
An agency often needs to refresh outreach lists by niche. They run Best Tiktok Email Scraper repeatedly with different keyword groups, exporting TikTok emails from comments and profile-related sources depending on their `scrapeFrom` setting.

**Automation & data pipeline specialists**\
A developer wants consistent fields for downstream enrichment. They schedule runs and ingest the output dataset programmatically so the TikTok email finder tool becomes a repeatable data source for their CRM or analytics workflow.

***

### How to Run It

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

1. **Open the actor on Apify** — go to the actor page in Apify Console: https://console.apify.com
2. **Enter your inputs** — add `keywords`, pick a `country`, choose `scrapeFrom`, set `emailType`, and set `maxEmails`.
3. **Configure proxy settings briefly** — if you’re running larger jobs, enable the actor’s proxy support for more reliable scraping.
4. **Start the run and watch the live log** — keep an eye on progress so you know when results are being written.
5. **Open the Dataset tab to see live results** — records appear with fields like `email`, `email_domain`, and `scrape_from`.
6. **Export in your preferred format** — download as JSON, CSV, or Excel from the dataset view.
7. **Refine and rerun** — adjust `keywords`, `scrapeFrom`, or `maxEmails` if you need tighter or larger results.

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

***

### Export & Integration Options

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

You can export the Apify dataset from the dashboard as JSON, CSV, or Excel. This is ideal for a fast handoff to Google Sheets, Airtable, or direct import into a CRM.

For automation, you can connect the actor to your system via Apify API access and webhooks, then push results into tools using Zapier or Make. You can also schedule runs so your TikTok email list builder stays up to date automatically.

***

### Pricing

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

On Apify, you’ll typically start with a free set of credits for testing, then scale using pay-as-you-go compute. Subscription plans are available for heavier workloads. For the latest and most accurate costs, check the Apify pricing page.

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

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate-limit pressure | Built to work with built-in pacing and resilience for long runs. |
| Proxy reliability | Includes proxy support intended to keep scraping stable for larger jobs. |
| Run size control | `maxEmails` lets you cap output to manage time and cost. |
| Error visibility | Output includes `status` and `error_message` fields for issues at the record level. |

Limitations: This actor works with data available publicly. It can’t access private or login-gated content, so some pages may not yield emails even when profiles are visible. For best outcomes, use clear `keywords`, realistic `scrapeFrom`, and a reasonable `maxEmails` limit.

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 credits so you can run smaller tests before scaling up. Larger or repeated TikTok scrape email contacts jobs may require a paid plan depending on your usage.

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

No. This workflow is built to work with publicly available TikTok data, so you don’t need a TikTok login to run Best Tiktok Email Scraper.

#### How accurate is the extracted data?

Accuracy depends on what’s publicly shown on the target pages. The actor extracts email information that it finds in the scraped content and provides structured fields like `email` and `email_domain` for your verification and filtering.

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

You can control this with `maxEmails`, which caps the maximum number of emails the actor will collect. If you need around 100 emails, set `maxEmails` to 100 to match your expected lead volume.

#### How fresh is the data?

The data is collected during your run, so freshness depends on when you launch the actor. If you want newer TikTok email harvesting tool results, run it again on your preferred cadence.

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

This actor is intended for working with **publicly available data**. Whether your use is compliant with GDPR, CCPA, platform Terms, and spam regulations is your responsibility.

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

Yes. You can export your Apify dataset as JSON, CSV, or Excel, then import into Google Sheets or any spreadsheet/CRM tool you use.

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

Yes. You can use Apify scheduling options to run the actor automatically on a recurring schedule, which is useful for ongoing TikTok email list builder operations.

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

Yes. You can retrieve results programmatically through the Apify API so you can plug Best Tiktok Email Scraper into your pipelines and dashboards.

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

When issues happen, the output includes `status` and `error_message` so you can see which records succeeded and which failed. You can then rerun with refined inputs or adjusted limits.

***

### Get Help & Use Responsibly

Got a question about Best Tiktok Email Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com> — we’re happy to help with setup and improvements like more granular targeting for TikTok influencer email scraper use cases or export-friendly field adjustments.

Best Tiktok Email Scraper collects **publicly available data** from TikTok. It does not access private accounts, login-gated pages, or password-protected content. It’s your responsibility to comply with GDPR, CCPA, and TikTok’s Terms of Service. 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 TikTok.

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

Specify the country to target for Google search results.

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

Choose one option — All, Profile, or Videos.

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Best TikTok Email Scraper",
        "description": "Best TikTok Email Scraper extracts publicly available email addresses and contact details from TikTok profiles at scale. Collect emails, usernames, bios, follower counts, website links, and profile data for lead generation, outreach, influencer marketing, sales prospecting, and market research.",
        "version": "1.0",
        "x-build-id": "DWEhyqt64IxSX2YPu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapebridge~best-tiktok-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapebridge-best-tiktok-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/scrapebridge~best-tiktok-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapebridge-best-tiktok-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/scrapebridge~best-tiktok-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapebridge-best-tiktok-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 TikTok.",
                        "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",
                            "Profile",
                            "Videos"
                        ],
                        "type": "string",
                        "description": "Choose one option — All, Profile, or Videos.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
