X (Twitter) Replies Scraper - Tweet Replies, No Login
Pricing
from $3.50 / 1,000 x/twitter reply scrapeds
X (Twitter) Replies Scraper - Tweet Replies, No Login
Export public replies to X (Twitter) posts from tweet URLs or IDs. Each reply row has text, author profile (followers, bio, verified), likes, views, bookmarks, language and conversation IDs. Sort by relevance, recency or likes and resume big exports with a saved cursor. No login or cookies.
Pricing
from $3.50 / 1,000 x/twitter reply scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
22
Total users
4
Monthly active users
14 days ago
Last modified
Categories
Share
What is X (Twitter) Replies Scraper?
X (Twitter) Replies Scraper exports the public replies to any X (Twitter) post, with no login or cookies. Give it tweet URLs or numeric tweet IDs (up to 50 per run) and get one dataset row per reply: reply text, time, language, the replying account (followers, bio, verified), and likes, views, retweets, quotes and bookmarks.
Sort replies by Relevance, Recency or Likes, keep only replies with enough likes or in one language before you are charged, and resume large exports with the cursor saved in RUN_SUMMARY.nextCursors.
| What you get | Fields |
|---|---|
| Reply | replyId, replyUrl, text, createdAt, language, conversationId, inReplyToTweetId, source |
| Replying account | authorUsername, authorName, authorId, authorUrl, authorVerified, authorFollowers, authorFollowing, authorBio, authorProfileImageUrl |
| Engagement | likeCount, replyCount, retweetCount, quoteCount, viewCount, bookmarkCount |
| Content | hashtags, mentions, urls, mediaUrls |
| Context | parentTweetId, parentTweetUrl, rankingMode, position, page, scrapedAt |
Best fit
- Launch and campaign reviews: read what people replied to an announcement.
- Brand monitoring: pull the newest replies to your posts every day with
rankingMode: "Recency". - Social listening and sentiment: export reply text with language and author reach for analysis.
- Lead research: find engaged accounts with large followings in a conversation.
- AI agents: one call returns flat reply rows ready for summarising.
Which X (Twitter) Actor should I use?
This Actor is part of a family of public X (Twitter) Actors that share the same no-login approach and similar row fields. Pick the one that matches your job:
- This Actor is the right pick when you only need replies to specific posts, with like/language filters and a resume cursor.
- Use X (Twitter) Quote Tweets Scraper instead when you need the quote tweets of a post, with the original post on every row.
- Use X Tweet Engagement Scraper instead when you want replies, quote tweets and retweeters of the same posts together in one run.
- Use X (Twitter) Retweeters Scraper instead when you only need the accounts that retweeted a post.
- Use X (Twitter) Profile Scraper instead when you need bio, follower counts and verification for a list of accounts.
- Use X (Twitter) Following Scraper instead when you need the accounts a user follows.
- Use Twitter/X Scraper — Profiles & Followers instead when you need the followers of an account.
Practical scenario
A community manager wants the most-liked replies to a product announcement before the weekly review. She enters the post URL, sets rankingMode: "Likes", minLikes: 5 and maxReplies: 200. Low-signal replies are skipped and not charged. She sorts the export by likeCount, reads the top themes in text, and checks authorFollowers to spot influential voices.
Input
| Field | Type | Default | Description |
|---|---|---|---|
tweetUrls | array | required | Tweet URLs (https://x.com/OpenAI/status/2065225362544726371) or numeric tweet IDs, up to 50. |
rankingMode | string | Relevance | Relevance, Recency (newest first) or Likes (most liked first). |
maxReplies | integer | 100 | Total reply rows saved and charged across all tweets (1–5000). |
minLikes | integer | 0 | Keep only replies with at least this many likes. Skipped replies are not charged. |
language | string | empty | Keep only replies in one language, as a two-letter code such as en. |
maxPagesPerTweet | integer | 10 | How deep to follow each conversation (1–100). |
startCursor | string | empty | Continue a previous run from RUN_SUMMARY.nextCursors. |
dedupeReplies | boolean | true | Skip duplicate replies across pages and tweets. |
{"tweetUrls": ["https://x.com/OpenAI/status/2065225362544726371"],"rankingMode": "Likes","maxReplies": 200,"minLikes": 5,"language": "en"}
Output
One dataset row per public reply. Sample row (replying account anonymised; other values from a real export):
{"parentTweetId": "2065225362544726371","parentTweetUrl": "https://x.com/OpenAI/status/2065225362544726371","rankingMode": "Relevance","position": 1,"replyId": "2099602156332429431","replyUrl": "https://x.com/example_user/status/2099602156332429431","text": "@OpenAI Please also enable the ability to buy a usage reset.","createdAt": "2026-09-14T20:52:17.000Z","language": "en","conversationId": "2065225362544726371","authorUsername": "example_user","authorName": "Example User","authorUrl": "https://x.com/example_user","authorVerified": false,"authorFollowers": 80,"authorFollowing": 26,"replyCount": 0,"retweetCount": 0,"quoteCount": 0,"likeCount": 2,"viewCount": 34,"bookmarkCount": 0,"mentions": ["openai"],"source": "Twitter for iPhone","page": 1,"scrapedAt": "2026-10-12T06:53:21.824Z"}
Each run also writes OUTPUT and RUN_SUMMARY to the default key-value store with an outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT or UPSTREAM_FAILED), counts, replies skipped by filters, and nextCursors for resuming.
Pricing
Pay per event, with Apify platform usage included. You pay the x-reply-scraped event once for each reply saved to the dataset, plus the small apify-actor-start event. Replies skipped by minLikes, language or dedupe are not charged, and maxReplies is a hard cap on reply events. See the Pricing tab for current event prices.
Use with AI agents (MCP)
Actor identity: khadinakbar/x-twitter-replies-scraper.
Get the 100 most-liked English replies to https://x.com/OpenAI/status/2065225362544726371 and summarise the main requests people make.
{ "tweetUrls": ["https://x.com/OpenAI/status/2065225362544726371"], "rankingMode": "Likes", "maxReplies": 100, "language": "en" }
Read OUTPUT.outcome first. VALID_EMPTY means the post has no matching public replies; PARTIAL means some rows were saved and RUN_SUMMARY.nextCursors lets you continue. replyUrl links each row back to X.
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/x-twitter-replies-scraper').call({tweetUrls: ['https://x.com/OpenAI/status/2065225362544726371'],rankingMode: 'Recency',maxReplies: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems({ clean: true });console.log(items.map((r) => [r.authorUsername, r.likeCount, r.text]));
Best results
- Use
Likesfor the strongest replies,Recencyfor monitoring andRelevancefor X's default order. - Start with
maxReplies: 50to check a conversation, then raise it. - Add
minLikesandlanguageto pay only for replies you will use. - For very large threads, save
RUN_SUMMARY.nextCursorsand pass it asstartCursorin the next run with the same tweet and ranking mode.
Builder's note
I built this for workflows that start from one known post. I found that most buyers want a few hundred strong replies, not every one-word reaction, so I added the like and language filters before billing: you pay only for rows that pass.
FAQ
Do I need an X account or cookies?
No. The Actor reads public reply data only.
Why did I get fewer replies than the post shows?
X hides some replies (for example from limited or deleted accounts) from public view. The Actor saves the public replies it can read; raise maxPagesPerTweet to follow the conversation deeper.
Can I continue a big export?
Yes. Copy the cursor from RUN_SUMMARY.nextCursors into startCursor and run again with the same tweet and ranking mode.
Does it return nested replies?
It follows the reply conversation of each post. Use inReplyToTweetId and conversationId to rebuild threads.
Responsible use
This Actor collects publicly available X (Twitter) replies. Use the data in line with X's terms, privacy law and your own data policies, especially when handling personal profile data. This Actor is not affiliated with or endorsed by X Corp.