Twitter Profile Email Scraper avatar

Twitter Profile Email Scraper

Under maintenance

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Twitter Profile Email Scraper

Twitter Profile Email Scraper

Under maintenance

Twitter Profile Email Scraper extracts public contact emails from X profiles by keyword and country, returning email, email type, email domain, title, description and URL. 🐦 For B2B outreach, creator partnerships and lead research.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Hub

Scrapers Hub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

🐦 Twitter Profile Email Scraper – Extract X (Twitter) Lead Emails by Keyword & Country

The Twitter profile email scraper finds publicly indexed X (Twitter) profiles matching your keywords and extracts the email addresses published on them, returning one structured record per address with the originating keyword, profile title, bio description, source URL, email domain and target country attached. Give it a handful of search terms, pick a country and choose whether you want B2C or B2B addresses, and it builds a targeted contact list without any manual profile browsing.

Plenty of people put a contact address directly in their X bio β€” creators inviting collaboration enquiries, founders looking for inbound, freelancers advertising availability. Finding those addresses by hand means running search after search, opening profiles one at a time and copying text into a spreadsheet. This Twitter profile email scraper collapses that work into a single run: it executes your keyword queries against a country-scoped index, pulls the addresses from matching profiles, classifies each one by domain and type, and stops the instant your maxEmails budget is reached.

Country targeting and B2C/B2B classification are what separate this from a generic email harvester. You are not just getting addresses β€” you are getting addresses that fit a defined geography and a defined audience type, with enough profile context attached to judge relevance before writing a word of outreach.


πŸ“Š What Data Can You Extract with This Twitter Email Scraper?

Every dataset item is one email address discovered against one keyword, wrapped in the context needed to qualify it.

CategoryFieldsWhat you get
πŸ“§ Contact dataemailThe email address extracted from the profile or associated public page
🏷️ Address classificationemail_domain, email_typeThe domain portion of the address and whether it was classified as B2C or B2B
πŸ”‘ Search attributionkeywordThe exact keyword that produced this result, enabling per-term yield analysis
πŸ‘€ Profile contexttitle, descriptionThe profile or page title, typically carrying a name and role, plus the bio or description text
🌐 Source & geographyurl, countryThe canonical URL of the profile the address came from and the country the search targeted

The field worth building your workflow around is email_domain. It gives you an instant read on who you are actually talking to: free-provider domains signal individual creators and sole traders, while company domains signal an organisation with a website you can research before making contact. Combined with email_type, it lets you split one dataset into two campaigns with completely different messaging, without any manual sorting.


🌟 Key Features of the Twitter Profile Email Scraper

FeatureDescription
πŸ”‘ Multi-keyword searchSupply an array of keywords and the scraper works through each in turn, tagging results by originating term
🌍 Country targetingChoose from an extensive country list to scope results geographically, defaulting to the United States
🏒 B2C / B2B selectionPick the audience type you want and the extracted addresses are classified accordingly in email_type
🎯 Hard email capmaxEmails accepts 1 to 10000 and stops the run precisely at the limit, keeping cost predictable
🌐 Domain classificationemail_domain is broken out as its own field, making free-provider versus company addresses trivial to segment
πŸ“ Profile context capturetitle and description arrive with every record so you can qualify a contact without opening the profile
πŸ”— Full source attributionEach record carries the url it came from, keeping the dataset auditable and easy to verify
πŸ•ΈοΈ Automatic proxy rotationRequests are routed through rotating proxy infrastructure automatically, with no configuration needed
πŸ“€ Standard dataset exportExport as JSON, JSONL, CSV, Excel or XML, or stream results through the Apify dataset API

πŸš€ Why Choose This Twitter Email Scraper?

Audience type is a first-class input. Most email harvesters return whatever they find and leave you to sort it out. Choosing B2C or B2B up front, and receiving that classification back in email_type, means the dataset arrives already shaped for the campaign you intended to run.

Geographic scoping that actually narrows results. The country field scopes searches to a specific market from a long list of supported territories. For anyone selling regionally, running compliance-bound campaigns or testing a new market, that constraint is the difference between a usable list and a global mess.

Every address is traceable to a source. url, title, description and keyword accompany each record. You can verify who a contact is, why they were included, and where the address was published β€” which matters both for personalising outreach and for handling removal requests properly.

Cost control built into the input. maxEmails is a hard stop, not a hint. Set it to 20 to validate your keywords, then scale up once you have seen the output. A productive keyword can never quietly produce a run ten times larger than you budgeted for.


πŸ“₯ Input

The Twitter profile email scraper takes four fields, all of which are required by the input schema.

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

πŸ”§ Twitter Email Scraper Input Fields

FieldTypeRequiredDefaultDescription
keywordsarrayβœ… Yesprefilled ["fitness", "gym", "workout"]One or more keywords to search for on X (Twitter).
countrystringβœ… YesUnited StatesThe country to target for search results, chosen from an extensive supported country list.
emailTypestringβœ… YesB2CWhich audience type to target. One of B2C or B2B.
maxEmailsintegerβœ… Yes20Maximum number of emails to collect, between 1 and 10000.

πŸ’‘ Input Examples

Quick validation run

{
"keywords": ["fitness coach"],
"country": "United States",
"emailType": "B2C",
"maxEmails": 20
}

B2B prospecting in the United Kingdom

{
"keywords": ["founder", "ceo", "head of growth"],
"country": "United Kingdom",
"emailType": "B2B",
"maxEmails": 500
}

Creator outreach across a niche

{
"keywords": ["travel blogger", "travel vlogger", "digital nomad", "backpacking"],
"country": "Australia",
"emailType": "B2C",
"maxEmails": 1000
}

πŸ“€ Output

Each dataset item is one extracted email address with its profile context. The example below uses the real output field names with representative values.

{
"keyword": "fitness coach",
"title": "Marcus Hale β€” Online Fitness Coach (@marcushalefit) / X",
"url": "https://x.com/marcushalefit",
"description": "Online fitness coach helping busy professionals train smarter. Programmes, partnerships and press enquiries by email.",
"email": "marcus@halefitness.com",
"email_domain": "halefitness.com",
"email_type": "B2B",
"country": "United States"
}

🧾 Twitter Email Scraper Output Fields

FieldTypeDescription
keywordstring | nullKeyword that produced this item.
titlestring | nullTitle of the profile or source page.
urlstring | nullCanonical URL of the scraped item.
descriptionstring | nullLong-form description text, typically the profile bio or page summary.
emailstring | nullEmail address found for the item.
email_domainstring | nullDomain portion of the extracted email address.
email_typestring | nullClassification of the address as B2C or B2B.
countrystring | nullCountry targeted for this result.

πŸ’» How to Use the Twitter Email Scraper (Step by Step)

Step 1: Build a Keyword List That Describes Your Audience

keywords drives everything, so invest time here. For B2B prospecting, job titles work best β€” "founder", "cto", "head of marketing", "sales director". For creator and consumer outreach, niche descriptors perform better β€” "fitness coach", "travel blogger", "indie game developer". Include natural variations of the same role, because people describe themselves inconsistently in bios. Three to six well-chosen terms typically outperform a single broad one, and because every result records its originating keyword, you will know precisely which terms earned their place.

Step 2: Choose Your Target Country

country scopes the search geographically and defaults to the United States. The supported list is extensive, covering most of Europe, the Americas, Asia-Pacific, the Middle East and a long tail of smaller territories. Pick the market you actually sell into. If you operate across several countries, run the scraper once per country rather than trying to cover everything at once β€” you will get better coverage per market and a dataset that is already segmented for localised messaging.

Step 3: Select B2C or B2B

emailType tells the scraper which kind of audience to target and is reflected back in the email_type field of every record. Choose B2B when you are selling to businesses and want addresses attached to company domains and professional roles. Choose B2C when you are approaching individual creators, coaches, freelancers or consumers, where free-provider addresses are the norm. If you are unsure which performs better for your offer, run both and compare reply rates.

Step 4: Set Your Email Budget

maxEmails accepts a value from 1 to 10000 and defaults to 20. Treat the first run as a calibration exercise: 20 to 50 addresses is enough to see whether your keyword, country and type combination is producing the contacts you expected. Only scale to hundreds or thousands once you are satisfied with the sample. A high limit raises the ceiling but cannot conjure contacts that do not exist.

Step 5: Run the Twitter Profile Email Scraper

Start the run from the Apify Console or trigger it through the API. The log reports which keyword is being processed and how many addresses have been collected. Because the run stops at maxEmails, finishing early with a partial result is informative: it usually means your keywords are too narrow, or the country you selected has a thinner indexed presence for that niche.

Step 6: Segment the Results Before Outreach

Open the dataset and split it before you write any copy. Group by email_type to separate business from consumer contacts. Group by email_domain to identify free-provider addresses versus company domains, and to spot multiple contacts at the same organisation. Group by keyword to see which search terms produced the most relevant profiles. Read a sample of title and description values to confirm the profiles genuinely match your intent.

Step 7: Export and Load into Your Outreach Platform

Export as CSV or Excel for spreadsheet work, or pull JSON through the dataset API for a direct integration. Map email to the contact address, title to the contact name, description to a notes or context field, and country to the location. Keep url in the export β€” retaining the source profile makes personalisation easier and gives you a clear answer if a recipient asks where you found their address.


πŸ”Œ API Access & Integrations

Run the Twitter profile email scraper and receive results in a single call:

curl -X POST "https://api.apify.com/v2/acts/scrapers-hub~twitter-profile-email-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["founder", "head of growth"],
"country": "United Kingdom",
"emailType": "B2B",
"maxEmails": 200
}'

The same run in Python, with segmentation applied to the results:

from collections import Counter
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {
"keywords": ["fitness coach", "personal trainer"],
"country": "United States",
"emailType": "B2C",
"maxEmails": 500,
}
run = client.actor("scrapers-hub/twitter-profile-email-scraper").call(run_input=run_input)
by_keyword = Counter()
by_domain = Counter()
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
by_keyword[item.get("keyword")] += 1
by_domain[item.get("email_domain")] += 1
print(item.get("email"), "|", item.get("email_type"), "|", item.get("title"))
print("Yield per keyword:", by_keyword.most_common())
print("Top domains:", by_domain.most_common(10))

The Actor also connects to Zapier, Make, Google Sheets, Slack and any custom HTTP endpoint through Apify webhooks, so a completed run can append rows to a sheet, create CRM records or notify your sales channel automatically.


πŸ’‘ Best Use Cases for Twitter Profile Email Data

🎯 B2B Prospecting by Role and Market

Search job-title keywords with emailType set to B2B and a specific country, and you get decision-maker contacts scoped to the market you sell into. email_domain immediately reveals which company each contact belongs to, letting you research the account before your first message and spot multiple contacts within the same organisation.

🀝 Creator and Influencer Partnerships

Creators routinely publish collaboration addresses in their bios. Niche keywords with emailType set to B2C surface those contacts, and the description field usually states the creator's focus and audience β€” enough to match them to the right brand or campaign without opening the profile.

🌍 New Market Entry Research

Running the same keyword set across several country values shows where an audience is dense and where it is thin. Comparing result counts per country is a cheap, fast proxy for market presence before you commit budget to a full localisation effort.

πŸ“Š Keyword and Positioning Research

Because keyword is stored on every record, one run doubles as an audience-mapping exercise. Comparing yield across terms tells you how people in a market actually describe themselves, which directly informs the language you use in ad copy, landing pages and outreach templates.

πŸ“‡ CRM Enrichment and List Building

Existing prospect lists frequently have gaps. Running matching role keywords through the scraper surfaces public addresses to fill them in, with url providing a verifiable source for every addition so the enriched database stays auditable.

πŸ§ͺ Segmented Campaign Testing

Split the dataset by email_type and email_domain and treat each slice as a distinct experiment. Company-domain B2B contacts, free-provider B2C contacts and creators each respond to different framing, and because the attribution is preserved you can measure which segment converts.

πŸ” Recruitment and Talent Sourcing

Role keywords such as "react developer", "product designer" or "data engineer" combined with a country target surface professionals who have publicly advertised their availability. title and description give a first-pass read on seniority and specialism before any recruiter time is spent.


βš™οΈ Tips for Better Twitter Email Scraping Results

  • Use several specific keywords instead of one broad term. "Head of growth" and "growth marketer" pull different profiles; "marketing" pulls a diluted mix of both plus a lot of noise.
  • Run one country per run. Separate runs per market give better coverage and produce datasets that are already segmented for localised messaging.
  • Test both emailType values on a small budget. Which classification performs better varies enormously by niche, and two 50-result runs will settle the question faster than any amount of theorising.
  • Start with a low maxEmails value. A 20-result trial is cheap and tells you within one run whether your keyword and country combination is productive.
  • Segment on email_domain before sending. Free-provider addresses and company domains warrant genuinely different opening lines, and the split takes seconds.
  • Keep url in the exported file. Provenance makes personalisation easier and makes removal requests straightforward to honour.

πŸ› οΈ Troubleshooting

Why did the run collect fewer emails than my maxEmails value? maxEmails is a ceiling rather than a target. If indexed profiles matching your keywords in the selected country do not publish that many addresses, the run finishes early. Broaden the keyword list, try a larger market, or switch emailType.

I got no results at all. What should I check first? Usually an overly narrow keyword combined with a small country. Establish a baseline with one broad keyword and a large market such as the United States, confirm results appear, then tighten the configuration step by step.

Some profiles do not look relevant to my keyword. Why? Matching operates on public profile and page text, so a term can appear incidentally rather than as the profile's subject. Filter on title and description after collection, and make keywords more specific β€” "wedding photographer" rather than "photographer".

The email_type on some records does not match what I selected. Why? emailType sets the targeting intent for the search, while the value returned on each record reflects how that specific address was classified. Reviewing email_domain alongside it usually explains the classification.

Can I get the same address more than once? A single run de-duplicates the addresses it collects. If you merge datasets from several runs, de-duplicate on email afterwards, since separate runs have no knowledge of each other's output.


❓ Frequently Asked Questions About Twitter Email Scraping

What does the Twitter profile email scraper do? It searches publicly indexed X (Twitter) profiles by keyword within a chosen country and extracts the email addresses published on them, returning each address with its keyword, profile title, description, source URL, domain, type and country.

Do I need an X (Twitter) account or API key? No. The Actor works with publicly accessible, indexed profile pages and does not require Twitter credentials or developer API access.

How do I search for leads by keyword? Put your terms into the keywords array. Each is processed in turn, and the originating term is recorded in the keyword field of every result.

Can I target a specific country? Yes. The country field accepts a value from an extensive supported country list and defaults to the United States. Run once per market for the cleanest segmentation.

What is the difference between B2C and B2B mode? emailType sets which audience you are targeting. B2B aims at business contacts, typically on company domains; B2C aims at individuals and creators, where free-provider addresses are more common. The classification is returned in email_type.

How many emails can I collect in one run? maxEmails accepts values from 1 to 10000, with a default of 20. The run stops as soon as the limit is reached or available results are exhausted.

Does a higher maxEmails guarantee more contacts? No. It raises the ceiling but cannot create addresses that were never published. Yield depends on how many matching profiles in that country publish contact details.

What does the email_domain field give me? It isolates the domain portion of each address, which makes it trivial to separate free-provider contacts from company domains and to spot several contacts at the same organisation.

Does the scraper use proxies? Yes. Requests are routed through rotating proxy infrastructure automatically, so no proxy configuration is required from you.

Are the extracted email addresses verified? No. This Actor extracts addresses as published on public profiles. If you need deliverability checks such as MX or SMTP verification, run the exported list through a dedicated verification step before sending.

Can I export the results to CSV or Excel? Yes. Apify datasets export as JSON, JSONL, CSV, Excel, XML and RSS from the Console, or through the dataset API.

How do I know which keyword produced a particular contact? Every record carries its originating term in the keyword field, so grouping by keyword immediately shows which searches are productive and which are not worth repeating.

Can I schedule the Twitter email scraper to run automatically? Yes. Apify Schedules run the Actor on a cron expression, which suits recurring lead-generation workflows that need a steady flow of new contacts.

How should I use the results responsibly? Keep url alongside each address so you can evidence provenance, honour opt-out and erasure requests immediately, and follow the anti-spam rules that apply in your jurisdiction and the recipient's.

Is scraping emails from public X profiles legal? The Actor collects information that has been publicly published by the profile owner. Your obligations concern how you store and use it β€” see the disclaimer below for the privacy and marketing rules that apply.


πŸ†˜ Support & Feedback

Hit a problem with the Twitter profile email scraper? Report it on the Issues tab of the Actor page and include your input configuration and the run ID so the behaviour can be reproduced.

Need something custom? For additional data sources, extra enrichment such as email verification, or direct integration with your CRM or sending platform, get in touch at scraperhubapi@gmail.com with a short description of your requirements.

If the Actor saved you hours of manual prospecting, please leave a review on the Apify Store. Honest feedback helps other users find the tool and guides which improvements get built next.


βš–οΈ Disclaimer

This Twitter profile email scraper collects only publicly available information β€” indexed public profile pages and email addresses that their owners have deliberately published. It does not log into accounts, read direct messages, access protected profiles or bypass any access control.

You are responsible for how the data is used. Email addresses and profile details are personal data under the GDPR, the CCPA and comparable regimes. Before contacting anyone, establish a lawful basis for processing, provide the disclosures your jurisdiction requires, honour unsubscribe and erasure requests without delay, and retain the data only for as long as you genuinely need it. Keeping the url field with each record is a practical way to evidence where an address came from.

Marketing to scraped addresses is governed by anti-spam legislation including CAN-SPAM, CASL and the ePrivacy rules, and compliance rests entirely with you. Respect the terms of service of X (Twitter) and any other platform involved, along with applicable rate limits, and do not use this data for harassment, impersonation or profiling of private individuals.

If you would like your data removed from a dataset produced by this Actor, contact scraperhubapi@gmail.com and the request will be handled promptly.