# Etsy Email Scraper (`solid-scraper/etsy-email-scraper`) Actor

📧 Etsy Email Scraper extracts business contact emails from Etsy listings fast—by keyword and location—so you can grow your leads, outreach, and sales pipelines with targeted prospects. 🚀 Perfect for marketers & agencies.

- **URL**: https://apify.com/solid-scraper/etsy-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **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

### Etsy Email Scraper 📬

**Etsy Email Scraper** is an Apify actor that helps you scrape emails from Etsy using your chosen keywords and filters. If you’re looking for an **Etsy email scraper**, an **Etsy seller email extractor**, or an **Etsy seller outreach email list**, this tool is built to find contact emails mentioned in publicly available Etsy bios and posts related to your keywords. ✅ Whether you’re a marketer, data analyst, or researcher, it supports lead generation and research workflows by saving you hours of manual email hunting—especially when you need an **Etsy bulk email scraper** style workflow at scale.

***

### 🚀 Why choose Etsy Email Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **Keyword-driven email discovery** | Uses your `keywords` to find relevant contact emails in Etsy bios and posts |
| ✅ **Custom email-domain targeting** | Helps you focus results using `customDomains` (e.g. `@gmail.com`) |
| ✅ **Proxy configuration support** | Works with `proxyConfiguration` to improve reliability for bulk scraping |
| ✅ **Engine choices** | Choose between `engine: cost-effective` and `engine: legacy` based on your reliability/cost preference |
| ✅ **Structured JSON output per email** | Each found email is pushed with consistent fields for easy importing |
| ✅ **Scale controls** | Use `maxEmails` to cap collection and control runtime/cost |

***

### 🔍 Key features

- 🧠 **Keyword + domain email targeting**: Finds emails from Etsy bios and posts that match your `keywords`, then filters by `customDomains`.
- 🌐 **Platform-scoped scraping**: Uses `platform` set to **Etsy** for focused extraction.
- 🎯 **Hard stop with `maxEmails`**: Stops once the requested number of emails is reached to help control scraping time and cost.
- 🛡️ **Resilient collection with retries/fallbacks**: Includes retry and fallback behavior for better continuity when results are limited.
- 📦 **Consistent dataset rows**: Pushes a structured record for every found email (including context like title/description and the page URL).
- 💾 **Progress persistence**: Saves progress continuously so you can resume without losing collected results.
- ⚙️ **Engine selection for different needs**: Switch between `cost-effective` and `legacy` engines based on your balance of speed vs reliability.

***

### 📝 Input

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

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

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | ✅ Yes | A list of keywords to search for (used to find emails from Etsy bios and posts related to your keywords). |
| `location` | ❌ No | Location to filter search results. Leave it empty to not apply a location filter. |
| `platform` | ❌ No | Select platform. This actor supports `Etsy`. |
| `customDomains` | ❌ No | List of custom email domains to target (for example `@gmail.com`). |
| `maxEmails` | ❌ No | Maximum number of emails to collect. The actor stops once this limit is reached. Higher values can take longer and still don’t guarantee reaching the exact number. |
| `engine` | ❌ No | Choose scraping engine. Use `cost-effective` for faster, cheaper scraping with residential proxies; use `legacy` for a more traditional approach that can be more reliable but slower/expensive. |
| `proxyConfiguration` | ❌ No | Configure proxies for this Actor (Apify Proxy / custom proxy settings depending on your workspace setup). |

***

### 📦 Output

The actor saves each found email as a JSON row in the dataset (via `Actor.push_data`). Each row includes context about why/how the email was found.

Example output row:

```json
[
  {
    "network": "Etsy.com",
    "keyword": "founder",
    "title": "Example Etsy result title",
    "description": "Example description text that contains an email like name@gmail.com",
    "url": "https://example.com/etsy-result-url",
    "email": "name@gmail.com",
    "proxyGroups": [
      "your-proxy-groups"
    ]
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `network` | string | Source network label. For this actor it’s always `Etsy.com`. |
| `keyword` | string | The keyword currently being used when the email was discovered. |
| `title` | string | Title text associated with the scraped result. |
| `description` | string | Description text where the actor extracts emails (as found in the scraped content). |
| `url` | string | URL of the scraped result page where the email context came from. |
| `email` | string | The extracted email address. |
| `proxyGroups` | array | Proxy groups used for the run (as provided/selected in proxy configuration). |

***

### How to use 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 **Etsy Email Scraper** in the Actors marketplace.

3. **Go to the INPUT section**\
   Use the built-in form to enter your `keywords`, and (optionally) `customDomains` and `location`.

4. **Set targeting & limits**\
   Enter your `keywords` (required) and choose a `maxEmails` cap to control runtime and dataset size.

5. **Choose an engine (optional but recommended)**\
   Pick `engine: legacy` for a more traditional approach or `engine: cost-effective` for faster, residential-proxy-based scraping.

6. **Configure proxies (optional)**\
   If you need proxy support, fill in `proxyConfiguration`.

7. **Run the actor**\
   Click **Run**. During execution, you’ll see logs as pages are fetched and emails are found/pushed to the dataset.

8. **Open results & export**\
   After completion, go to the **OUTPUT** tab, download the dataset, and export to JSON/CSV as supported by Apify.

No coding required—get an **Etsy email scraper** workflow running in minutes with reliable, structured email extraction from publicly available sources.

***

### 🧰 Advanced features & SEO optimization

- 🔎 **Engineered for Etsy lead generation**: Built specifically around “Etsy email scraper” workflows like extracting emails relevant to your keywords and domains.
- 🧭 **Result-quality steering with `customDomains`**: Helps your **Etsy seller email extractor** output match the inbox providers you care about (e.g. `@gmail.com`).
- 🧱 **Reliability-oriented scraping options**: Engine selection and proxy configuration are designed to improve consistency when scraping at scale (including retries/fallbacks).
- 🧾 **Clear, structured dataset rows**: Each email is stored with `keyword`, `title`, `description`, and `url`, making “email extraction from Etsy listings” easier to analyze.

***

### 🎯 Best use cases

- 📈 **B2B marketing teams**: Build an **Etsy seller outreach email list** faster by harvesting emails connected to your niche keywords.
- 🧑‍💼 **Sales & lead gen**: Turn research into action by collecting contact emails from Etsy bios/posts for targeted prospecting.
- 🔍 **Market researchers**: Compare who is reachable in a niche by analyzing email coverage across keywords and domains.
- 🎓 **Agency and consultants**: Produce an **Etsy lead generation email scraper** dataset for client campaigns without manual copy-paste work.
- 🗂️ **Data analysts**: Clean and enrich datasets using consistent fields like `keyword`, `email`, and source `url`.
- 💻 **Developers and automation pipelines**: Integrate the dataset output into CRM imports or downstream processing for **Etsy bulk email scraper** style jobs.
- ✉️ **Email marketing operations**: Start segmentation earlier by filtering by email domains using `customDomains`.

***

### 🔧 Technical specifications

- **Supported Input Formats**
  - ✅ JSON input with fields: `keywords`, `location`, `platform`, `customDomains`, `maxEmails`, `engine`, `proxyConfiguration`
  - ✅ `keywords` is required

- **Proxy Support**
  - ✅ `proxyConfiguration` supported
  - ✅ Engine supports `cost-effective` (residential proxies) and `legacy` (more traditional approach)

- **Retry Mechanism**
  - ✅ Includes retries and fallback behavior for more resilience when results are limited

- **Dataset Structure**
  - ✅ Each found email is pushed as a JSON row with: `network`, `keyword`, `title`, `description`, `url`, `email`, `proxyGroups`

- **Rate Limits & Performance**
  - ✅ Performance depends on search size and `maxEmails`
  - ✅ Large searches/high email limits may take longer

- **Limitations**
  - ❌ Emails are only extracted when they appear in the publicly available places the actor is designed to read (Etsy bios/posts related to your keywords).
  - ❌ Reaching `maxEmails` is not guaranteed—availability depends on what’s publicly present.

***

### ❓ FAQ

#### Can I scrape emails from Etsy using keywords?

✅ Yes. Etsy Email Scraper uses your `keywords` to discover emails from Etsy bios and posts related to those keywords.

#### How do I target specific inbox providers (like Gmail)?

You can use `customDomains` to filter emails by domain (for example `@gmail.com`). This is helpful for tighter outbound targeting.

#### What does `maxEmails` do?

`maxEmails` sets a cap on how many emails the actor will collect. The actor stops once the limit is reached, which helps control scraping time and costs.

#### Which engine should I choose: cost-effective or legacy?

Choose `engine: cost-effective` for faster, cheaper scraping with residential proxies, and choose `engine: legacy` for a more traditional approach that may be more reliable but slower/expensive.

#### Does it support proxies?

Yes. You can configure proxies using `proxyConfiguration`, and the actor also supports selecting an `engine` mode that aligns with different proxy approaches.

#### Is the output saved automatically while it runs?

Yes. Each extracted email row is pushed into the dataset as it’s found, and progress is persisted continuously.

#### Can I resume after an interrupted run?

The actor saves progress (including a stored list of seen emails and a cursor), which helps you avoid starting from zero.

#### Is this actor legal-compliance friendly?

✅ The tool is designed to collect data only from **publicly accessible sources**. However, compliance (GDPR/CCPA, spam regulations, and Etsy/platform policies) is your responsibility.

***

### 🤝 Support & feature requests

If you’re using **Etsy Email Scraper** (including as an **Etsy seller email extractor** or **Etsy email finder**) and want help or improvements, we’d love to hear from you.

- 💡 **Feature Requests**: Examples include CSV export enhancements, additional filtering options, or CRM-focused output formats for easier automation.
- 📧 **Contact**: Email us at <dataforleads@gmail.com>

Your feedback helps shape the roadmap for Etsy Email Scraper, including future improvements for **Etsy bulk email scraper** workflows.

***

### *Etsy Email Scraper* — final thoughts

*With this SEO-optimized Etsy email scraper workflow, you can collect structured contact emails from Etsy bios/posts at scale without manual scraping.*\
*Start your next outreach dataset with Etsy Email Scraper and move from research to results faster.*

***

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

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

Please use Etsy Email Scraper 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.

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

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

Configure proxies for this Actor.

## Actor input object example

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

# 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/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": [
        "founder",
        "marketing",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solid-scraper/etsy-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/dlZARFDtgMNUNPSw4/builds/BMfEwLxXZevmNsiTm/openapi.json
