Twitter (X) Email Scraper avatar

Twitter (X) Email Scraper

Pricing

from $5.99 / 1,000 results

Go to Apify Store
Twitter (X) Email Scraper

Twitter (X) Email Scraper

Twitter (X) Email Scraper extracts publicly available email addresses and contact details from X (Twitter) profiles at scale. Collect emails, usernames, bios, follower counts, website links, and profile data for lead generation, outreach, recruitment, sales prospecting, and market research.

Pricing

from $5.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeVanta

ScrapeVanta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Twitter Email Scraper — Verified X / Twitter Email Leads with Profile Identity

Search X / Twitter for publicly listed email addresses, verify every one, and get the X / Twitter profile behind it — not just an address and a link.


What it does

1. Every address is checked before you see it

The previous version returned raw regex matches with no validation at all. Every address now arrives with a verdict:

FieldWhat it tells you
isValidSyntaxWhether it is even an address — logo@2x.png no longer counts as one
hasMxRecord, mailServersWhether the domain publishes mail servers and can receive mail at all
isDisposableKnown throwaway inbox providers, checked against a live public blocklist
isRoleAccountinfo@, sales@, support@ — reaches an organisation, not a person
isFreeProviderGmail, Outlook, Yahoo, versus a company domain
isPlaceholderDocumentation and template addresses like youremail@
emailCategorybusiness, role, personal-free, disposable, placeholder, undeliverable-domain, invalid
confidence0–100 usability score

On confidence: it is a usability score, not a delivery guarantee. Nothing short of sending a message proves an inbox exists, and this Actor does not run SMTP probes — they are widely blocked, give false answers on catch-all domains, and get sending addresses blacklisted. An MX record plus these heuristics is honest; a "verified deliverable" flag built on SMTP probing would not be.

2. One inbox counted once

The previous version de-duplicated on the raw string, so J.Smith@gmail.com, jsmith@googlemail.com and jsmith+ads@gmail.com counted as three leads. They are one inbox.

De-duplication now works on a canonical form — Gmail dots and plus-tags collapsed, googlemail folded to gmail — and the summary reports how many duplicates were removed, so you can see how much any previous count was inflated. Dots are preserved on other providers, where they genuinely distinguish mailboxes.

3. The X / Twitter profile behind each address

Each result links to a X / Twitter page, and that page identifies whose address it is. The link is parsed into:

platformName, profileHandle, profileType and a canonical profileUrl

For example https://twitter.com/jack becomes handle @jack of type profile.

4. Filter for the list you actually want

  • minimumConfidence — drop weak addresses
  • excludeRoleAccounts — people only, no shared mailboxes
  • excludeFreeProviders — company domains only, for B2B
  • excludeDisposableEmails — on by default
  • requireMxRecord — only domains that can receive mail

requireMxRecord also drops addresses whose lookup failed. An unknown result is not evidence a domain accepts mail.


Input

The search options are unchanged — keywords, location, target domains and result limits — with these added:

FieldTypeDefaultDescription
verifyEmailsbooleantrueRun syntax, MX and classification checks
minimumConfidenceinteger0Drop addresses scoring below this (0–100)
excludeRoleAccountsbooleanfalseDrop info@, sales@ and similar
excludeFreeProvidersbooleanfalseDrop Gmail, Outlook, Yahoo
excludeDisposableEmailsbooleantrueDrop throwaway inboxes
requireMxRecordbooleanfalseOnly domains that accept mail
useDisposableBlocklistbooleantrueLoad the public throwaway-domain list
includeResultSnippetbooleantrueKeep the text the address was found in
emitRunSummarybooleantrueAppend the aggregate record

Example input

{
"keywords": ["founder", "developer"],
"customDomains": ["@gmail.com", "@outlook.com"],
"maxEmails": 200,
"verifyEmails": true,
"minimumConfidence": 50,
"excludeRoleAccounts": true
}

Output

One lead record per address, then an optional summary.

{
"recordType": "lead",
"platform": "X / Twitter",
"email": "john.smith@acme-corp.com",
"emailLocalPart": "john.smith",
"emailDomain": "acme-corp.com",
"normalisedEmail": "john.smith@acme-corp.com",
"emailCategory": "business",
"confidence": 95,
"isValidSyntax": true,
"isRoleAccount": false,
"isFreeProvider": false,
"isDisposable": false,
"hasMxRecord": true,
"mailServers": ["aspmx.l.google.com"],
"platformName": "X / Twitter",
"profileHandle": "@jack",
"profileType": "profile",
"profileUrl": "https://twitter.com/jack",
"searchKeyword": "developer",
"resultTitle": "John Smith",
"sourceUrl": "https://twitter.com/jack",
"foundAt": "2026-08-12T09:00:00"
}

The summary reports totals, how many duplicates were removed, the category breakdown, the top email domains and the most frequent profiles.


Common use cases

  • B2B prospectingexcludeFreeProviders plus excludeRoleAccounts leaves named people at company domains.
  • Recruitment — search by role keyword and reach candidates directly.
  • Partner and creator outreachprofileHandle gives you the X / Twitter identity alongside the address, so you can research before contacting.
  • List hygiene — run with verification on to see what share of a keyword's results are throwaway, role or undeliverable before committing to a campaign.
  • Market researchtopEmailDomains shows which providers and companies dominate a niche.

Notes and limits

  • This searches a public search engine for pages on X / Twitter. It reads what is publicly indexed; it does not sign in to X / Twitter and cannot see anything private.
  • Coverage depends entirely on what people have published. Addresses only appear if someone put them on a public page that got indexed.
  • confidence is not deliverability. See the note above — an MX record proves a domain can receive mail, not that a particular mailbox exists.
  • A role mailbox is not a bad lead, just a different one. info@ often gets read faster than a personal address at a small business.
  • Verification adds one DNS lookup per distinct domain, cached across the run, so a thousand Gmail addresses cost one lookup.
  • Search results are rate-limited at source. Large runs benefit from a proxy.
  • Contact data about identifiable people is personal data. Using it for outreach carries obligations under GDPR, CAN-SPAM and similar regimes; complying with them is the operator's responsibility.

Local development

pip install -r requirements.txt
python -m tests.test_leads # includes live DNS lookups
apify run