Twitter Comment Scraper
Pricing
from $5.00 / 1,000 results
Twitter Comment Scraper
Extract Twitter/X comments & replies from any tweet in seconds. π No login, no API keys. π Get author profiles, engagement stats, media, hashtags & metadata as structured JSON. Sort by relevance, recency, or likes. π° At $5 per 1,000 results.
Pricing
from $5.00 / 1,000 results
Rating
5.0
(1)
Developer
Mikolabs
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
π¦ Twitter (X) Comment Scraper
Extract comments, replies & engagement data from any tweet at scale β no login, no API keys, no tokens.
Twitter (X) Comment Scraper is a lightning-fast, cookieless Apify actor that extracts comments and replies from any public tweet β 20+ comments in under 2 seconds, no login required. It captures full author profiles, engagement stats (likes, retweets, quotes, bookmarks, views), media attachments (images, videos, GIFs), hashtags, mentions, and conversation metadata. Sort replies by relevance, recency, or likes. Filter by minimum engagement. Batch-scrape multiple tweets in a single run. Returns clean, structured JSON ready for sentiment analysis, lead generation, brand monitoring, competitive research, and influencer vetting β at just $5 per 1,000 results.
π No Login Β· No API Keys Β· No Tokens Β· Unlimited Scraping
| π« Zero Authentication | No Twitter account, no developer tokens, no API keys β just paste a tweet URL and go. |
| βΎοΈ Unlimited Scraping | No daily quotas or artificial caps. Scrape as many tweets and comments as you need. |
| π° $5 per 1,000 Results | Transparent, predictable pricing. Pay only for what you use β no subscriptions, no hidden fees. |
| β‘ Instant Results | Get structured JSON data in seconds. Export as JSON, CSV, or Excel with one click. |
π Table of Contents
- Key Features
- Pricing
- Use Cases
- Getting Started
- Input Parameters
- Output Data Schema
- Example Output
- Exporting & Integrating Data
- Tips & Best Practices
- Limitations
- FAQ
- Related Actors
- Support & Feedback
β¨ Key Features
| Feature | Description |
|---|---|
| π No Login Required | Completely cookieless β no Twitter account, no API keys, no developer tokens needed. Just paste a tweet URL. |
| βΎοΈ Unlimited Scraping | No daily limits, no quotas. Scrape as many tweets and comments as your workflow demands. |
| π° $5 / 1,000 Results | Simple, transparent pay-per-use pricing with no subscriptions or hidden fees. |
| Batch Tweet Scraping | Provide multiple tweet URLs in a single run and scrape comments from all of them. |
| Flexible Sorting | Sort replies by Relevance, Recency, or Likes to surface the data you care about. |
| Engagement Filtering | Set a minimum likes threshold to filter out low-engagement noise. |
| Rich User Profiles | Capture author username, display name, bio, location, follower / following counts, verification status, and more. |
| Full Engagement Metrics | Likes, retweets, replies, quotes, bookmarks, and view counts for every comment. |
| Media Extraction | Images, videos, and GIFs β including thumbnail URLs, video URLs, and duration. |
| Commenter Stats | Optionally fetch full stats (followers, following, tweet count, etc.) for each commenter. |
| Conversation Metadata | Conversation IDs, reply-to IDs, edit history, language, source app, and more. |
| Scalable & Cloud-Ready | Runs on the Apify platform with automatic retries, proxy support, and dataset storage. |
π° Pricing
| Volume | Cost | Per Result |
|---|---|---|
| 1,000 results | $5.00 | $0.005 |
| 5,000 results | $25.00 | $0.005 |
| 10,000 results | $50.00 | $0.005 |
| 50,000 results | $250.00 | $0.005 |
Flat rate. No subscriptions. No hidden fees. You pay only for the results you scrape. Pricing is based on Apify platform compute usage at approximately $5 per 1,000 comment results.
π― Use Cases
- Sentiment Analysis β Gauge public opinion on viral tweets, product launches, or brand mentions.
- Lead Generation β Identify potential customers engaging with competitor content.
- Brand Monitoring β Track replies to your brand's tweets and surface complaints or praise.
- Competitive Research β Analyze engagement patterns on competitor posts.
- Market Research β Understand audience reactions to industry trends and announcements.
- Content Strategy β Discover which reply styles generate the most engagement.
- Influencer Vetting β Review comment quality and engagement on an influencer's posts.
- Journalism & OSINT β Collect public discourse around breaking news events.
π Getting Started
Prerequisites
- An Apify account (free tier available).
- That's it β no Twitter account, no API keys, no tokens required.
Quick Start (3 Steps)
- Open the Twitter (X) Comment Scraper actor page on Apify.
- Paste one or more tweet URLs β configure sorting, filters, and limits as needed.
- Run and download your data as JSON, CSV, or Excel. Done.
π‘ No login, no cookies, no authentication of any kind. Just provide tweet URLs and start scraping instantly.
βοΈ Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
tweetUrls | string[] | β Yes | [] | One or more Twitter/X tweet URLs to scrape comments from. Format: https://x.com/username/status/123456789 |
sortReplies | string | No | Relevance | How to sort replies. Options: Relevance, Recency, Likes |
minLikes | integer | No | 0 | Minimum number of likes a comment must have to be included. Set to 0 to include all comments. |
includeCommenterStats | boolean | No | false | Fetch full profile stats (followers, following, tweet count, etc.) for each commenter. Note: Enabling this significantly slows down scraping as it requires an additional request per comment. |
maxComments | integer | No | 0 | Maximum number of comments to extract per tweet. Set to 0 for unlimited. |
Example Input
{"tweetUrls": ["https://x.com/elonmusk/status/2000645900549685307","https://x.com/OpenAI/status/1234567890123456789"],"sortReplies": "Likes","minLikes": 10,"includeCommenterStats": false,"maxComments": 100}
π¦ Output Data Schema
Each scraped comment is stored as a JSON object in the Apify dataset. Below is a detailed breakdown of every field.
Comment Fields
| Field | Type | Description |
|---|---|---|
replying_to_tweet | string | URL of the original tweet this comment replies to |
tweet_url | string | Direct URL to this comment |
text | string | Full text content of the comment |
date | string | ISO timestamp of when the comment was posted |
conversation_id | string | ID of the main conversation thread |
in_reply_to_tweet_id | string | ID of the tweet this comment is replying to |
is_quote_tweet | boolean | Whether this comment is a quote tweet |
quoted_tweet | object|null | Quoted tweet data (if applicable) |
lang | string | Language code of the comment (e.g., en, es, ja) |
source | string | Client used to post (e.g., Twitter for iPhone) |
is_edited | boolean | Whether the comment has been edited |
edits_remaining | string | Number of edits remaining |
possibly_sensitive | boolean | Whether the content may be sensitive |
has_community_notes | boolean | Whether the comment has community notes |
Author Information (author)
| Field | Type | Description |
|---|---|---|
author.id | string | Unique Twitter user ID |
author.name | string | Display name |
author.screen_name | string | Username / handle (without @) |
author.avatar | string | Profile image URL |
author.is_verified | boolean | Twitter Blue verification status |
Author Information with includeCommenterStats: true
When includeCommenterStats is enabled, the author object is enriched with additional profile data:
| Field | Type | Description |
|---|---|---|
author.description | string | User bio |
author.location | string | User location |
author.followers_count | integer | Number of followers |
author.following_count | integer | Number of accounts followed |
author.tweet_count | integer | Total tweets posted |
author.favourites_count | integer | Total likes given |
author.media_count | integer | Media items uploaded |
author.lists_count | integer | Lists the user is a member of |
author.account_created_at | string | Account creation date |
author.profile_banner | string | Banner image URL |
author.is_protected | boolean | Whether the account is private |
author.pinned_tweet_ids | string[] | IDs of pinned tweets |
author.profile_url | string | Website URL |
author.professional_info | object|null | Professional account category and type |
Engagement Metrics (stats)
| Field | Type | Description |
|---|---|---|
stats.likes | integer | Number of likes |
stats.replies | integer | Number of replies |
stats.retweets | integer | Number of retweets |
stats.quotes | integer | Number of quote tweets |
stats.bookmarks | integer | Number of bookmarks |
stats.views | string | Number of views |
Entities
| Field | Type | Description |
|---|---|---|
entities.hashtags | array | Hashtags used in the comment |
entities.user_mentions | array | Users mentioned in the comment |
entities.urls | array | URLs included in the comment |
entities.media | array | Media attachments with metadata |
Media Attachments (media)
| Field | Type | Description |
|---|---|---|
media[].type | string | Media type: photo, video, or animated_gif |
media[].thumb_url | string | Thumbnail image URL |
media[].url | string | Media page URL |
media[].video_url | string|null | Direct video file URL (videos only) |
media[].duration_ms | integer|null | Video duration in milliseconds (videos only) |
π Example Output
{"replying_to_tweet": "https://x.com/elonmusk/status/2000645900549685307","tweet_url": "https://x.com/ClownWorld/status/2000650156405072211","conversation_id": "2000645900549685307","in_reply_to_tweet_id": "2000645900549685307","is_quote_tweet": false,"quoted_tweet": null,"author": {"id": "1446932149148344320","name": "Clown World β’ π€‘","screen_name": "ClownWorld","avatar": "https://pbs.twimg.com/profile_images/2007190860690046977/ZAITQvgd_normal.jpg","is_verified": true},"text": "@elonmusk Haters will say this is AI https://t.co/djLDxhqJlw","date": "Mon Dec 15 19:32:22 +0000 2025","stats": {"likes": 4430,"replies": 748,"retweets": 575,"quotes": 49,"bookmarks": 175,"views": "812441"},"entities": {"hashtags": [],"urls": [],"user_mentions": [{"id_str": "44196397","name": "Elon Musk","screen_name": "elonmusk"}]},"media": [{"type": "video","thumb_url": "https://pbs.twimg.com/amplify_video_thumb/2000650105603686400/img/R4soCzawh48AMneU.jpg","url": "https://x.com/ClownWorld/status/2000650156405072211/video/1","video_url": "https://video.twimg.com/amplify_video/2000650105603686400/vid/avc1/464x688/HobG6DrrCTZ3n-T8.mp4?tag=23","duration_ms": 6041}],"lang": "en","source": "Twitter for iPhone","has_community_notes": false,"is_edited": false,"edits_remaining": "5","is_translatable": false,"possibly_sensitive": false}
Note: The above is a single comment object. A full run returns an array of these objects β one per scraped comment.
π€ Exporting & Integrating Data
Apify makes it easy to consume your scraped data:
| Format | Method |
|---|---|
| JSON / CSV / Excel | Download directly from the Apify dataset UI |
| REST API | Access data programmatically via the Apify API |
| Webhooks | Trigger notifications or downstream pipelines on run completion |
| Integrations | Connect to Google Sheets, Slack, Zapier, Make, and more via Apify Integrations |
API Access Example
# Fetch results as JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<YOUR_API_TOKEN>"# Fetch results as CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&token=<YOUR_API_TOKEN>"
Python Integration
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"tweetUrls": ["https://x.com/elonmusk/status/2000645900549685307"],"sortReplies": "Likes","minLikes": 5,"maxComments": 50}run = client.actor("your-actor-id").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"@{item['author']['screen_name']}: {item['text']}")print(f" β€οΈ {item['stats']['likes']} π {item['stats']['retweets']}")
JavaScript / Node.js Integration
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('your-actor-id').call({tweetUrls: ['https://x.com/elonmusk/status/2000645900549685307'],sortReplies: 'Likes',minLikes: 5,maxComments: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`@${item.author.screen_name}: ${item.text}`);console.log(` β€οΈ ${item.stats.likes} π ${item.stats.retweets}`);});
π‘ Tips & Best Practices
- Zero setup β No accounts, tokens, or cookies needed. Just paste tweet URLs and run.
- Start small β Test with a small
maxCommentsvalue (e.g.,20) before running large-scale scrapes to validate your setup. - Use
minLikesto reduce noise β High-engagement comments are typically more relevant for analysis. - Sort by
Likesfor research β The most-liked comments surface the strongest community consensus. - Sort by
Recencyfor monitoring β Get the freshest replies for real-time brand monitoring. - Enable
includeCommenterStatsselectively β This adds an extra HTTP request per comment and significantly increases run time. Only enable it when you need detailed profile data. - Batch multiple tweets β Provide multiple URLs in a single run to save on actor start-up overhead.
- Schedule recurring runs β Use Apify's scheduling feature to monitor tweet replies over time.
β οΈ Limitations
- Pagination limits β Due to Twitter's interface constraints, the actor can retrieve a maximum of approximately 200 comments per tweet in a single run.
- No nested replies β The scraper collects top-level replies visible on the tweet screen. Deeply nested conversation threads are not expanded.
- Rate limiting β Excessive scraping may trigger Twitter's rate limiting. Space out large runs accordingly.
- Public tweets only β The actor can only scrape comments on publicly visible tweets.
β Frequently Asked Questions
π More from Mikolabs β Twitter / X Scraping Suite
This actor is part of the Mikolabs Twitter / X Scraping Suite on Apify. Check out our other actors:
| Actor | Description | Link |
|---|---|---|
| π X (Twitter) Advanced Search Tweet Scraper | Scrape tweets using Twitter's powerful advanced search operators β by keyword, hashtag, user, date range, engagement, and more. | Try it β |
| π₯ X (Twitter) Media Downloader | Download images, videos, and GIFs from any tweet or user timeline. Bulk export media at scale. | Try it β |
| π¦ Twitter / X Scraper β Complete Suite | The all-in-one Twitter scraper β extract tweets, profiles, followers, search results, and more in a single actor. | Try it β |
| π¬ Twitter (X) Comment Scraper | (You are here) Extract comments & replies from any tweet with engagement data. | Try it β |
π€ Support & Feedback
- β Leave a review β If you found this actor useful, drop us a review β it helps a lot!
- π Issues or bugs? β Report an issue on the Apify actor page.
- π‘ Feature requests? β Submit via Apify Issues or contact us on Apify.
- β Questions? β Reach out through the Apify actor's discussion section.
- β‘ Direct API Access & Tools β Check out our full suite of APIs at mikolabs.xyz/apis.
- π¦ More actors? β Browse all Mikolabs actors at apify.com/mikolabs.