Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies
Pricing
$0.34 / 1,000 tweets
Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies
Scrape tweets from X (Twitter) by search term, advanced search filters, handle, list, tweet URL or conversation (replies). Clean JSON with full author profiles, media and engagement counts. $0.34 per 1,000 tweets, no minimum per query.
Pricing
$0.34 / 1,000 tweets
Rating
0.0
(0)
Developer
Alex Burton
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape tweets from X (formerly Twitter) without an X account, API key or proxy. Give it search terms, X advanced-search filters, handles, list URLs, tweet URLs or conversation IDs, and get clean JSON with each tweet's text, engagement counts, media, quoted and retweeted tweets, and the author's full public profile.
$0.34 per 1,000 tweets. Platform usage is included. There is no start fee and no minimum per query, so a 5-tweet lookup costs a fraction of a cent.
What you can scrape
| Input | What you get |
|---|---|
| Search terms | Tweets matching anything you can type into X search, including operators like from:, #hashtag, lang:, min_faves:, filter:links. |
| X handles | Tweets posted by those accounts. Filters and dates apply. |
| Profile URLs | An account's timeline (x.com/name), its tweets and replies (/with_replies) or its media (/media). |
| Search URLs | Paste a search from your browser, for example x.com/search?q=apify&f=live. |
| List URLs | Tweets from an X list (x.com/i/lists/123). |
| Tweet URLs | That single tweet, with full details. |
| Conversation IDs | A whole conversation: the tweet, the tweets above it, and all its replies. |
Filters
These are added to every search term, handle and search URL:
- Sort: Latest, Top, or Latest + Top. With Latest + Top, duplicates are removed before you are charged.
- Language: ISO 639-1 code (
en,es,ja, ...). - Only: verified users, blue-check users, tweets with images, tweets with videos, quote tweets.
- From, in reply to, mentioning: a handle.
- Location: near a place, within a radius, by geocode or by X place ID. X's own location search only matches the few tweets that carry location data, so these filters often return little or nothing.
- Engagement: minimum retweets, likes or replies.
- Dates: since and until (
YYYY-MM-DDorYYYY-MM-DD_HH:MM:SS_UTC).
Example input
{"searchTerms": ["web scraping", "#ai lang:en"],"twitterHandles": ["apify"],"sort": "Latest","minimumFavorites": 5,"start": "2026-01-01","maxItems": 500}
Example output
{"type": "tweet","id": "1980000000000000000","url": "https://x.com/apify/status/1980000000000000000","twitterUrl": "https://twitter.com/apify/status/1980000000000000000","text": "New in Apify Store ...","retweetCount": 12,"replyCount": 3,"likeCount": 87,"quoteCount": 1,"bookmarkCount": 9,"viewCount": 10432,"createdAt": "Wed Oct 22 14:01:48 +0000 2026","createdAtIso": "2026-10-22T14:01:48.000Z","lang": "en","source": "Twitter Web App","isReply": false,"inReplyToId": null,"conversationId": "1980000000000000000","isRetweet": false,"isQuote": false,"quoteId": null,"isPinned": false,"author": {"type": "user","userName": "apify","name": "Apify","id": "1234567","url": "https://x.com/apify","isBlueVerified": true,"verifiedType": "Business","profilePicture": "https://pbs.twimg.com/...","description": "...","location": "Prague","followers": 21000,"following": 300,"statusesCount": 5400,"createdAt": "Mon Jun 01 10:00:00 +0000 2015"},"media": [{ "type": "photo", "url": "https://pbs.twimg.com/...", "width": 1200, "height": 675 }],"entities": { "hashtags": ["webscraping"], "urls": ["https://apify.com"], "mentions": [] },"quote": null,"retweet": null,"article": null}
Quoted and retweeted tweets are included in full under quote and retweet. viewCount is null when X hides it. The dataset has two views: Tweets and Authors.
Pricing
You pay $0.34 per 1,000 tweets saved to the dataset. Nothing else is charged:
- Duplicates (from Latest + Top, or the same tweet found by two inputs) are removed before charging.
- Empty searches cost nothing.
- Set Maximum cost per run in the run options and the scraper stops exactly there.
| Tweets | Cost |
|---|---|
| 100 | $0.034 |
| 1,000 | $0.34 |
| 10,000 | $3.40 |
| 100,000 | $34 |
Speed
Large "Latest" searches are split into time slices that are fetched in parallel, typically 20 to 30 tweets per second, and the results still arrive as one continuous newest-first stretch. A run capped with maxItems gets exactly the newest tweets, with no gaps.
Tips
- Few results? Try sort Top, widen the dates, or check the query on x.com/search first. X search does not return every tweet ever posted. Some tweets are hidden by X's own filtering.
- Large jobs: one search term can return many thousands of tweets. Use
maxItemsor the maximum cost per run to cap it. - Only some fields? Ask the dataset for them when you download: add
?fields=id,text,likeCount(oromit=) to the dataset items URL, or pick the columns in the Console's export dialog. Nothing extra is charged. - API: run it from your code with the Apify API or client, and read the results from the run's dataset.
Limitations
- Only public tweets. Protected accounts and deleted tweets can't be scraped.
- Counts and search results are what X shows at the moment of the run.
- Use the data responsibly and in line with the laws that apply to you, especially for personal data.