# Twitter Profile Email Search - Keyword & Location Targeting (`scrapido/twitter-profile-email-scraper`) Actor

🐦 Twitter Profile Email Search extracts public profile emails by keyword and location. 🔓 Custom domain filters, obfuscated-address decoding and duplicate handling. 📤 Export Twitter leads to CSV, JSON or Excel.

- **URL**: https://apify.com/scrapido/twitter-profile-email-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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

### Twitter Profile Email Search

**Twitter Profile Email Search** helps you scrape and collect publicly listed contact emails from X (Twitter) profiles—so you can automate **Twitter profile email** lead generation at scale. It’s a strong **Twitter email search** workflow for anyone who needs an accurate **OSINT email discovery** pipeline with filters for location and email availability.

***

### What Does Twitter Profile Email Search Do? 🤖

Twitter Profile Email Search takes your **keywords**, targets a selected **country**, and extracts publicly listed email addresses from relevant X (Twitter) profiles. During a run, it collects matching profile data, filters results based on your **emailType** (B2C or B2B) and your **maxEmails** limit, and exports everything into a structured Apify Dataset. If you’re trying to **extract emails from X (Twitter)** for outreach, this is far faster than manual lookup and spreadsheet copy-pasting—especially when you’re building a repeatable **Twitter contact email** pipeline.

***

### What Can Twitter Profile Email Search Extract? 📊

This actor focuses on collecting email contact data plus the key profile/context fields that help you qualify and route leads. You get contact and identity/context metadata in one dataset so you can export, analyze, and enrich your pipeline without juggling multiple tools.

| Data Type | Field Name | Description |
|---|---|---|
| Contact | `email` | Primary email address collected for this lead (when available) |
| Identity | `title` | Profile name or business handle discovered in the result |
| Context | `description` | Bio, summary, or profile snippet that provides context for the lead |
| Discovery | `keyword` | The keyword from your input that surfaced this profile |
| Navigation | `url` | Direct link to the X (Twitter) profile page |

***

#### Key Features of Twitter Profile Email Search ⚡

- ✅ **Keyword-Driven Search:** Targets X (Twitter) profiles using your exact search terms to improve **Twitter profile email** relevance
- 🌍 **Country Targeting:** Limits results to a specific country to help you find local **Twitter account contact info**
- 📧 **Email Type Filter (B2C or B2B):** Use `emailType` to focus on consumer vs business-oriented contact emails
- 🔁 **Configurable Volume Control:** Use `maxEmails` to cap results per run (built for predictable **data mining for emails**)
- 🛡️ **Proxy-Ready & Reliable:** Includes built-in support for more resilient scraping runs when sites limit traffic
- 📊 **Structured Dataset Output:** Saves results with consistent fields like `email_domain` and `email_type` for easy CRM import
- 💾 **Dataset for Fast Export:** Results land in a dataset table format (great for marketers and analysts)
- ⚙️ **Multiple Keywords in One Run:** Combine several terms at once to broaden **search emails associated with twitter**

***

### How to Use Twitter Profile Email Search 🚀

1. **Find the Actor** — Open **Twitter Profile Email Search** in the Apify Console or Apify Store
2. **Open Input Tab** — Switch to the **INPUT** panel
3. **Add Keywords** — Enter one or more terms to find relevant X (Twitter) profiles
4. **Choose a Country** — Set the `country` filter to target your desired region
5. **Select Email Type** — Set `emailType` to **B2C** or **B2B** for better targeting
6. **Set `maxEmails`** — Control how many emails the actor should return in the run
7. **Run and Export** — Check the dataset and export results when ready

*No coding required.*

***

### Twitter Profile Email Search Output Format 📦

The actor saves results to your Apify dataset in structured JSON format (one record per scraped profile/email match).

#### ⬇️ Input Example

```json
{
  "keywords": ["fitness", "gym", "workout"],
  "country": "United States",
  "emailType": "B2C",
  "maxEmails": 20
}
```

#### ⬆️ Output Example

```json
[
  {
    "keyword": "fitness",
    "title": "FitBody Daily",
    "url": "https://twitter.com/fitbodydaily",
    "description": "Weekly training tips, nutrition guides, and community challenges. For collabs and inquiries:",
    "email": "hello@fitbodydaily.com",
    "email_domain": "fitbodydaily.com",
    "email_type": "B2B",
    "country": "United States"
  }
]
```

#### Dataset Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | Search term from your input that surfaced this profile |
| `title` | Title | text | Profile name or business handle discovered in the result |
| `url` | URL | link | Direct link to the X (Twitter) profile page |
| `description` | Description | text | Bio, summary, or profile snippet used as context |
| `email` | Email | text | Collected email address for this lead (when available) |
| `email_domain` | Email Domain | text | Domain portion of the collected email (e.g., company domain) |
| `email_type` | Email Type | text | Whether the contact is classified as B2C or B2B |
| `country` | Country | text | Country associated with the filtered results |

***

### 🎯 Use Cases of Twitter Profile Email Search

- **Twitter profile email lead generation:** Quickly build a prospect list for outreach by pulling **Twitter contact email** directly from public profile data.
- **Twitter email search for niche marketing:** Use keywords and country targeting to find relevant accounts, then export results for campaign segmentation.
- **OSINT email discovery & verification workflows:** Analyze `email_domain` and `email_type` fields to help you validate and categorize contacts in your research process.
- **CRM enrichment:** Add scraped **Twitter account contact info** to existing contacts, then use the profile URL for auditing.
- **Social media email scraping for research:** Collect **public contact details** at scale for competitive intel, community mapping, and lead sourcing.

***

### How Much Will Twitter Profile Email Search Cost You? 💰

This actor uses Apify’s pay-per-result approach—pricing is driven by how many email results you collect. Use `maxEmails` to cap volume per run and avoid over-collecting. The actor description also notes a free tier limit of **100 emails**, which is ideal for testing **Twitter contact email** discovery before scaling up.

***

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

Twitter Profile Email Search collects information only from **publicly available data**—no login or private content access. While scraping public web data is widely used for OSINT and research, you still must follow X (Twitter) Terms of Service and applicable privacy/spam laws (for example GDPR/CCPA) in your region and use case. If you have compliance concerns or need guidance, contact <scrapidocontact@gmail.com>.

***

### Twitter Profile Email Search Input Parameters 📋

#### Input JSON example

```json
{
  "keywords": ["fitness", "gym", "workout"],
  "country": "United States",
  "emailType": "B2C",
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | — | One or more keywords to search for on X (Twitter). Use multiple terms to improve yield for **find emails on twitter**. |
| `country` | String | ✅ Yes | `United States` | Target country to filter results. Helps tailor **Twitter account contact info** to your market. |
| `emailType` | String | ✅ Yes | `B2C` | Choose `B2C` or `B2B` to focus your extraction toward consumer-style or business-style contact emails. |
| `maxEmails` | Integer | ✅ Yes | `20` | Maximum number of emails to collect per run (min 1, max 10000). Useful for controlling cost when doing **Twitter email search** at scale. |

***

### During the Actor Run ⏱️

You’ll see live progress in the Apify Console, and results will be saved to your dataset during the run so you can monitor what’s being collected. If a keyword set is too narrow, broadening `keywords` or adjusting country/email targeting can improve results.

***

### Final Note ✉️

Start a **Twitter Profile Email Search** run and export a structured email list in minutes—perfect for marketers, analysts, and researchers building **Twitter contact email** pipelines. Questions or feedback? Email <scrapidocontact@gmail.com>.

***

### FAQ — Twitter Profile Email Search ❓

#### How does the Twitter Profile Email Search find emails?

Twitter Profile Email Search uses your provided `keywords` to find relevant X (Twitter) profiles, then extracts publicly listed email addresses associated with those profiles. It doesn’t guess or fabricate emails—only collected public data is returned.

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

You can target public X (Twitter) profiles that match your keyword set and country filter. If a profile doesn’t present a publicly available email, it won’t contribute an email result to your dataset.

#### What did your tests show about the Twitter Profile Email Search?

In typical runs, results vary by niche and how often profiles publish contact emails. Runs generally perform best when your keywords are specific (industry, role, or niche) and you use the right `emailType` for your outreach model (B2B vs B2C).

#### Why scrape Twitter for emails?

X (Twitter) can be a high-signal source of **public contact details** for outreach, recruitment, and OSINT email discovery. Automating **Twitter DM email inquiry** preparation with scraped **Twitter profile email** data saves significant time compared to manual research.

#### How much does it cost to use the Twitter Profile Email Search?

Cost is driven by how many email results you collect. Use `maxEmails` to control run volume and spending. The actor description also mentions a free tier limited to **100 emails**.

#### How does the Twitter Profile Email Search help my business?

It accelerates **Twitter profile email** sourcing for outbound prospecting, allowing you to export a clean dataset with `email`, `email_domain`, `email_type`, `country`, and the profile `url` for verification and enrichment.

#### What are the challenges of using a Twitter scraper?

Not every profile lists an email address publicly, so yield depends on your niche and the specificity of your `keywords`. If results are sparse, try broader keywords or adjust country targeting and `emailType`.

#### How do I choose the right Twitter Profile Email Search settings?

Start with 3–10 tightly relevant keywords, pick a realistic `country`, and choose `emailType` based on whether you’re targeting consumers (**B2C**) or organizations (**B2B**). Set `maxEmails` to match your budget and workflow needs.

***

### 🆘 Support & Feedback

Need help with **Twitter Profile Email Search**, or want a feature request?

Found a bug or need custom assistance? Contact <scrapidocontact@gmail.com> and share your use case and input settings.

### Multiple Email Types

**Email Types** replaces the old single Audience Type choice: select as many
kinds of mailbox as you want and the run chases all of them together.

| Type | What it matches |
| --- | --- |
| Personal / free webmail | Gmail, Outlook, Yahoo, iCloud, AOL, Proton, ... |
| Business / corporate | Company domains - free webmail and institutions excluded |
| Education (.edu / .ac) | `.edu`, `.ac.uk`, `.edu.au`, `.ac.in` and other academic suffixes |
| Government (.gov / .mil) | `.gov`, `.mil`, `.gov.uk`, `.gc.ca`, ... |
| Non-profit (.org) | `.org`, `.ngo`, `.org.uk`, ... |

Each selected type contributes its own Google dork patterns *and* its own domain
test, so a result is only kept if it genuinely belongs to the type that found
it. Every row carries an `emailType` field recording which one that was.

Suffixes are matched as real domain suffixes, so `cs.mit.edu` counts as
Education while `notedu.com` does not.

Setting **Custom Email Domains** still overrides everything: an explicit domain
list is a manual override and replaces the type-driven patterns. The legacy
`audienceType` value is still accepted, so saved inputs keep working.

# Actor input Schema

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

Enter one or more keywords to search for on X (Twitter).

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

Specify the country to target for Google search results.

## `emailType` (type: `string`):

Choose one — B2C or B2B.

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

Enter the maximum number of emails to collect.

## `emailTypes` (type: `array`):

Which kinds of mailbox to hunt for. Pick as many as you like - each type contributes its own set of Google search patterns and its own domain filter, and every result records the type it was found as. Personal = free webmail (Gmail, Outlook, Yahoo, iCloud). Business = company domains, excluding free webmail and institutions. Education = .edu / .ac.uk and friends. Government = .gov / .mil. Non-profit = .org.

## Actor input object example

```json
{
  "keywords": [
    "fitness",
    "gym",
    "workout"
  ],
  "country": "United States",
  "emailType": "B2C",
  "maxEmails": 20,
  "emailTypes": [
    "Personal",
    "Business"
  ]
}
```

# 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": [
        "fitness",
        "gym",
        "workout"
    ],
    "emailTypes": [
        "Personal",
        "Business"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/twitter-profile-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",
    ],
    "emailTypes": [
        "Personal",
        "Business",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/twitter-profile-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": [
    "fitness",
    "gym",
    "workout"
  ],
  "emailTypes": [
    "Personal",
    "Business"
  ]
}' |
apify call scrapido/twitter-profile-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/twitter-profile-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/QoQRlxvRWKyhhXZmO/builds/pq4iZYItySgNuLTHj/openapi.json
