# Threads Email Scraper - Domain Filter & Deduplication (`insightflow/threads-email-scraper-powerful-and-intelligent`) Actor

🧵 Threads Email Scraper — turn Threads searches into a clean creator and brand email list. Filter by keyword, location and domain, merge alias duplicates and decode hidden addresses. 📈 For social agencies & DTC outreach.

- **URL**: https://apify.com/insightflow/threads-email-scraper-powerful-and-intelligent.md
- **Developed by:** [InsightFlow](https://apify.com/insightflow) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.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/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

### Threads Email Scraper

**Threads Email Scraper** helps you collect publicly available email addresses from Threads using keywords and filters you choose. It’s built for marketers, researchers, and analysts who want fast Threads email extraction, better Threads lead generation, and a practical social media email scraper without doing the manual work yourself. 🚀

### What Does Threads Email Scraper Do? 🤖

Threads Email Scraper scrapes public Threads data based on your keywords, optional location filtering, and custom email-domain filters. During a run, it collects relevant public profiles, extracts email addresses that match your chosen domains, and saves structured results to your Apify dataset. It works well as a Threads contact scraper, Threads profile scraper, and Threads web scraper for lead discovery. Instead of checking profiles one by one, you can automate Threads email collection at scale and focus on outreach, research, or CRM enrichment.

### What Can Threads Email Scraper Extract? 📊

This actor returns a clean dataset of Threads leads with the key fields needed for analysis and outreach. Each record includes the keyword that surfaced the result, profile title, description, direct URL, and the extracted email address. It’s ideal for Threads user scraper workflows, Instagram Threads scraper use cases, and broader Threads data extraction projects.

| Data Type | Field Name | Description |
|---|---|---|
| Discovery | `keyword` | The keyword that helped find the profile |
| Identity | `title` | The profile title or display name shown in the result |
| Context | `description` | The public profile description or snippet text |
| Navigation | `url` | Direct link to the public Threads profile |
| Contact | `email` | The email address extracted from publicly available data |

#### Key Features of Threads Email Scraper ⚡

- ✅ **Keyword-Driven Discovery:** Use your own search terms to find relevant Threads profiles for Threads lead generation and Threads account scraping.
- 🌍 **Location Filtering:** Narrow results by location when you want more targeted Threads user data extraction.
- 📧 **Custom Email Domain Filters:** Focus on domains like `@gmail.com` or `@yahoo.com` to refine your results.
- 🔄 **Reliable Scraping:** Includes built-in proxy support for reliable scraping, plus retries and fallbacks for resilience.
- 📊 **Structured Dataset Output:** Every result is saved in a clean format that’s easy to export and analyze.
- 💾 **Live Saving:** Results are pushed as they are found, helping prevent data loss during longer runs.
- ⚙️ **Configurable Result Cap:** Set `maxEmails` to control how many emails the actor collects.

### How to Use Threads Email Scraper 🚀

1. **Open the Actor** — Find **Threads Email Scraper** in the Apify Store.
2. **Add Keywords** — Enter one or more keywords to guide the search.
3. **Set Optional Filters** — Add a location and choose custom email domains if needed.
4. **Choose a Limit** — Set `maxEmails` to control the number of results collected.
5. **Run the Actor** — Start the run and monitor progress in the Apify Console.
6. **Review Results** — Open the Dataset tab to view and export the collected leads.

No coding required.

### Threads Email Scraper Output Format 📦

The actor saves results to your Apify dataset in structured JSON format, ready for export or API integration.

#### ⬇️ Input Example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager","founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location to filter search results. |
| `customDomains` | Array | No | `["@gmail.com","@yahoo.com"]` | List of custom email domains used to filter extracted emails. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect before the actor stops. |

#### ⬆️ Output Example

```json
[
  {
    "keyword": "manager",
    "title": "Jane Smith",
    "description": "Marketing manager at Bright Path Studio, sharing project updates and hiring insights.",
    "url": "https://www.threads.com/@janesmith",
    "email": "janesmith@gmail.com"
  }
]
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that produced the lead. |
| `title` | Title | text | The public title or profile name. |
| `description` | Description | text | The visible profile description or snippet text. |
| `url` | Url | link | Direct link to the Threads profile page. |
| `email` | Email | text | The extracted email address from publicly available data. |

### 🎯 Use Cases of Threads Email Scraper

**B2B Lead Generation:** Build targeted outreach lists from Threads profiles that match your niche, job title, or industry keywords. This is especially useful for Threads contact scraper workflows and social media email scraper campaigns. 📈

**Email Marketing Campaigns:** Collect public contact details for newsletters, promotions, and cold outreach sequences. It’s a fast way to support Threads lead generation without manual profile checking. ✉️

**Market Research:** Analyze which public Threads profiles appear for specific keywords and study the kinds of contacts and descriptions associated with them. Great for Threads data extraction and audience discovery. 🔍

**CRM Enrichment:** Add newly found email addresses and profile context to your CRM so your sales or research team works with more complete records. 💼

**Research and Prospecting:** Use the actor as a Threads web scraper or Threads user scraper to identify relevant public accounts for deeper analysis or follow-up. 🧠

### How Much Will Threads Email Scraper Cost You? 💰

Threads Email Scraper is designed for efficient, controlled runs, and you can use `maxEmails` to cap the number of results collected. That makes it easy to manage cost and time, whether you’re doing a small test or a larger Threads automation tool workflow. For the most accurate pricing details, check the Apify run summary and set a result limit that matches your goal. 💡

### Is It Legal to Scrape Threads? ⚖️

This actor only works with publicly available data on Threads. It does not require login access, private profiles, or hidden content. As with any public web data project, you’re responsible for following applicable laws and platform policies, including privacy and anti-spam rules. Use the results for legitimate research, marketing, or outreach. If you have questions or concerns, contact <insightflowofficial@gmail.com>.

### Threads Email Scraper Input Parameters 📋

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager","founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location to filter search results. |
| `customDomains` | Array | No | `["@gmail.com","@yahoo.com"]` | List of custom email domains. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect. The actor stops when this limit is reached. |

### During the Actor Run ⏱️

While the actor is running, you’ll see live logs in the Apify Console showing progress for each keyword and domain combination. Results are saved in real time, so you can check the Dataset tab before the run finishes. Runtime depends on your input size, result limit, and how much public data is available. If results are limited, try broader keywords or adjust your email-domain filters.

### Final Note ✉️

Start collecting Threads emails in minutes with the **Threads Email Scraper**. It’s a practical, scalable way to automate Threads email finder workflows and public Threads account scraping. Questions or feedback? Reach us at <insightflowofficial@gmail.com>.

### FAQ — Threads Email Scraper ❓

#### How does Threads Email Scraper find emails?

The actor uses your keywords and email-domain filters to find relevant contacts from publicly available sources on Threads. It only returns email addresses that appear in public data.

#### What types of Threads profiles can I scrape?

You can scrape public Threads profiles that contain matching public information and an email address. Profiles without public email data won’t produce contact results.

#### Why use Threads Email Scraper for lead generation?

It saves time by automating Threads lead generation, Threads email extraction, and profile review in one workflow. That makes it much easier to build outreach lists from public Threads data.

#### How much does Threads Email Scraper cost?

Cost depends on how much data you collect and how many results you request. Using `maxEmails` is the best way to control run size and keep your workflow focused.

#### Can I use Threads Email Scraper for research?

Yes. It’s useful for market research, audience mapping, and public contact discovery, especially when you need Threads user data extraction at scale.

#### What is the best way to improve results?

Use more specific keywords, try related terms, and include email domains that match your target audience. Broader keyword sets often help when you want better coverage from a Threads scraping tool.

#### How do I choose a good Threads email scraper?

Look for structured output, configurable filters, reliable saving, and clear limits. A strong Threads automation tool should make results easy to export and analyze.

#### Who do I contact for support?

For support, feedback, or data-removal requests, email <insightflowofficial@gmail.com>.

### 🆘 Support & Feedback

Found a bug or need help with Threads Email Scraper?

- 🐞 **Bug reports:** Share the issue with our team.
- ✨ **Feature requests:** Tell us what you’d like improved for your Threads email scraper workflow.
- 📧 **Email:** <insightflowofficial@gmail.com>

### MX Lookup

Every address is checked at the DNS level: the actor resolves the mail domain's
MX records and reports what it found.

| Field | Meaning |
| --- | --- |
| `mxFound` | `true` when the domain publishes at least one mail server |
| `mxHost` | The lowest-preference (primary) mail server |
| `mxRecords` | Every MX record found, in preference order |
| `mxProvider` | Who runs the mail: Google Workspace, Microsoft 365, Zoho, Proton, ... |
| `mxStatus` | `found`, `no_records`, `no_such_domain`, `timeout`, `error`, or `skipped` |

**Inputs**

- **MX Lookup** - turn the check on or off (default: on).
- **Only keep contacts whose domain has an MX record** - drop unreachable domains.
  Only a definite negative (`no_records` / `no_such_domain`) drops a contact; a
  timeout or resolver error is treated as unknown and the lead is kept.
- **MX lookup timeout (seconds)** - per-domain DNS budget, 1-15s.

This is a domain-level check. It confirms the domain can receive mail; it does
not verify that an individual mailbox exists.

# Actor input Schema

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

A list of keywords or queries to search for.

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

Location to filter search results.

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

## `minLeadScore` (type: `integer`):

Drop any contact whose Lead Score (0-100) falls below this. Leave at 0 for no filter.

## `mxLookup` (type: `boolean`):

Resolve each address's domain to its mail servers. Adds the resolved MX hosts and the mail provider (Google Workspace, Microsoft 365, ...) to every result, and feeds the Lead Score. DNS-level only - it confirms the domain can receive mail, not that the individual mailbox exists.

## `requireMxRecord` (type: `boolean`):

Drop any contact whose domain provably accepts no mail. A lookup that times out or errors is treated as unknown and kept, so a DNS hiccup never silently deletes good leads.

## `mxTimeoutSecs` (type: `integer`):

How long to wait for each DNS answer. Clamped to 1-15 seconds.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "minLeadScore": 0,
  "mxLookup": true,
  "requireMxRecord": false,
  "mxTimeoutSecs": 3
}
```

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

// Run the Actor and wait for it to finish
const run = await client.actor("insightflow/threads-email-scraper-powerful-and-intelligent").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": [
        "manager",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("insightflow/threads-email-scraper-powerful-and-intelligent").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": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ]
}' |
apify call insightflow/threads-email-scraper-powerful-and-intelligent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insightflow/threads-email-scraper-powerful-and-intelligent"
        }
    }
}

```

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/N7Fe9kCJfWfBqhM2L/builds/CoyTy7St97QKP86su/openapi.json
