Tweet Scraper — X search, $0.15 per 1,000 tweets
Pricing
$0.15 / 1,000 tweets
Tweet Scraper — X search, $0.15 per 1,000 tweets
Tweets from X (Twitter) search by keyword, URL, handle or filters, newest first. Same input and output as apidojo/tweet-scraper — switch by changing the actor id. Pay only per tweet.
Pricing
$0.15 / 1,000 tweets
Rating
0.0
(0)
Developer
V
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
11
Monthly active users
11 days ago
Last modified
Categories
Share
Tweet Scraper — Twitter (X) search scraper, $0.15 per 1,000 tweets
Scrape tweets from X (Twitter) search: keywords, hashtags, search URLs, handles, advanced search operators, filters and date ranges. Newest first (Latest) or as X ranks them (Top). No X API key, no login, no proxy setup — pay only for the tweets you get.
- $0.15 per 1,000 tweets — less than half of apidojo/tweet-scraper's $0.40.
- Drop-in apidojo alternative — the same input fields and the same tweet object, so switching is changing one actor id.
- Fast — 1,000 tweets in about 2½ minutes (measured on "netflix down", Latest).
- Newest first, no gaps — a Latest search is read in parallel time windows and delivered in order, without holes between them.
Switching from apidojo/tweet-scraper
Change the actor id; keep your input and your parsing code.
import { ApifyClient } from 'apify-client'const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' })// was: client.actor('apidojo/tweet-scraper')const run = await client.actor('tweetpipe/tweet-scraper').call({searchTerms: ['netflix down'],maxItems: 1000,sort: 'Latest',})const { items } = await client.dataset(run.defaultDatasetId).listItems()
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("tweetpipe/tweet-scraper").call(run_input={"searchTerms": ["netflix down"], "maxItems": 1000, "sort": "Latest"})items = client.dataset(run["defaultDatasetId"]).list_items().items
What people use it for
- Brand and product monitoring: every tweet mentioning you, newest first.
- Outage and incident tracking: "is X down" spikes as they happen.
- Sentiment analysis, market and crypto research, academic datasets.
- Lead generation: who tweets about your niche, with their follower counts.
- Feeding tweets into an LLM, a dashboard or a spreadsheet.
Input
{"searchTerms": ["netflix down", "#outage lang:en"],"maxItems": 1000,"sort": "Latest"}
searchTerms— any X search, advanced search operators included (from:,to:,"exact phrase",OR,-filter:replies,since:, …).startUrls— X / Twitter search URLs (profile URLs are searched asfrom:handle).twitterHandles— tweets from these accounts.maxItems— stop after this many tweets (empty = no limit, within your maximum charge per run).sort—Latest,Top, orLatest + Top.- Filters:
tweetLanguage,onlyVerifiedUsers,onlyTwitterBlue,onlyImage,onlyVideo,onlyQuote,minimumRetweets,minimumFavorites,minimumReplies,author,inReplyTo,mentioning,geotaggedNear,withinRadius,geocode,placeObjectId,start,end. includeSearchTermsadds asearchTermfield;customMapFunctionreshapes each tweet.
Output
One dataset item per tweet — JSON, CSV, Excel or the API:
{"type": "tweet","id": "2106518220979200001","url": "https://x.com/example/status/2106518220979200001","twitterUrl": "https://twitter.com/example/status/2106518220979200001","text": "is netflix down for anyone else?","retweetCount": 2,"replyCount": 5,"likeCount": 14,"quoteCount": 0,"viewCount": 830,"bookmarkCount": 0,"createdAt": "Sat Oct 03 22:54:15 +0000 2026","lang": "en","isReply": false,"isRetweet": false,"isQuote": false,"author": {"type": "user","userName": "example","url": "https://x.com/example","twitterUrl": "https://twitter.com/example","id": "303570001","name": "Example User","isBlueVerified": false,"profilePicture": "https://pbs.twimg.com/profile_images/…_normal.jpg","followers": 210,"following": 182},"entities": { "hashtags": [], "symbols": [], "urls": [], "user_mentions": [] }}
Also on every tweet: inReplyToId, inReplyToUsername, conversationId,
quoteId and the quoted tweet, source, extendedEntities (media), and
the author's bio, location, account age and counts.
Pricing
Pay per result: $0.15 per 1,000 tweets, platform usage included. You are charged only for tweets in the dataset, and a run stops at your maximum charge. On Apify's free plan a run is a demo of up to 10 tweets; any paid plan gets full results.
FAQ
Do I need an X (Twitter) API key or account? No.
How many tweets can I get? As many as the search has: runs of a few thousand tweets finish in minutes, bigger ones take proportionally longer. Latest goes back as far as X search does; Top returns what X's Top tab shows (usually a few hundred).
Is scraping X legal? This actor reads public tweets only. Check the rules that apply to how you use the data (for example GDPR for personal data).
Limits
- Search only in this version: list URLs, single-tweet URLs and reply threads are not supported yet.