# Shopee Email Scraper (`solid-scraper/shopee-email-scraper`) Actor

📧 Shopee Email Scraper extracts business emails from Shopee with smart filters—find sellers faster by keyword & category. Perfect for lead gen, outreach, and marketing teams. 🚀 Efficient, accurate, and easy to use.

- **URL**: https://apify.com/solid-scraper/shopee-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (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

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### Shopee Email Scraper 📬

**Shopee Email Scraper** is an Apify actor that **scrapes emails from Shopee bios and posts related to your keywords**—so you can build targeted outreach lists without manually searching through profiles one by one. It’s a **Shopee email scraper** designed for **Shopee scrape emails**, **extract Shopee customer emails**, and **Shopee leads email scraper** workflows. Whether you're a marketer, recruiter, business owner, or data enthusiast, this actor helps you source contact emails from publicly available web data at scale, saving you hours of manual work.

***

### 🚀 Why choose Shopee Email Scraper?

| Feature | Benefit |
|---|---|
| ✅ **Keyword-led email discovery** | Finds emails from Shopee bios and posts related to your `keywords` so you can target specific niches |
| ✅ **Custom email domain filtering** | Limits results to the `customDomains` you care about (e.g., `@gmail.com`) for cleaner lead lists |
| ✅ **Built-in proxy support for reliability** | Helps keep scraping stable with configurable proxy support and smart IP reuse behavior |
| ✅ **Includes retries and fallbacks for resilience** | Uses fallbacks when no emails are found to improve the chances of getting useful results |
| ✅ **Structured dataset output** | Pushes consistent JSON rows to your dataset with fields like `email`, `keyword`, `title`, and `url` |
| ✅ **Scales with limits you control** | Use `maxEmails` to stop when you’ve collected enough emails and manage run time vs. coverage |

***

### 🔑 Key features

- 📌 **Accurate email extraction**: Extracts email addresses from publicly visible Shopee bios/posts and only keeps those matching your `customDomains`
- 🧠 **Keyword targeting built in**: Uses your provided `keywords` to focus on the profiles and bios most likely to contain relevant contact info
- 🗺️ **Optional location filter**: Adds a `location` filter to help narrow results to a geography you serve
- 🛡️ **Reliable proxy configuration**: Supports `proxyConfiguration` so you can run with the proxy setup that fits your environment
- 🔄 **Resilient scraping flow**: Designed with fallbacks when a keyword/domain combination yields no results
- 💾 **Real-time incremental saving**: Each discovered email is pushed to the dataset immediately to reduce the risk of losing progress
- ⏸️ **Progress persistence**: Saves progress during the run and resumes from the last cursor position on the next execution
- 🎯 **Controlled collection size**: Stop at `maxEmails` to balance data quality and speed (higher limits can take longer)

***

### 📝 Input

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

```json
{
  "keywords": ["founder", "marketing"],
  "location": "",
  "platform": "Shopee",
  "customDomains": ["@gmail.com"],
  "maxEmails": 20,
  "proxyConfiguration": {}
}
```

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `keywords` | ✅ | A list of keywords to search for. The actor uses these keywords to find Shopee bios/posts where emails are likely to appear. |
| `location` | ❌ | Optional location filter to narrow results to a specific geography. Leave empty to run without location constraints. |
| `platform` | ❌ | Select platform. Only `Shopee` is available in the actor input. |
| `customDomains` | ❌ | Email domains to keep. The actor extracts emails matching these domains (for example, `@gmail.com`). |
| `maxEmails` | ❌ | Maximum number of emails to collect. The actor stops once this limit is reached. Setting a higher limit may increase coverage but can take longer. |
| `proxyConfiguration` | ❌ | Proxy settings for this Actor. Configure it if you need custom proxy behavior for your runs. |

***

### 📦 Output

The actor saves each discovered email as a JSON row pushed into the default dataset during the run.

Example pushed output row:

```json
{
  "network": "Shopee",
  "keyword": "founder",
  "title": "Example profile title",
  "description": "Example description snippet containing contact text",
  "url": "https://example.com/profile",
  "email": "contact@gmail.com",
  "proxyGroups": ["RESIDENTIAL"]
}
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `network` | string | The source network label (always `Shopee`). |
| `keyword` | string | The keyword currently being used to discover the email. |
| `title` | string | Title text associated with the discovered result. |
| `description` | string | Description/snippet text where the email was found. |
| `url` | string | The URL tied to the result where the email was found. |
| `email` | string | The extracted email address that matches your configured domain filters. |
| `proxyGroups` | array | The proxy group values used for the run (as provided/used by the actor). |

You can export your dataset to common formats (for example JSON/CSV) from the Apify Console dataset view.

***

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

1. **Open Apify Console**\
   Log in at https://console.apify.com and go to the **Actors** tab.

2. **Find Shopee Email Scraper**\
   Search for **Shopee Email Scraper** and open the actor page.

3. **Configure INPUT**\
   In the **INPUT** section, fill in the actor fields:
   - `keywords`: required (start with something like `["founder", "marketing"]`)
   - `customDomains`: recommended (e.g., `["@gmail.com"]`)
   - `location`: optional
   - `maxEmails`: optional (use this to cap how many emails you collect)
   - `proxyConfiguration`: optional, if you want to control proxy behavior

4. **Run the actor** ✅\
   Click **Run**. During execution, you’ll see logs showing progress and discovered emails being pushed incrementally to the dataset.

5. **Watch for resilience behavior** 🔄\
   If a keyword/domain pair yields no emails, the actor may use fallback logic to improve outcomes.

6. **Open the OUTPUT dataset** 📊\
   After the run finishes, open the dataset in the **OUTPUT** tab to review rows containing `email`, `url`, `keyword`, and supporting text fields like `title` and `description`.

7. **Export results**\
   Use the dataset export options to download the data for your CRM, spreadsheet, or analysis pipeline.

No coding required—get targeted **Shopee scrape emails** results in minutes.

***

### ⚙️ Advanced features & SEO optimization

- 🚀 **Engineered for Shopee email harvesting**: Built specifically to excel at Shopee email scraper workflows like “Shopee email list scraper” and “Shopee email finder” lead discovery.
- 🎛️ **Domain-focused targeting**: Use `customDomains` so the Shopee Email Scraper extracts emails only from the email domains you care about—ideal for cleaner outreach lists.
- 🧷 **Input normalization for keywords**: `keywords` can be provided as a list; the actor handles keyword input and iterates across combinations.
- 📈 **Progress-aware runs**: Progress is saved during execution and the actor resumes using a stored cursor, which is helpful for long or large searches.
- 🧾 **Structured, dataset-first output**: Each found email is pushed immediately with consistent fields—making it easier to integrate into reporting and analytics.

***

### 💡 Best use cases

- 📣 **Marketing teams building lead lists**: Collect Shopee email addresses tied to relevant niches to speed up outreach and campaign setup.
- 🧑‍💼 **BD managers finding partners and sellers**: Extract emails from profiles where keyword-matched bios/posts contain contact details.
- 🔎 **Researchers running public contact-data studies**: Build datasets for analysis by keyword and email domain using controlled `maxEmails`.
- 🧾 **Data analysts enriching datasets**: Combine extracted Shopee contacts with other CRM fields using the dataset’s structured JSON output.
- 🛠️ **Automation builders (API pipelines)**: Use the dataset rows (`email`, `url`, `keyword`) as a reliable input for downstream workflows.
- 💬 **Sales teams qualifying prospects**: Quickly identify leads likely to be responsive by filtering to specific domains via `customDomains`.

***

### 🔧 Technical specifications

- **Supported Input Formats**
  - ✅ `keywords` as an array of strings (required)
  - ✅ `location` as a string (optional)
  - ✅ `platform` as a string (only `Shopee` is available)
  - ✅ `customDomains` as an array of strings
  - ✅ `maxEmails` as an integer (min: 1, max: 10000)
  - ✅ `proxyConfiguration` as an object

- **Proxy Support**
  - ✅ Configurable via `proxyConfiguration`
  - ✅ Includes fallback behavior when results are low/none for a given keyword/domain combination

- **Retry Mechanism**
  - ✅ Uses retries and fallback logic to improve reliability during runs

- **Dataset Structure**
  - ✅ JSON rows pushed incrementally per discovered email with fields:
    - `network`, `keyword`, `title`, `description`, `url`, `email`, `proxyGroups`

- **Rate Limits & Performance**
  - ✅ Designed to run with concurrency for faster discovery
  - ⚠️ Large searches or high `maxEmails` may take longer (increase run timeout in Run Options if needed)

- **Limitations**
  - ❌ Emails are only found where they appear in publicly available Shopee bios/posts related to your keywords
  - ❌ Setting a higher `maxEmails` increases potential volume but does not guarantee reaching that number

***

### ❓ FAQ

#### Do I need an account or login to run Shopee Email Scraper?

✅ No special login input is required. The actor is designed to scrape emails from publicly available sources based on your keywords and filters.

#### What kinds of emails does Shopee Email Scraper extract?

✅ It extracts email addresses that appear in Shopee bios and posts related to your provided `keywords`, and it filters them to match your `customDomains`.

#### How do I get more results when emails seem low?

✅ Try re-running with broader or additional keywords and add more relevant `customDomains`. You can also increase `maxEmails` (keeping in mind that larger limits can take longer).

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

✅ Yes. Use `maxEmails` to stop the run once the limit is reached. This helps control scraping time and cost.

#### Does it support custom email domains like @gmail.com?

✅ Yes. Use `customDomains` and include the domains you want (for example `@gmail.com`). The actor extracts emails that match those domains.

#### Does it save progress if the run is interrupted?

✅ Yes. The actor persists progress (including the cursor and seen emails) and resumes from the last saved position on the next execution.

#### Can I use it for lead generation and outreach?

✅ You can use the output to build outreach lists. However, it’s your responsibility to comply with privacy laws, anti-spam regulations, and Shopee/platform policies.

#### How can I get help or request a feature?

✅ For custom solutions or feature requests, contact `[dataforleads@gmail.com](mailto:dataforleads@gmail.com)`. For example enhancements like better export needs or workflow-specific outputs, sharing your requirements helps the team improve the actor.

***

### 🤝 Support & feature requests

Have questions about using **Shopee Email Scraper** or want to improve your email-harvesting workflow?

- 💡 **Feature Requests**: Tell us what you need next (for example, exporting formats for your CRM workflow, adding more filters, or improving dataset structure).
- 📧 **Contact**: Email us at `[dataforleads@gmail.com](mailto:dataforleads@gmail.com)`.

Your feedback helps shape the roadmap for this Shopee email scraper.

***

### *Closing thoughts on Shopee Email Scraper*

If you’re looking for the most comprehensive and SEO-optimized way to **scrape emails from Shopee**, **Shopee Email Scraper** gives you a practical, dataset-first workflow designed for real lead generation and research at scale.

***

### Disclaimer

**This tool only accesses publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected pages. Legal compliance (including GDPR, CCPA, spam regulations, and platform terms) is the user’s responsibility.

For data removal requests, contact `[dataforleads@gmail.com](mailto:dataforleads@gmail.com)`. Use this tool responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

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

A list of keywords to search for.

## `location` (type: `string`):

Location to filter search results.

## `platform` (type: `string`):

Select platform.

## `customDomains` (type: `array`):

List of custom email domains

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

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `proxyConfiguration` (type: `object`):

Configure proxies for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "platform": "Shopee",
  "customDomains": [
    "@gmail.com"
  ],
  "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": [
        "founder",
        "marketing"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/shopee-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": [
        "founder",
        "marketing",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    "founder",
    "marketing"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ]
}' |
apify call solid-scraper/shopee-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solid-scraper/shopee-email-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fv9xwx1YCx7KQqHzb/builds/KPik10iEmYmJURTh3/openapi.json
