Twitter X Reply Scraper With Replier Contact Leads avatar

Twitter X Reply Scraper With Replier Contact Leads

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Twitter X Reply Scraper With Replier Contact Leads

Twitter X Reply Scraper With Replier Contact Leads

Twitter/X Reply Scraper extracts replies and replier details, including usernames, profile data, reply text, timestamps, engagement metrics, and publicly available contact leads. Ideal for audience research, lead generation, engagement analysis, and social media intelligence.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Twitter X Reply Scraper With Replier Contact Leads

Scrape X (Twitter) search results and their replies, then turn every reply author into an outreach-ready lead: bio, location, website, email and phone (only when actually present), plus follower and following counts. Point it at a search like #journorequest or #hiring, and get back not just the posts but the people replying to them, with their real contact details already extracted.

Most X scrapers stop at the post and its reply count. This one follows every reply down to its author's profile and reply text, scans for a literal email, website or phone number, and flags exactly which repliers are usable leads — so you don't open a hundred profiles by hand.

What is Twitter X Reply Scraper With Replier Contact Leads?

It's an Apify actor built for lead generation from X (Twitter) conversations. Give it search URLs (the same links you'd get from x.com's own search), and it collects the matching posts, then — for each post — pulls the actual replies underneath and mines each reply author's public profile and reply text for a bio, location, declared website, and any email or phone number that appears literally in text. Nothing is guessed or inferred: a reply author only gets an email or phone value if one is actually written in their bio or their reply. It needs your own logged-in X session (authToken + ct0 cookies) because reply threads are no longer readable without authentication.

What data can I extract with Twitter X Reply Scraper With Replier Contact Leads?

Post fields (one row per matched post, charged_event_name: "row_result"):

FieldDescription
tweetLinkDirect link to the post.
handle / fullname / avatar / verifiedPost author identity.
tweetContent / tweetDatePost text and publish date.
commentCount / retweetCount / quoteCount / likeCountPost engagement counters.
repliersWithContactsCount of repliers on this post who carry an extracted contact.
repliesDataArray of reply-author lead objects (see below).

Reply-author lead fields (inside each repliesData entry):

FieldDescription
replierBio / replierLocationReply author's profile bio and location text.
replierWebsite / replierWebsitesDeclared profile link, plus any additional links found in bio or reply text.
replierEmail / replierEmails / replierEmailTypeEmail(s) found literally in bio or reply text (personal/business heuristic), or null if none appears.
replierPhonePhone number found literally in bio or reply text, or null.
replierFollowers / replierFollowing / replierTweetsReply author's own follower/following/post counts.
replierHasContacttrue if the reply author has at least one of email, website or phone.

Why not build this yourself?

X's reply threads (TweetDetail) are only readable to an authenticated session, and X does not expose account email addresses through any API — the only way to attribute an email to a person is to find it literally written somewhere they control, like their bio or a reply. This actor already scans both places with pattern-matched extraction, discovers X's current GraphQL query IDs at run start (they change without notice), and escalates through a proxy fallback ladder (direct → datacenter → residential) automatically when X starts blocking requests.

Because coverage depends on what people actually publish, replierHasContact will be false for most repliers — that's expected, not a bug. Use contactsOnly to keep just the leads that carry a usable contact instead of scrolling past the empty ones.

How to use data extracted from Twitter X Reply Scraper With Replier Contact Leads?

  • Sales and BD teams — turn hashtag conversations like #hiring or #journorequest into a filtered list of repliers who left a contact detail, ready for outreach.
  • Recruiters — find candidates replying to job-related threads and pull their bio, website and contact info in one pass.
  • PR agencies — mine #journorequest-style threads for journalists who included an email or website in their reply.
  • Growth marketers — identify engaged repliers on competitor or industry posts and export only the ones with a public contact channel.

🔼 Input sample

ParameterRequiredTypeDescriptionExample
startUrlsYesarrayX search page links — the exact URL you get from searching on x.com. Each defines one topic/keyword set to follow.["https://x.com/search?q=%23journorequest+min_replies%3A10&src=typed_query&f=live"]
maxSearchResultsNointegerPosts to collect per search link. Default 10, max 5000.10
maxRepliesNointegerReplies (leads) to keep per post, counted after the contactsOnly filter. Default 5, max 500.5
extractReplierContactsNobooleanHarvest each reply author's bio, location, website, email and phone. Default true. Common pitfall: email is reported only when it appears verbatim in bio/reply text — X never exposes account emails, so coverage is partial by design.true
contactsOnlyNobooleanKeep only replies whose author has at least one contact detail, applied before maxReplies. Default false.true
authTokenNostring (secret)Your X auth_token session cookie (or set the AUTH_TOKEN env var). Required to read replies — the run stops with an error if missing from both sources."a1b2c3..."
ct0Nostring (secret)Your X ct0 CSRF cookie, same session as authToken (or the CT0 env var)."d4e5f6..."
proxyConfigurationNoobjectOptional Apify Proxy. The actor escalates through direct → datacenter → residential automatically if X starts blocking requests, regardless of this setting.{"useApifyProxy": false}
{
"startUrls": ["https://x.com/search?q=%23journorequest+min_replies%3A10&src=typed_query&f=live"],
"maxSearchResults": 10,
"maxReplies": 5,
"contactsOnly": true,
"authToken": "YOUR_X_AUTH_TOKEN",
"ct0": "YOUR_X_CT0_TOKEN"
}

🔽 Output sample

{
"tweetLink": "https://x.com/exampleuser/status/1234567890123456789",
"handle": "@exampleuser",
"tweetContent": "Looking for a freelance writer for a tech piece, DM or reply! #journorequest",
"tweetDate": "2026-07-20",
"commentCount": 34,
"likeCount": 210,
"repliersWithContacts": 1,
"repliesData": [
{
"replierBio": "Freelance tech journalist. Bylines in..",
"replierLocation": "London, UK",
"replierWebsite": "https://janedoe.com",
"replierEmail": "jane@janedoe.com",
"replierEmailType": "business",
"replierPhone": null,
"replierFollowers": 4210,
"replierHasContact": true
}
]
}

How do you filter and target specific X reply leads?

Combine contactsOnly with maxReplies to control exactly how many usable leads you get per post, and stack multiple search URLs in startUrls to cover several hashtags or keyword sets in one run.

Only repliers with a real contact detail, top 5 per post:

{ "startUrls": ["https://x.com/search?q=%23hiring&f=live"], "contactsOnly": true, "maxReplies": 5 }

Broad reply capture without filtering, for manual review:

{ "startUrls": ["https://x.com/search?q=%23journorequest&f=live"], "extractReplierContacts": false }

Multiple hashtag searches in one run:

{ "startUrls": ["https://x.com/search?q=%23hiring&f=live", "https://x.com/search?q=%23journorequest&f=live"], "maxSearchResults": 20 }

▶️ Want to try other scrapers?

ActorWhat it does
twitter-x-posts-scraper-repliesScrape a profile's posts with full reply threads.
x-twitter-posts-search-by-advanced-keyword-filtersSearch X posts with advanced keyword filters.
twitter-trends-scraper-by-city-multiple-countriesTrack trending topics across cities and countries.

How to extract X reply leads programmatically

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("SimpleAPI/twitter-x-reply-scraper-with-replier-contact-leads").call(run_input={
"startUrls": ["https://x.com/search?q=%23journorequest+min_replies%3A10&src=typed_query&f=live"],
"maxSearchResults": 10,
"maxReplies": 5,
"contactsOnly": True,
"authToken": "YOUR_X_AUTH_TOKEN",
"ct0": "YOUR_X_CT0_TOKEN",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
for lead in item["repliesData"]:
if lead.get("replierHasContact"):
print(lead["replierEmail"], lead["replierWebsite"])

Every run's dataset can also be exported straight to JSON, CSV, Excel or an API endpoint from the Apify Console — no code needed for a one-off pull.

Scraping publicly accessible data is generally lawful in the US under the precedent set in hiQ Labs v. LinkedIn, which held that scraping data not gated behind a login does not violate the Computer Fraud and Abuse Act. This actor reads posts, replies and profile bios that are publicly visible on X — the session cookie it uses is a viewing credential only, not a way to access private content. Because this actor's whole purpose is extracting contact details tied to identifiable people, GDPR (EU) and CCPA (California) apply directly to what you do with the output — review your legal basis before using extracted emails or phone numbers for outreach, especially at scale.

❓ FAQ

Why do I need my own X auth_token and ct0 cookies? X requires an authenticated session to read reply threads — the logged-out guest API for that endpoint was shut off. Log into x.com, open DevTools → Application → Cookies, and copy both values from the same session.

Why is replierEmail null for most repliers? X does not expose account email addresses through any API. This actor only reports an email when one is written literally in the reply author's bio or reply text — most people don't publish an email there, so a low hit rate is expected, not a bug.

How is replierEmailType determined? It's a lightweight heuristic based on the email's domain (e.g. a free-mail provider vs. a custom domain), reported alongside the email so you can prioritize business-looking addresses if useful — it isn't a verified classification.

What does contactsOnly actually filter? It drops any reply whose author has no email, website or phone before maxReplies is applied — so maxReplies: 5 with contactsOnly: true returns up to 5 leads that actually carry a contact, not 5 replies total.

What happens if I don't provide authToken/ct0? The actor checks for a valid session (from input or the AUTH_TOKEN/CT0 environment variables) before starting and stops immediately with an error if neither is present — no partial run happens.

Why did a search return posts but no replies? If X starts blocking requests for that session/IP combination, the actor automatically retries through a proxy escalation ladder (direct → datacenter → residential). If replies still come back empty after that, the session cookies may have expired — refresh them from your browser.

How is this different from other X lead-generation scrapers on Apify? As observed on the Apify Store on 2026-07-26, most X reply/contact scrapers we reviewed require chaining a separate post scraper and a separate contact-enrichment actor. This one collects posts, replies and literal contact extraction in a single run, keyed per search URL.

Conclusion

Twitter X Reply Scraper With Replier Contact Leads turns hashtag and keyword searches into a filtered list of engaged people with real, literally-published contact details — ready for outreach without opening a single profile by hand.