Twitter (X) Reply Scraper helps you extract structured data from tweets and their replies directly from Twitter / X.com search or tweet URLs. It focuses on capturing the full conversation, including engagement metrics and user details, so you can analyze discussions, sentiment, and trends at scale. This Twitter (X) reply scraper is ideal for researchers, marketers, journalists, and data teams who need reliable, ready-to-use conversation data.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for Twitter (X) Reply Scraper you've just found your team — Let’s Chat. 👆👆
Twitter (X) Reply Scraper is a focused scraping tool that collects detailed information for tweets and their associated replies from public Twitter / X pages. You provide search URLs or specific tweet links, define limits for tweets and replies, and the scraper returns a rich dataset covering tweet content, metadata, and user-level details.
It solves the problem of manually tracking or exporting complex conversations, particularly when you need to see not just the original tweet, but also how people are responding to it. This is especially useful for social media monitoring, campaign performance reporting, journalist hashtag tracking, and community or customer support analysis.
It is designed for:
- Social media and brand analysts who need reply-level insights.
- Journalists and PR professionals tracking hashtags like journo request or prrequest.
- Marketing teams measuring engagement around campaigns and announcements.
- Researchers studying conversations, trends, or online discourse.
- Product and support teams analyzing customer feedback in replies.
- Capture both original tweets and their replies in one pass, preserving the relationship between a tweet and its conversation thread.
- Collect rich engagement metrics such as likes, comments, quotes, and retweets for each tweet and reply.
- Use search URLs with filters such as hashtags, minimum replies, engagement thresholds, language, dates, or accounts to target exactly the conversations you care about.
- Control performance and cost with maxSearchResults and maxReplies, allowing quick high-level scans or deep dives into individual threads.
- Export results in standard formats like JSON, CSV, or Excel, making it easy to plug into dashboards, notebooks, or BI tools.
| Feature | Description |
|---|---|
| Reply-focused scraping | Extracts both tweets and their replies, so you can analyze full conversations rather than isolated posts. |
| No authentication required | Does not require cookies or logged-in sessions, reducing risk of bans and simplifying setup. |
| Flexible start URLs | Works with X.com search URLs or direct tweet links, including advanced search filters for precise targeting. |
| Fine-grained limits | Configure maxSearchResults and maxReplies to balance depth of scraping with speed and resource usage. |
| Rich engagement metrics | Captures likes, comments, quotes, and retweets for each tweet and reply, enabling detailed engagement analysis. |
| User profile details | Collects avatar, full name, handle, and verification status for each account participating in the conversation. |
| Time-series ready | Includes timestamps for tweets and replies, making trend, peak activity, or time-based analysis straightforward. |
| Structured output | Returns clean, consistent JSON objects that can be easily converted to CSV, Excel, or fed into analytics pipelines. |
| Hashtag and keyword support | Works seamlessly with hashtag-based and keyword-based search URLs to track topics and campaigns. |
| Suitable for sentiment and trend analysis | The collected fields are well-suited for NLP, sentiment scoring, clustering, and other data science workflows. |
| Field Name | Field Description |
|---|---|
| tweetLink | Full URL of the tweet or reply on X.com. |
| avatar | URL of the profile image for the tweet author or reply author. |
| fullname | Display name of the user who posted the tweet or reply. |
| handle | Username or handle of the user, including the at symbol if present. |
| verified | Indicator of whether the account is verified or has a verification badge. |
| tweetDate | ISO 8601 timestamp for when the tweet or reply was posted. |
| tweetContent | Full text content of the tweet or reply, including hashtags and mentions. |
| commentCount | Number of comments or replies that the tweet has received. |
| retweetCount | Total retweet count for the tweet. |
| quoteCount | Number of quote tweets referencing the tweet. |
| likeCount | Total number of likes the tweet has received. |
| repliesData | Array of reply objects, each containing the same fields as the parent tweet, representing the conversation thread. |
Example:
{
"tweetLink": "https://x.com/meehikabarua/status/1867564631180632295",
"avatar": "https://pbs.twimg.com/profile_images/1690785189792735232/BmUFicth_bigger.jpg",
"fullname": "Meehika Barua",
"handle": "@meehikabarua",
"verified": null,
"tweetDate": "2024-12-13T13:38:00.000Z",
"tweetContent": "Looking for menswear experts to comment on what to wear to job interview for a Men's Journal piece. Deadline 16th Dec. Email in bio.\n#journorequest #prrequest",
"commentCount": 11,
"retweetCount": 4,
"quoteCount": 0,
"likeCount": 11,
"repliesData": [
{
"tweetLink": "https://x.com/editorielle/status/1867567715252408465",
"avatar": "https://pbs.twimg.com/profile_images/1730590378942681088/MbS2v-ce_bigger.jpg",
"fullname": "EDITORIELLE",
"handle": "@editorielle",
"verified": "verified",
"tweetDate": "2024-12-13T13:50:00.000Z",
"tweetContent": "We've shared this with our Fashion network for you Meehika! Thanks, Bethany x",
"commentCount": 1,
"retweetCount": 0,
"quoteCount": 0,
"likeCount": 1
},
{
"tweetLink": "https://x.com/MediaMatchMaker/status/1867585988102697438",
"avatar": "https://pbs.twimg.com/profile_images/1148575226432802818/nLiLszhz_bigger.png",
"fullname": "MediaMatchMaker",
"handle": "@MediaMatchMaker",
"verified": "verified",
"tweetDate": "2024-12-13T15:02:00.000Z",
"tweetContent": "Hi Meehika, we have shared this for you and let us know if we can help with any future journo requests. - Media Matchmaker Team",
"commentCount": 1,
"retweetCount": 0,
"quoteCount": 0,
"likeCount": 0
},
{
"tweetLink": "https://x.com/KintijaPR/status/1867602139679498305",
"avatar": "https://pbs.twimg.com/profile_images/1854884381308895232/uPeanSn1_bigger.jpg",
"fullname": "kintija/ kiki",
"handle": "@KintijaPR",
"verified": null,
"tweetDate": "2024-12-13T16:07:00.000Z",
"tweetContent": "Hey Meehika, have dropped you an email in regard to this! 😊",
"commentCount": 1,
"retweetCount": 0,
"quoteCount": 0,
"likeCount": 1
},
{
"tweetLink": "https://x.com/makesyoucakes/status/1867565936443580435",
"avatar": "https://pbs.twimg.com/profile_images/1767833219280580608/MR3fO5Yd_bigger.jpg",
"fullname": "Makepeace Sitlhou",
"handle": "@makesyoucakes",
"verified": null,
"tweetDate": "2024-12-13T13:43:00.000Z",
"tweetContent": "Only guy worth talking to @dieworkwear",
"commentCount": 1,
"retweetCount": 0,
"quoteCount": 0,
"likeCount": 2
}
]
}
Twitter (X) Reply Scraper/
├── src/
│ ├── main.py
│ ├── twitter_client.py
│ ├── parsers/
│ │ ├── tweet_parser.py
│ │ └── reply_parser.py
│ ├── utils/
│ │ ├── logging_utils.py
│ │ └── rate_limiter.py
│ └── config/
│ └── settings.example.json
├── data/
│ ├── example-input.json
│ └── sample-output.json
├── tests/
│ ├── test_tweet_parser.py
│ └── test_reply_parser.py
├── requirements.txt
└── README.md
- Social media analysts use it to collect tweets and replies around brand mentions, so they can understand customer sentiment and recurring themes in conversations.
- Journalists and PR teams use it to monitor hashtags like journo request and prrequest, so they can quickly identify relevant opportunities and track responses to their calls for input.
- Marketing teams use it to evaluate campaign performance by analyzing replies to promotional tweets, so they can see how audiences react and optimize future messaging.
- Customer support and community managers use it to gather replies under support-related posts, so they can identify frequent issues, measure response impact, and improve service.
- Researchers and data scientists use it to build datasets of public conversations, so they can run NLP models, sentiment analysis, and trend detection on real-world dialogue.
Q: Do I need a logged-in account or authentication to use this scraper? A: No. The scraper is designed to work without cookies or authenticated sessions. It operates on public Twitter / X pages, which reduces complexity and lowers the risk of account-related blocks.
Q: What kind of URLs can I use as startUrls? A: You can use any public X.com search URL or direct tweet URL. For example, you can build advanced search URLs with filters for keywords, hashtags, accounts, minimum replies or likes, language, date ranges, and more, then paste those URLs into the startUrls list.
Q: How can I control how much data is collected? A: Use maxSearchResults to specify how many tweets matching your search should be scraped, and maxReplies to limit how many replies per tweet are collected. Setting maxReplies to 0 will only scrape the main tweets, which is faster and more cost-efficient for top-level analysis.
Q: What formats are supported for exporting the data? A: The output is generated as structured JSON, which can be directly downloaded or converted into CSV or Excel for use in spreadsheets, BI tools, or custom dashboards.
- Primary Metric: On typical public search URLs with moderate activity, the scraper can process dozens of tweets and associated replies per minute, depending on maxSearchResults and maxReplies settings.
- Reliability Metric: With conservative configuration and reasonable limits, runs can achieve a high success rate, with the majority of requested tweets and replies successfully captured without interruption.
- Efficiency Metric: By adjusting maxReplies and focusing on specific search filters such as hashtags, minimum replies, or date ranges, you can significantly reduce unnecessary traffic and keep runs fast and resource-efficient.
- Quality Metric: The scraper is optimized to return complete and consistent records for each tweet and reply, including engagement counts, user details, and timestamps, providing high-quality data suitable for analytics, dashboards, or machine learning workflows.
