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

Etsy Email Scraper extracts publicly available Etsy email addresses using targeted keywords, locations, and custom email domains. Build structured Etsy leads with email, title, description, URL, and keyword data for prospecting, research, and outreach.

- **URL**: https://apify.com/email\_scraper/etsy-email-scraper.md
- **Developed by:** [Email Scraper](https://apify.com/email_scraper) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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 – Overview

Etsy Email Scraper is an Apify Actor designed to extract publicly listed email addresses associated with Etsy pages and profiles that appear in search results for your chosen keywords. Instead of manually searching different Etsy-related queries and collecting contact details one by one, you can provide multiple search terms, optional locations, and email-domain filters and let the Actor process the searches automatically.

The Actor is useful for lead generation, contact discovery, market research, outreach preparation, business prospecting, and building structured Etsy contact datasets. It searches for Etsy-related pages through search results and extracts email addresses that match the email domains you specify.

> **📌 Etsy Email Scraper at a glance**
>
> - Search Etsy-related results using multiple keywords or queries.
> - Extract publicly visible email addresses from search-result descriptions.
> - Filter emails by domains such as `@gmail.com`, `@yahoo.com`, or custom domains.
> - Narrow searches by country, state, or city.
> - Exclude unwanted profiles using words or phrases.
> - Remove duplicate email addresses across the run.
> - Store structured results in an Apify Dataset.
> - Resume progress when a run is interrupted.

The easiest workflow is simple: enter your keywords, optionally add a location and email domains, choose your maximum target, then run the Actor.

### 🔹 Etsy Email Scraper – Key Features

Etsy Email Scraper focuses specifically on turning targeted Etsy search queries into structured contact records.

#### 🎯 Targeted Etsy Email Search

You can provide multiple keywords instead of relying on a single broad search. This is useful when you want to discover different types of Etsy sellers, business owners, creators, founders, designers, or other relevant profiles.

- Use keywords such as `Business Owner`, `Founder`, `Etsy Seller`, or other relevant terms.
- Add multiple related search terms to expand coverage.
- Each keyword is processed as part of the Actor's search workflow.
- More specific keywords can help target a narrower type of prospect.

For example, instead of searching only for `Business Owner`, you can provide several related queries that represent the type of Etsy contact you want to discover.

#### 📧 Custom Email Domain Filtering

The Actor allows you to specify which email-domain suffixes should be collected.

- `@gmail.com`
- `@yahoo.com`
- `@outlook.com`
- `@hotmail.com`
- Custom business domains

This makes the Etsy Email Scraper useful when your workflow requires particular types of email addresses rather than every possible email domain.

#### 📍 Location-Based Search

The optional location field allows you to narrow the search geographically.

- Country
- State
- City
- Other manually entered geographic terms

You can also leave the location empty when you want the search to remain broader.

#### 🚫 Exclude Unwanted Results

The `excludeWords` option lets you skip descriptions containing unwanted words or phrases.

- Exclude individual words.
- Exclude multi-word phrases.
- Matching is case-insensitive.
- Individual words are matched as whole words.
- A matching description is skipped before an email is collected from it.

This can help reduce irrelevant contacts when a search produces mixed results.

### 🔹 Etsy Email Scraper – What Data Can You Extract

The Actor produces structured contact records from search results where matching email addresses are publicly available.

> **📦 Output data**
>
> - **network** — Identifies the source as `Etsy.com`.
> - **keyword** — The keyword that generated the search.
> - **title** — Title of the search result.
> - **description** — Description/snippet associated with the result.
> - **url** — URL found for the result.
> - **email** — Matching email address extracted from the result description.

The default Dataset view is configured to display the following primary fields:

- `keyword`
- `title`
- `description`
- `url`
- `email`

The `network` field is also included in the data pushed by the Actor, identifying the source network as Etsy.com.

The Actor does **not** claim to provide private Etsy account information, hidden contact information, passwords, authentication data, or other restricted information. Email extraction is based on email addresses that appear in the publicly available search-result content processed by the Actor.

> **💡 Important:** A search target does not guarantee that an email address exists. If a profile or page does not publicly expose a matching email address, the Actor cannot manufacture or infer one.

### 🔹 Etsy Email Scraper – How to Use It

Using the Etsy Email Scraper requires only a few input values.

#### 1. Add Your Keywords

Enter one or more keywords in the `keywords` field.

Example:

```json
{
  "keywords": [
    "Business Owner",
    "Founder",
    "Etsy Seller",
    "Handmade Business"
  ]
}
```

Specific and related search terms can provide broader discovery than relying on one generic keyword.

#### 2. Add a Location if Needed

Use the `location` field when your prospecting requires geographic targeting.

```json
{
  "location": "New York"
}
```

If you do not need geographic filtering, leave this field empty.

#### 3. Choose Email Domains

Specify the domains you want the Actor to look for.

```json
{
  "customDomains": [
    "@gmail.com",
    "@yahoo.com",
    "@outlook.com"
  ]
}
```

The Actor processes the keyword and domain combinations separately, so adding relevant domains can increase the number of potential search combinations.

#### 4. Set the Maximum Emails

The `maxEmails` value controls the target for each keyword + domain combination.

For example, with 3 keywords and 2 email domains and a value of `20`, the Actor works through six keyword/domain combinations, with a target of up to 20 newly collected addresses for each combination when available.

```json
{
  "maxEmails": 20
}
```

This is **not a guaranteed number of emails**. Actual results depend on what matching public search results are available.

#### 5. Add Exclusion Words if Required

For example:

```json
{
  "excludeWords": [
    "crypto",
    "onlyfans"
  ]
}
```

Descriptions containing those terms are skipped.

### 🔹 How to Extract Etsy Emails with Targeted Keywords

The most practical approach is to build a group of related search terms around your target audience.

For example, instead of using only:

```text
Business Owner
```

you could use:

```text
Business Owner
Founder
Etsy Seller
Handmade Business
Small Business Owner
Creative Entrepreneur
```

This keyword strategy gives the Etsy Email Scraper multiple search angles while keeping the intent focused.

> **🔎 Search strategy tip**
>
> - Start with several highly relevant keywords.
> - Add alternative descriptions of the same audience.
> - Use location filters when geographic targeting matters.
> - Test multiple email domains when appropriate.
> - Avoid extremely narrow combinations if they produce sparse results.
> - Review your output and refine keywords based on the quality of returned contacts.

### 🔹 Can Etsy Email Scraper Find Every Etsy Email?

No. Etsy Email Scraper can only collect email addresses that are publicly exposed in the search-result content available to the Actor and that match your selected domain filters.

Search engines may return different numbers of results for different queries, locations, and domains. Some Etsy profiles may contain no public email address, while others may display an email that does not match the domains you selected.

The Actor also has stopping conditions designed to avoid continuing indefinitely when pages stop producing useful new email results.

> **⚠️ Important limitation**
>
> - Results depend on publicly available search-result content.
> - An Etsy profile without a publicly visible matching email may produce no email.
> - `maxEmails` is a target/cap, not a guarantee.
> - Narrow keywords can produce fewer results.
> - Narrow locations can reduce available results.
> - Adding relevant keywords or domains can improve search coverage.

### 🔹 Etsy Email Scraper – Use Cases

Etsy Email Scraper can support several practical workflows where publicly available Etsy-related contact discovery is useful.

#### 📈 Lead Generation

- Discover potential Etsy business contacts.
- Build structured prospect lists.
- Organize contacts by the keyword that discovered them.
- Export the resulting Dataset for further processing.

#### 🤝 Business Prospecting

- Identify Etsy sellers matching specific business-related search terms.
- Separate prospects by keyword.
- Focus on particular locations.
- Filter out unwanted categories using exclusion words.

#### 📣 Outreach Preparation

- Build an initial list of publicly available email contacts.
- Segment contacts by search keyword.
- Filter for specific email domains.
- Review the descriptions and URLs before using the contacts in your own workflow.

#### 🔎 Market Research

- Discover Etsy-related businesses around particular topics.
- Compare results across different search queries.
- Identify recurring business descriptions and categories.
- Create structured datasets for analysis.

> **🎯 Example workflow:** Search several Etsy business-related keywords, target a particular region, collect selected email domains, exclude irrelevant terms, and review the resulting Dataset before using it for any further business activity.

### 🔹 Input

The Actor accepts the following public input fields.

| Field           | Type    | Purpose                                             |
| --------------- | ------- | --------------------------------------------------- |
| `keywords`      | Array   | Search keywords or queries                          |
| `location`      | String  | Optional country, state, or city filter             |
| `customDomains` | Array   | Email-domain suffixes to collect                    |
| `maxEmails`     | Integer | Maximum target per keyword + domain combination     |
| `excludeWords`  | Array   | Words or phrases used to skip unwanted descriptions |

#### Example Input

```json
{
  "keywords": [
    "Business Owner",
    "Founder",
    "Etsy Seller"
  ],
  "location": "New York",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 25,
  "excludeWords": [
    "crypto"
  ]
}
```

The only required input is `keywords`. The other fields are optional and can be used to refine the search.

### 🔹 Output

Results are pushed incrementally into the Apify Dataset as structured records.

#### Example Output

```json
{
  "network": "Etsy.com",
  "keyword": "Business Owner",
  "title": "Example Etsy Business",
  "description": "Example description with contact information...",
  "url": "https://www.etsy.com/...",
  "email": "example@gmail.com"
}
```

The exact title, description, URL, and email values depend on the public search results returned during the run.

> **📊 Dataset advantage**
>
> - Structured records are easier to review than manually copied search results.
> - Each result retains the keyword that discovered it.
> - URLs can be opened for further verification.
> - Descriptions provide context around the extracted email.
> - Duplicate email addresses are filtered during collection.

### 🔹 Etsy Email Scraper – Duplicate Handling

The Actor keeps track of email addresses already discovered during the run and checks new addresses before pushing them to the Dataset.

This means the same email address is not repeatedly added simply because it appears in multiple search results or multiple keyword/domain searches.

Progress is also persisted so the Actor can retain its search position and previously discovered email addresses when continuing after an interruption.

> **💾 Progress behavior**
>
> - Previously discovered email addresses are tracked.
> - Duplicate email addresses are skipped.
> - Search progress is persisted.
> - Results are pushed incrementally rather than waiting for the entire run to finish.

### 🔹 Pricing and Result Limits

The provided Actor configuration and code include a free-user result limitation and different behavior for paid users.

For free users, the Actor applies a maximum `maxEmails` value of **100**. Paid users are not restricted by this Actor-level `maxEmails` ceiling.

This is an Actor behavior, not a statement about the current price of an Apify subscription or platform plan.

> **💰 Pricing note**
>
> - Free users: `maxEmails` is capped at 100 by the Actor.
> - Paid users: the Actor does not apply that 100-email ceiling.
> - `maxEmails` controls the target for each keyword + domain combination.
> - Actual collection can be lower when matching public results are unavailable.
> - No Apify subscription price is claimed here because it is not defined by the provided Actor configuration.

### 🔹 Tips and Best Practices

- Use several closely related keywords instead of relying on one broad query.
- Keep keywords relevant to the Etsy audience you want to discover.
- Add multiple email domains when broader email coverage is appropriate.
- Use a location only when geographic targeting is important.
- Start with a reasonable `maxEmails` value before increasing it.
- Use `excludeWords` to remove clearly irrelevant search-result descriptions.
- If results are sparse, broaden the keyword list or remove an unnecessarily restrictive location.
- Review the resulting title, description, URL, and email before using contacts in another workflow.
- Remember that public availability determines how many valid email addresses can actually be found.

### 🔹 Frequently Asked Questions

#### What is Etsy Email Scraper?

Etsy Email Scraper is an Apify Actor that searches for Etsy-related results using your selected keywords and extracts publicly available email addresses matching your selected email-domain suffixes.

#### How do I scrape Etsy emails?

Enter one or more keywords, optionally provide a location, select the email domains you want to collect, and run the Actor. The resulting contact records are pushed to the Apify Dataset.

#### Can I scrape Etsy emails by location?

Yes. The optional `location` input can contain a country, state, city, or other geographic term to narrow the search.

#### Can I search for multiple Etsy keywords?

Yes. The `keywords` field accepts a list of search terms or queries, allowing you to target multiple audiences during the same run.

#### Can I choose Gmail or Yahoo emails?

Yes. The `customDomains` field lets you specify email-domain suffixes such as `@gmail.com`, `@yahoo.com`, and other domains.

#### What happens if I get fewer emails than my target?

The `maxEmails` value is a target/cap rather than a guarantee. The Actor can only collect matching addresses that are publicly available in the search results. Broader keywords, additional relevant domains, or a less restrictive location can provide more opportunities for discovery.

#### Can I exclude unwanted Etsy profiles?

Yes. Add words or phrases to `excludeWords`. If a search-result description matches an exclusion term, that result is skipped.

#### What does the Etsy Email Scraper output?

The Actor pushes `network`, `keyword`, `title`, `description`, `url`, and `email` fields. The default Dataset view displays `keyword`, `title`, `description`, `url`, and `email`.

#### Does Etsy Email Scraper guarantee an email for every result?

No. It extracts matching emails only when publicly available search-result content contains an email address matching your selected domain pattern.

#### Is Etsy Email Scraper suitable for lead generation?

Yes. Its structured email, URL, title, description, and keyword fields can be useful for creating and reviewing Etsy-related prospect datasets.

### 🔹 Support

If you need help with the Actor, have a feature request, want a customization, or need a bespoke scraper, you can contact me directly.

- Contact me by email: **<alphascraper69@gmail.com>**

# Actor input Schema

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

A list of keywords or queries to search for.

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

Optional country, state or city used to narrow the search. Leave it empty to search without a geographic filter.

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

List of custom email domains

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

How many addresses each search keyword + domain suffix combination may collect before the finder moves on to the next one. This is a per-combination target, not a run-wide total: with 3 keyword and 2 Domains and a limit of 20, the run works through all 6 combinations and aims for up to 20 addresses in each, so up to 120 overall. Lower values finish sooner and cost less; higher values dig deeper but never guarantee a fuller result, since the run can only find what is publicly listed.

## `excludeWords` (type: `array`):

Words or phrases you do not want to see.

## Actor input object example

```json
{
  "keywords": [
    "Business Owner",
    "founder"
  ],
  "location": "New york",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "excludeWords": []
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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": [
        "Business Owner",
        "founder"
    ],
    "location": "New york",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("email_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": [
        "Business Owner",
        "founder",
    ],
    "location": "New york",
    "customDomains": ["@gmail.com"],
    "excludeWords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("email_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": [
    "Business Owner",
    "founder"
  ],
  "location": "New york",
  "customDomains": [
    "@gmail.com"
  ],
  "excludeWords": []
}' |
apify call email_scraper/etsy-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,email_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/6VD8BM7VcapITVdoo/builds/pftfodDC4ga4GO4Ma/openapi.json
