Twitter (X) Scraper ✅ No Login or Cookies
Pricing
from $2.00 / 1,000 tweet scrapeds
Twitter (X) Scraper ✅ No Login or Cookies
Scrape X.com (Twitter) with no login and no cookies. Extract a profile's tweets, run advanced keyword search, pull single tweet details, or fetch full user profiles. Get likes, retweets, replies, quotes, views, media URLs, author, and conversation context as clean JSON. Add followers and comments.
Pricing
from $2.00 / 1,000 tweet scrapeds
Rating
5.0
(1)
Developer
Atomus APIs
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
17
Monthly active users
11 hours ago
Last modified
Categories
Share
Twitter (X) Scraper
|
TWITTER (X) SCRAPER • TWITTER API Catch it on X before it trends. Four modes on one clean shape: a profile's timeline, advanced keyword search, single tweet details, and full user profiles. Every tweet carries 30+ fields — likes, retweets, replies, quotes, bookmarks, views, media URLs, the quoted tweet and the reply context. X's own search operators work verbatim, and every search filter is free. No X account, no login, no cookies. SEARCH FILTERS ARE FREE X SEARCH OPERATORS WORK VERBATIM |
Copy to your AI assistant
Paste this into ChatGPT, Claude, Cursor, or any LLM to start using this Actor right away.
atomus/twitter-scraper is an Apify Actor that returns public X (Twitter) data as structured JSON in four modes chosen by the required searchType input: "user-tweets" (a profile's timeline, from handles), "search" (advanced keyword search, from searchQuery), "tweet-detail" (specific tweets, from tweetUrls) and "profile" (full user profiles, from handles). Use it whenever someone needs tweets or X profiles without cookies, a login, or a browser - brand monitoring, social listening, trend tracking, or building a tweet dataset. Run it with curl: curl -X POST "https://api.apify.com/v2/acts/atomus~twitter-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchType":"search","searchQuery":"from:openai min_faves:5000 filter:videos","sortOrder":"Latest","maxItems":50}'. Or in Python: ApifyClient("APIFY_TOKEN").actor("atomus/twitter-scraper").call(run_input={"searchType":"user-tweets","handles":["openai"],"maxItems":50}) then client.dataset(run["defaultDatasetId"]).list_items().items. Inputs: searchType (required), handles (string[], @name, name or profile URL), searchQuery (string, raw X advanced-search operators pass through verbatim), tweetUrls (string[], status URL or bare numeric id), sortOrder ("Top"|"Latest"), maxItems (int, default 20), and free search filters fromUsers, toUsers, mentioning, hashtags, since, until (YYYY-MM-DD), minRetweets, minFaves, minReplies, language, onlyVerified, onlyMedia, onlyLinks, excludeReplies, excludeRetweets. Paid add-ons: maxFollowers and maxFollowing on profile mode, maxRetweeters and maxComments on tweet-detail mode, each delivered as separate records. A tweet row carries tweet_id, url, text, created_at, lang, source, favorite_count, retweet_count, reply_count, quote_count, bookmark_count, view_count, conversation_id, in_reply_to_screen_name, quoted_tweet, sensitive, hashtags, mentions, urls, media (type, image url, highest-bitrate mp4) and an author block. Billing is per tweet or profile returned, with a one-result minimum per run; search filters cost nothing. X caps a single profile timeline near ~100 tweets per pass, which is a platform limit every scraper shares. Full input schema, every enum and default, and the complete output field list: GET https://api.apify.com/v2/acts/atomus~twitter-scraper/build/default
X (Twitter) MCP Server: use these Actors from ChatGPT, Claude or Cursor
Point your AI assistant at Atomus and it can read the social platforms on its own: X, TikTok, and the four big Chinese networks. No glue code, no scraping logic in your prompts.
{"mcpServers": {"atomus": {"url": "https://mcp.apify.com?tools=atomus/twitter-scraper,atomus/tiktok-scraper,atomus/tiktok-comments-scraper,atomus/douyin-scraper,atomus/xiaohongshu-scraper,atomus/weibo-scraper,atomus/bilibili-scraper","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
Then ask, in plain language:
"Find every tweet mentioning our product in the last week with more than 50 likes, then pull the replies on the three angriest ones."
That one sentence uses this Actor in two modes. Pinning the tools= list is what keeps your assistant on these Actors instead of reaching for whatever scraper it finds first.
How to scrape Twitter (X)
searchType picks the mode, and each mode reads a different input field.
A profile's timeline
{ "searchType": "user-tweets", "handles": ["openai", "https://x.com/anthropicai"], "maxItems": 50 }
Returns the user's recent tweets. @name, bare name and a full profile URL are all accepted.
Advanced search, with X's own operators
{"searchType": "search","searchQuery": "from:openai min_faves:5000 filter:videos","sortOrder": "Latest","maxItems": 100}
Whatever you would type into X's search box works here verbatim. sortOrder is Top (relevance and engagement) or Latest (reverse-chronological).
The same search, built from filter fields
{"searchType": "search","searchQuery": "pricing","mentioning": ["openai"],"since": "2026-08-01","minFaves": 50,"language": "en","excludeRetweets": true,"maxItems": 200}
Every one of these filters is free and compiles into the same X operators. Use them instead of memorising the syntax — and note that narrowing here genuinely lowers the bill, because filtering happens before results are counted.
Specific tweets, with their replies
{"searchType": "tweet-detail","tweetUrls": ["https://x.com/openai/status/1846846285917131130", "1846846285917131130"],"maxComments": 50,"maxRetweeters": 100}
Tweet details include the quoted tweet and reply context. maxComments and maxRetweeters are paid add-ons that arrive as their own records.
A user profile, and who follows them
{"searchType": "profile","handles": ["openai"],"maxFollowers": 1000}
Profile mode returns bio, follower and following counts, verification, location and website. maxFollowers / maxFollowing are paid add-ons on this mode.
Input
| Parameter | Type | Required | Default | Used by | Description |
|---|---|---|---|---|---|
searchType | string | ✅ Yes | user-tweets | — | user-tweets, search, tweet-detail, profile. |
handles | string[] | per mode | (none) | timeline, profile | @openai, openai, or https://x.com/openai. |
searchQuery | string | per mode | (none) | search | Free text, or raw X advanced-search operators. |
tweetUrls | string[] | per mode | (none) | tweet-detail | Status URLs or bare numeric tweet IDs. |
sortOrder | string | No | Top | search | Top or Latest. |
maxItems | integer | No | 20 | timeline, search | Tweets per handle or per query. Your main cost lever. |
Free search filters (search mode): fromUsers, toUsers, mentioning, hashtags, since, until (YYYY-MM-DD), minRetweets, minFaves, minReplies, language (2-letter), onlyVerified, onlyMedia, onlyLinks, excludeReplies, excludeRetweets.
Paid add-ons: maxFollowers and maxFollowing (profile mode), maxRetweeters and maxComments (tweet-detail mode). All default to 0, which is off, and each arrives as its own record type.
What data does the Twitter (X) Scraper return?
One row per tweet or profile, the same shape across all four modes.
| Group | Fields |
|---|---|
| Tweet | tweet_id · url · text · created_at · lang · source · sensitive |
| Engagement | favorite_count · retweet_count · reply_count · quote_count · bookmark_count · view_count |
| Thread context | conversation_id · in_reply_to_screen_name · in_reply_to_status_id · quoted_tweet (the full nested tweet object) |
| Entities | hashtags[] · mentions[] · urls[] · media[] (type, image URL, highest-bitrate MP4 URL) |
| Author | author.screen_name · name · avatar · followers_count · blue_verified |
| Profile rows | bio, follower and following counts, verification, location, website |
Example row
{"tweet_id": "1846846285917131130","url": "https://x.com/OpenAI/status/1846846285917131130","text": "True","created_at": "Thu Oct 17 09:30:41 +0000 2024","lang": "en","favorite_count": 175957,"retweet_count": 36419,"reply_count": 5599,"quote_count": 635,"bookmark_count": 3015,"view_count": 28146703,"conversation_id": "1846846285917131130","media": [],"author": {"screen_name": "OpenAI","name": "OpenAI","followers_count": 5097390,"blue_verified": true}}
One platform limit, stated plainly
X caps a single profile timeline near ~100 tweets per pass. That is a limit of X.com, not of this Actor, and every X scraper shares it. To go deeper, use search mode (which paginates further) or re-run on a schedule and append to the same dataset.
How much does it cost to scrape Twitter (X)?
Pay per result, as a per-event charge.
| Event | Free plan | Gold+ |
|---|---|---|
| Tweet (timeline, search, tweet detail) | $4.00 / 1,000 | $2.00 / 1,000 |
| Profile | $4.00 / 1,000 | $2.00 / 1,000 |
| Follower / following / retweeter (add-on) | $0.50 / 1,000 | $0.15 / 1,000 |
| Comment (add-on) | $3.00 / 1,000 | $1.00 / 1,000 |
Bronze and Silver plans sit between the two columns.
Every run bills a minimum of 1 result, which covers the request even when nothing comes back — a private or suspended account, or a search that matched nothing. The lookup happened either way.
Search filters are free, and they run before results are counted, so a tighter query is a cheaper one.
Free plan: 10 tweets per calendar month, plus 1 profile, so you can see both shapes before paying. The counters reset on the 1st.
What do people use the Twitter (X) Scraper for?
- Brand monitoring: watch mentions of your product with an engagement floor, so the alert only fires on posts that are actually spreading.
- Competitor tracking: follow a rival's timeline and measure what lands.
- Social listening and sentiment: pull a topic over a date range and hand the text to an LLM.
- Trend tracking:
Latestsearch on a narrow query, on a schedule. - Influencer and audience research: profiles plus the follower add-on, to see who an account actually reaches.
- Crisis detection: a search with
minRepliesset high finds the threads going wrong before they are news. - AI and research datasets: a clean, consistent tweet shape across every mode.
- AI agent context: give an agent live public discussion instead of its training cutoff.
Twitter (X) Scraper vs cookie-based tools vs the official X API
| This Twitter (X) Scraper | Cookie-based scrapers | Official X API | |
|---|---|---|---|
| X account / cookies | Not needed | Your session cookie required | Developer account + keys |
| Account / ban risk | None (no account used) | High (your account can be flagged) | None |
| Setup | Paste a handle, query or URL | Extract and paste your cookie | App approval + OAuth |
| Advanced search operators | Work verbatim | Varies | Limited by tier |
| Timeline depth | ~100 per pass (X's own cap) | Same cap | Tier-limited |
| Pricing | Pay per result (from $2.00 / 1,000 tweets on Gold) | Subscription + your account | High monthly tiers |
FAQ
Do I need an X account or cookies?
No. The Actor reads public data and handles request signing itself, so there is nothing to log into and no account to put at risk.
Can I use this from ChatGPT or Claude?
Yes, two ways. Paste the "Copy to your AI assistant" block above into any LLM and it will write the call for you. Or connect the X MCP server config above, and every Atomus Actor becomes a native tool your assistant can call on its own, including chaining several in one request.
Can I search tweets by date, engagement or user?
Yes, and it costs nothing extra. fromUsers, toUsers, mentioning, hashtags, since/until, minFaves, minRetweets, minReplies, language, onlyVerified, onlyMedia, onlyLinks, excludeReplies and excludeRetweets compile into X's own search operators.
Can I paste raw X search operators instead?
Yes. searchQuery passes through verbatim, so from:openai min_faves:5000 filter:videos behaves exactly as it does in X's search box.
How many tweets can I get from one profile?
X caps a profile timeline near ~100 tweets per pass. Use search mode, or schedule re-runs into the same dataset, to build something deeper.
How much does it cost?
$4 per 1,000 tweets or profiles, $2 per 1,000 on Gold and above. Followers, following and retweeters are $0.50 / 1,000 ($0.15 on Gold); comments are $3 / 1,000 ($1 on Gold). Every run bills at least one result. Free Apify plans include 10 tweets and 1 profile per month.
Why does an empty search still cost something?
A run bills a minimum of one result because the lookup was performed either way — a suspended account or a query with no matches costs the same request upstream as one that returns data.
Is there an official X API?
Yes, behind a developer account and paid tiers that are expensive and rate-limited for most data needs. This Actor is the practical alternative: no keys, no OAuth, structured JSON, pay per result.
Is it legal to scrape X?
This Actor collects only publicly available data. You are responsible for using the output in line with applicable laws (GDPR/CCPA), X's terms, and your own compliance requirements. It is an independent tool, not affiliated with X Corp.
Can I run this on a schedule?
Yes. Apify Schedules run the Actor on a cron interval and webhooks push each finished run into your systems — which is how a search query becomes a brand monitor.
All Atomus scrapers
2.4M+ RESULTS DELIVERED
| Profile · Posts · Reactions · Comments · Company · Employees | |
| Leads Finder | |
| Places & local businesses | |
| Videos · Comments | |
| Tweets & profiles | |
| Notes, users & comments | |
| Profiles, videos & comments | |
| Posts & profiles | |
| Videos & creators |
Support
|
Hey, I'm Chico, founder of Atomus. I built this Actor and I answer the messages about it. Something broke? A field you need isn't there? Not sure it fits what you're doing? Send me a message, most answers come the same day. 💬 DM me on LinkedIn or hello@dendelabs.com |
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by X Corp. X® and Twitter® are trademarks of their respective owners. All trademarks are property of their respective owners.
Use the data extracted by this Actor in compliance with applicable data protection laws (GDPR, CCPA) and X's terms of service. Do not use it for spam, harassment, or unlawful purposes.