Twitter / X Scraper - Tweets, Profiles, Search, Hashtags
Pricing
$1.00 / 1,000 tweet scrapeds
Twitter / X Scraper - Tweets, Profiles, Search, Hashtags
Scrape Twitter / X profiles, tweets, hashtags, and search results at scale. Extract follower counts, engagement metrics, user bios, and full tweet history. Supports multi-strategy data collection via Apify API.
Pricing
$1.00 / 1,000 tweet scrapeds
Rating
0.0
(0)
Developer
Hasnain Nisar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Twitter / X Scraper π¦ Tweets, Profiles, Search & Hashtags β No API Key
Scrape tweets, user profiles, hashtags and advanced-search results from X (formerly Twitter) β no developer account, no API key, no $100/month X API bill. Paste search queries, handles, or URLs and get clean, structured tweet data with engagement metrics, author details, media, and timestamps. Export to JSON, CSV, Excel, or the API.
The output is drop-in compatible with apidojo's Tweet Scraper (likeCount, retweetCount, author.userName, β¦) β switch Actors without rewriting a single field in your pipeline.
β‘ At a glance
| Scrapes | Tweets by search query, by profile/handle, by hashtag, and by direct URL |
| Engagement | likes, retweets, replies, quotes, views, bookmarks |
| Author data | username, display name, verified flag, avatar, profile links |
| Filters | language, date range, min likes/retweets/replies, media-only, verified-only |
| Output | apidojo-compatible JSON β CSV Β· Excel Β· XML Β· API |
| API key | β Not required |
| X session | optional β add authToken + ct0 for full-completeness scraping |
| Proxy | residential-ready (recommended for X) |
| Advanced search | β
Full from:, since:, filter:media, min_faves: β¦ syntax |
π― What it does
- β
Search scraping β any Twitter advanced-search query: keywords,
from:user,#hashtag,filter:media,lang:en,min_faves:100, and more. - β Profile timelines β newest tweets from any handle, with optional replies/retweets.
- β
Hashtag tracking β pass
#topicas a search term. - β Direct URLs β tweet, profile, or search URLs; paste and go.
- β Rich filters β language, start/end date, minimum engagement, media-only, verified-only.
- β apidojo-compatible output β migrate from Tweet Scraper V2 with zero field renaming.
π Quick start
{"searchTerms": ["from:NASA"],"sort": "Latest","maxItems": 100}
Click Start, then download the dataset as CSV / JSON / Excel.
More examples
Keyword search in English
{ "searchTerms": ["artificial intelligence"], "tweetLanguage": "en", "sort": "Top" }
Hashtag with media only
{ "searchTerms": ["#AI filter:media"], "onlyImage": true }
A user's tweets between two dates
{ "searchTerms": ["from:elonmusk since:2024-01-01 until:2024-06-01"], "sort": "Latest" }
Profile timeline by handle
{ "twitterHandles": ["nasa", "spacex"], "maxItems": 50, "includeReplies": false }
High-engagement tweets only
{ "searchTerms": ["climate change"], "minimumFavorites": 500, "minimumRetweets": 100 }
Direct URLs
{ "startUrls": ["https://x.com/NASA", "https://x.com/NASA/status/1728108619189874825"] }
π‘ Tip: You can test any query on x.com/search first β the scraper fetches what you see there.
π Output example (apidojo-compatible)
{"type": "tweet","id": "1728108619189874825","url": "https://x.com/elonmusk/status/1728108619189874825","twitterUrl": "https://twitter.com/elonmusk/status/1728108619189874825","text": "More than 10 per human on average","retweetCount": 11311,"replyCount": 6526,"likeCount": 104121,"quoteCount": 2915,"viewCount": 8200000,"bookmarkCount": 702,"createdAt": "Fri Nov 24 17:49:36 +0000 2023","lang": "en","isReply": false,"isRetweet": false,"isQuote": true,"media": ["https://pbs.twimg.com/media/HBUzlGwbcAUboWU.jpg"],"author": {"type": "user","userName": "elonmusk","name": "Elon Musk","url": "https://x.com/elonmusk","twitterUrl": "https://twitter.com/elonmusk","isVerified": true,"profilePicture": "https://pbs.twimg.com/profile_images/.../yRsRRjGO_normal.jpg"},"source": "graphql-auth"}
π Input parameters
| Field | Type | Description |
|---|---|---|
searchTerms | array | Search queries (full advanced-search syntax). |
twitterHandles | array | Profile handles (without @) to scrape timelines for. |
startUrls | array | Direct X/Twitter tweet, profile, or search URLs. |
maxItems | integer | Max tweets to return in total. |
sort | Latest | Top | Result ordering. |
tweetLanguage | string | ISO 639-1 code (e.g. en). |
onlyImage / onlyVideo | boolean | Media-only filters. |
onlyVerifiedUsers / onlyQuote | boolean | Author/type filters (applied when metadata is present). |
minimumRetweets / minimumFavorites / minimumReplies | integer | Minimum-engagement thresholds. |
start / end | date | Date range for search terms (YYYY-MM-DD). |
includeReplies / includeRetweets | boolean | Timeline composition for handles. |
authToken / csrfToken | string (secret) | Your X auth_token + ct0 cookies β optional, for full-completeness scraping. |
proxyConfiguration | object | Proxy settings (residential recommended). |
Legacy aliases queries, usernames, urls, maxTweets are still accepted.
π Using your X session (optional, for best results)
X heavily restricts logged-out access. Supplying your own session cookies unlocks X's native GraphQL API for the most complete, highest-volume results β and keeps you in control instead of relying on a shared, throttled pool.
- Log in at x.com in Chrome/Edge (a secondary account is fine).
- Press F12 β Application tab β Cookies β https://x.com.
- Copy the value of
auth_tokenβ paste into authToken. - Copy the value of
ct0β paste into csrfToken.
π Cookies are used only to sign read requests for this run and are never stored or logged. Pair them with a residential proxy (ideally same region as the account) for stability. Without a session, the Actor still works via public endpoints (syndication, mirrors) β just with lower completeness on search.
π Why choose this Actor
| Feature | π¦ This Actor | apidojo Tweet Scraper V2 | Microworlds |
|---|---|---|---|
| No X API key required | β | β | β |
| Advanced-search syntax | β | β | β |
| apidojo-compatible output | β (drop-in) | n/a | β |
| Free users via API | β | β (UI only) | varies |
| No 50-tweet minimum per query | β | β (min 50) | β |
| Single-tweet & small queries | β | β | β |
| Bring-your-own session | β | β | β |
| Date / language / engagement filters | β | β | β |
| Residential-proxy support | β | β | β |
| Transparent fallback chain | β | β | β |
Where this Actor wins: no per-query minimums, works for single tweets and tiny result sets, usable on the free tier via API for testing, and emits the exact field names apidojo users already depend on β so migration is copy-paste.
π Integrations & automation
- Google Sheets / Excel β export with one click or schedule a recurring run.
- Make / Zapier / n8n β trigger downstream on new dataset items.
- Apify API β pull the dataset in any language:
$curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=true&token=<YOUR_TOKEN>"
β FAQ
Do I need a Twitter/X API key or developer account? No. This Actor works without the paid X API. Add your own session cookies only if you want maximum completeness on search.
Is there a minimum number of tweets per query? No. Unlike some large-scale-only scrapers, there's no 50-tweet minimum β fetch a single tweet or a handful if that's all you need.
Can I scrape tweets from a specific user?
Yes β use twitterHandles: ["nasa"] or a search term like from:nasa.
Can I scrape a hashtag?
Yes β pass it as a search term: searchTerms: ["#AI"].
How do I filter by date, language, or engagement?
Use start/end, tweetLanguage, and minimumFavorites/minimumRetweets/minimumReplies. You can also embed operators directly in a query: from:nasa since:2024-01-01 min_faves:100.
Why did I get fewer results than expected without cookies?
X restricts logged-out search. Add authToken + ct0 and a residential proxy for full-volume scraping. Public endpoints are best-effort.
Is the output compatible with apidojo's Tweet Scraper?
Yes β fields like id, url, text, likeCount, retweetCount, replyCount, createdAt, and author.userName match, so most pipelines work unchanged.
Is scraping X legal? Scraping public data is generally permitted in many jurisdictions, but you must comply with X's Terms, GDPR/CCPA, and local laws. Use data responsibly.
β οΈ Limitations
- Logged-out search is heavily restricted by X; for reliable, high-volume search add your session + a residential proxy.
- Shadow-banned or filtered tweets may not appear β this is X-side behavior, outside the Actor's control.
- Datacenter IPs are rate-limited fast; use residential proxies for scale.
- X can change its GraphQL/search behavior at any time; the Actor degrades gracefully through a fallback chain (auth GraphQL β syndication β mirrors β search hydration).
π¨ Support & feedback
Need an extra field or hit an issue? Open it on the Actor page β requests are reviewed quickly. If this saved you time, a short β review on Apify helps others find it.
Happy scraping! π