X Twitter Scraper: Tweets, Replies, Followers (No Mock Data)
Pricing
from $0.25 / 1,000 tweets
X Twitter Scraper: Tweets, Replies, Followers (No Mock Data)
Twitter scraper for X: tweets by search, profile, link or replies, plus followers and following. Exact limits, real date filters, no mock data, and you pay only for real, unique rows.
Pricing
from $0.25 / 1,000 tweets
Rating
0.0
(0)
Developer
Himanshu Agrawal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
X Twitter Scraper: Tweets, Replies, Followers. No Mock Data
This Twitter scraper gets tweets from X by search query, profile, tweet link or replies, plus the followers and following of any public account. Every tweet comes with full text, likes, retweets, replies, quotes, bookmarks, views, media with video links, quoted and retweeted tweets, and author details. You pay only for real, unique rows, and IDs are always text, so long tweet IDs never get rounded.
What you can use it for
- Scrape tweets by keyword or hashtag for brand monitoring, sentiment analysis and market research. Advanced X search operators work (
from:,since:,min_faves:,lang:,-filter:replies). - Scrape a Twitter profile to collect an account's tweets, optionally with its own replies.
- Scrape tweet replies to read the conversation under a launch, an announcement or a viral post.
- Scrape Twitter followers and following of public accounts for audience research and influencer lists, one row per user.
- Fetch single tweets from links or IDs to fill in metrics for tweets you already know.
- Build AI and NLP datasets of clean tweet text with dates, language and engagement numbers.
Fair billing
- Only real tweets and users are charged. No demo, mock or placeholder rows, ever. If the data source sends one, it is dropped and counted in the run summary.
- No start fee, no per-run fee, no per-query fee, no minimum charge.
- Same price on every Apify plan, free plan included.
- Free Apify plan: up to 100 results per run (10 tweets fetched by link), so you can try it. Paid plans have no limit.
- Date filters and limits are enforced by the Actor itself. Tweets outside your dates or filters are skipped and not charged.
Max rows per input itemis exact: you never get, or pay for, more than you asked.- Duplicates are never charged. A tweet found by two searches is saved once.
- An empty run costs nothing for results.
- When you hit your spending limit, the run stops cleanly.
How to use
- Open the X Twitter Scraper page and click Try for free (you sign in to your Apify account).
- Fill in at least one source: search terms, profiles, tweet links, replies of tweets, or followers/following handles.
- Set Max rows per input item, and optionally dates and filters.
- Click Start. Rows appear in the Output tab while the run works.
- Export the dataset as JSON, CSV or Excel, or check the
SUMMARYrecord in the key-value store.
API: start a run and get the rows in one call with POST https://api.apify.com/v2/acts/himanshu-data~x-twitter-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> and the input as JSON in the body.
Input
| Field | What it does |
|---|---|
| Search terms | X search queries, one per line. Advanced operators work. |
| Search sort | Latest (default) or Top. |
| Profiles | Handles or links: nasa, @nasa, https://x.com/nasa. Gets their tweets. |
| Include the profile's own replies | Off by default. |
| Tweet links or IDs | Fetch these tweets directly. |
| Replies of tweets | Tweet links or IDs whose replies you want. |
| Followers of / Following of | Handles whose followers or followed accounts you want. |
| Max rows per input item | Per search term, profile, tweet's replies or handle. Default 100. |
| Max rows for the whole run | Optional hard cap across everything. |
| From date / To date | Inclusive, UTC. Also sent to the data source to save requests. |
| Min likes, retweets, replies, views | Skip tweets below these numbers. |
| Language | Two-letter code such as en. |
| Exclude retweets / Exclude replies | Skip those tweets. |
| Only tweets with media / Only verified authors | Keep only those tweets. |
{"searchTerms": ["openai lang:en -filter:replies"],"profiles": ["nasa"],"maxItems": 200,"startDate": "2026-10-01","minLikes": 10}
Output
One row per tweet or user. Field names never change between runs. Real output (October 2026, text shortened):
{"type": "tweet","id": "2113358139999265160","url": "https://x.com/NASA/status/2113358139999265160","text": "That's our jam 🎼 Astronomers used @ChandraXray to find out that this radio wave...","createdAt": "2026-10-22T19:53:39.000Z","lang": "en","likes": 3070,"retweets": 506,"replies": 209,"quotes": 40,"bookmarks": 176,"views": 535595,"isReply": false,"isRetweet": false,"isQuote": false,"conversationId": "2113358139999265160","author": {"id": "11348282", "username": "NASA", "name": "NASA", "followers": 92310412, "following": 115,"verified": false, "blueVerified": true,"profileImageUrl": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_normal.jpg","createdAt": "2007-12-19T20:20:32.000Z"},"media": [{ "type": "photo", "url": "https://pbs.twimg.com/media/HVQoB1nXIAAiLcW.jpg", "videoUrl": null, "durationMs": null }],"quotedTweet": null,"retweetedTweet": null,"mentions": ["chandraxray"],"source": "profile","input": "nasa"}
User rows have type: "user", id, username, name, bio, location, website, followers, following, tweetsCount, likesCount, verified, blueVerified, createdAt, profileImageUrl, bannerUrl, url, source, input, scrapedAt. Missing values are null. views is null when X shows no count, never a fake 0.
Each run also writes a SUMMARY record to the key-value store. For every input item it lists rows delivered, rows skipped by dates or filters, duplicates, placeholder rows dropped, and why it stopped (limit reached, no more results, provider error, spending limit or free plan limit).
Pricing
$0.25 per 1,000 tweets from searches, profiles and replies; $2 per 1,000 tweets fetched by link; $0.25 per 1,000 followers or following
Integrations
- Apify API to start runs and read datasets from any language.
- Python and JavaScript clients (
apify-client) for scripts and backends. - Zapier, Make and n8n to send new tweets to Google Sheets, Slack, a CRM or a database.
- MCP for AI agents: connect the Apify MCP server to Claude, ChatGPT or another MCP client and the agent can run this Actor as a tool.
- Schedules and webhooks in Apify Console for daily or hourly runs.
FAQ
Do I need an X account or an API key? No. You only need an Apify account. You never enter X credentials.
How many tweets can I get?
Up to 1,000,000 rows per input item on paid plans, and up to 100 results per run on the free Apify plan. Profile timelines on X only go back about 3,200 tweets, so for a long history search from:handle with a date range.
Why did I get fewer tweets than I asked for?
Open the SUMMARY record. It says for each input why it stopped: no more results, tweets skipped by your dates or filters, duplicates, the spending limit or the free plan limit. Narrow searches and strict filters return fewer rows.
Do I pay for empty or fake results? No. Placeholder rows are dropped, duplicates and filtered tweets are not charged, and an empty run costs nothing for results.
Can I schedule it?
Yes. Create a schedule in Apify Console, for example a daily search with From date set, and connect an integration to get the new rows.
Which export formats are there? JSON, CSV, Excel, XML, HTML and JSONL from the dataset, or the API.
Can I scrape replies to a tweet? Yes, with Replies of tweets. Replies work best on the first tweet of a thread.
Is it legal to scrape X (Twitter)? The Actor collects only public data. You are responsible for how you use it: follow X's terms and the laws where you live, and take care with personal data (for example under GDPR). This is not legal advice.
Tips
- Use
From dateandTo dateinstead of paging through old tweets: the dates are sent to the data source, so fewer requests are needed. - Set
Max rows for the whole runwhen you run many search terms and want a firm total.