Twitter (X) Scraper
Pricing
from $0.40 / 1,000 scraped tweets
Twitter (X) Scraper
The best Apify Twitter (X) scraper. It offers a variety of filter options without needing any account credentials.
Pricing
from $0.40 / 1,000 scraped tweets
Rating
0.0
(0)
Developer
Maxime
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Turn Twitter search filters into raw public post rows
Twitter Scraper runs one Twitter/X search with your filters and returns raw public post rows you can inspect, store, or feed into your own downstream workflow.
Fastest way to try it
Start with one phrase or one small word set, keep the defaults, and inspect the first output rows in the Output tab before you widen the search.
Why people use it
- 🔎 Search Twitter/X with phrase, word, account, hashtag, list, and engagement filters in one run.
- 📄 Get raw post rows instead of opinionated enrichment or scoring.
- 🔁 Keep or exclude original posts, reposts, quote posts, and replies with simple switches.
- 📈 Choose latest or top search behavior depending on how you want the results ordered.
- ⚠️ Keep partial results when a later Twitter/X page fails instead of losing the rows that were already collected.
How to use in 3 simple steps
- Open the Input tab and add at least one positive search selector such as
includePhrase,includeWords,mentions, orhashtags. - Keep the default content-type switches unless you want to narrow or widen the output.
- Run the actor, then inspect the Output tab or API dataset rows.
Inputs, defaults, and behavior
- 🔎 You must provide at least one positive search selector.
- 🗓️ When
startDateis omitted, I search the last 30 days by default. - 📄 By default I keep original posts, quote posts, and replies, while reposts are excluded.
- 🧾
postTypelets you keep all posts, link posts, or text-only posts. - 📈
shouldUseTopSearchswitches between latest ordering and top ordering. - 📣 Promoted posts are excluded by default.
- 🔢
maxNbItemsToScrapeuses0for all available results. - ⚠️ If a later search page fails, I keep the rows already collected and finish with partial results instead of dropping them.
Input example
{"includePhrase": "supabase edge functions","hashtags": ["buildinpublic"],"shouldIncludeReposts": false,"shouldIncludeQuotePosts": true,"shouldIncludeReplies": true,"postType": "all","maxNbItemsToScrape": 25}
What data can Twitter Scraper extract?
See the full Output tab for the complete schema.
| Field | What you get | Why it matters |
|---|---|---|
postId | The X post ID when it was available | Join results back to your own systems |
postUrl | The canonical X URL when it was available | Open the exact post quickly |
postText | The raw post text | Feed your own downstream analysis |
authorHandle | The posting account handle when it was available | Group or filter by author |
nbLikes, nbReposts, nbReplies | Engagement counts when they were available | Compare reach and traction |
imageUrls, videoUrls | Attached media URLs | Keep the media context with the post |
Output example
[{"postId": "1905632012345678901","postUrl": "https://x.com/alice/status/1905632012345678901","postText": "Supabase Edge Functions just shipped a nice DX update.","postDateTime": "2026-03-27T11:22:33.000Z","authorHandle": "alice","authorDisplayName": "Alice","authorAvatarUrl": "https://pbs.twimg.com/profile_images/example.jpg","nbLikes": 52,"nbReposts": 8,"nbReplies": 4,"nbViews": 1200,"nbBookmarks": 7,"imageUrls": [],"videoUrls": [],"hashtags": ["supabase"],"quotedPostId": null,"quotedPostText": null,"quotedAuthorHandle": null,"replyToHandle": null,"replyToPostId": null}]
FAQ
Do I need to provide my own Twitter account?
No. You only provide search filters.
Does the actor enrich or score the posts?
No. The output is raw post data only.
What happens when some attributes are missing?
I still emit the row. Missing scalar fields become null and missing collections become empty arrays.
What happens if a later page fails?
I keep the rows already collected and finish with partial results when possible.
Where do I report a missed filter or site-specific failure?
Open the Issues page with the input you used, the output you expected, and the run log.
Explore the rest of the collection
- Product Hunt Scraper - scrape Product Hunt launches with freshness and cache options
- Website Emails Scraper - turn website URLs into contact-email rows
- Uneed Scraper - scrape Uneed tools into raw listing rows
- TinySeed Scraper - scrape the TinySeed portfolio
- Tiny Startups Scraper - scrape Tiny Startups listings
Missing a filter or output field?
File an issue and I'll add it in less than 24h 🫡