Twitter (X) Scraper - Tweets, Profiles & Monitor
Pricing
from $2.00 / 1,000 tweet scrapeds
Twitter (X) Scraper - Tweets, Profiles & Monitor
Scrape Twitter / X tweets and profiles by handle or tweet URL — no login, no cookies, no API key. Full tweet text, likes, replies, retweets, views, media, hashtags, mentions, quoted tweets and complete profiles. Monitor mode pulls only new tweets. Export to CSV/JSON/Excel.
Pricing
from $2.00 / 1,000 tweet scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Twitter / X Scraper — Tweets & Profiles (No Login, No API Key)
Scrape Twitter / X the reliable way — by handle or tweet URL — with no login, no cookies, and no API key. Get full tweet text, likes, retweets, replies, quotes and view counts, media (photos & video URLs), hashtags, mentions, links and quoted-tweet context, plus complete profiles (followers, following, bio, verification, location, website, join date). Turn on monitor mode to pull only new tweets on each run.
Built on X's own public syndication data — the same source that powers embedded tweets across the web — so it keeps working when cookie-based and guest-token scrapers break.
Why this Twitter / X scraper?
X removed cheap API access and aggressively rate-limits its logged-out site, so most scrapers rely on auth cookies (which get throttled or banned) or fragile guest-token GraphQL calls (whose query IDs rotate and break). This actor reads X's stable public syndication endpoints instead — no credentials, no breakage.
| Cookie / token scrapers | This actor | |
|---|---|---|
| Login / cookies required | ⚠️ usually | ✅ never |
| API key required | ⚠️ sometimes | ✅ never |
| Breaks when X rotates tokens / bans cookies | ❌ often | ✅ stable source |
| Full tweet text, likes, retweets, replies | ✅ | ✅ |
| View counts (when X exposes them) | partial | ✅ |
| Media (photo + video URLs), hashtags, mentions, links | partial | ✅ |
| Quoted-tweet context | ❌ | ✅ |
| Full profile (followers, bio, verified, joined…) | partial | ✅ |
| Monitor mode — only new tweets | ❌ | ✅ |
| Start fee | 💲 common | $0 — never |
Use cases
- Brand & competitor monitoring — track specific accounts and get only their new tweets each run (monitor mode) for engagement, launches and announcements.
- Social listening & sentiment — pull recent tweets and metrics (likes, retweets, replies, views) for known handles to feed dashboards or LLMs.
- Tweet lookup & archiving — paste any tweet URL to capture its full data (text, media, metrics, author, quoted tweet) for research, embedding or compliance.
- Influencer & lead research — profile data (followers, bio, website, verification) to qualify creators, brands and prospects.
- LLM / AI pipelines — clean, structured JSON ready for summarization, classification and RAG.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Twitter / X Scraper, add one or more handles (e.g.
NASA) and/or tweet URLs, and click Start. - Watch tweets and profiles stream into the dataset table (switch between the Tweets and Profiles views).
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"handles": ["NASA", "Tesla"],"tweetUrls": ["https://x.com/NASA/status/2068333045510291908"],"includeProfile": true,"includeTweets": true,"includeReplies": false,"maxTweetsPerProfile": 20,"onlyTweetsNewerThan": "7 days","monitorMode": false}
- handles — usernames (with/without
@) or profile URLs. Each returns the profile + recent tweets. - tweetUrls — individual tweet (status) URLs or numeric IDs → full tweet data.
- startUrls — any mix of profile/tweet URLs (auto-detected).
- includeProfile / includeTweets (default true) — choose profile records, tweets, or both.
- includeReplies (default false) — include the account's replies in its timeline.
- maxTweetsPerProfile (default 20) — X's public timeline exposes roughly the latest 20 tweets per profile.
- onlyTweetsNewerThan —
"7 days","24 hours","3 months", or an ISO date. - monitorMode (default false) — only new tweets / changed profiles (see below).
Output
One record per tweet (type: "tweet") and one per profile (type: "profile"):
{"type": "tweet","id": "2068333045510291908","url": "https://x.com/NASA/status/2068333045510291908","text": "The official FIFA World Cup ball went to space! …","createdAt": "2026-06-20T14:00:00.000Z","lang": "en","favoriteCount": 24314,"retweetCount": 3120,"replyCount": 982,"quoteCount": 145,"viewCount": 4200000,"isReply": false,"isQuote": false,"hashtags": [],"mentions": [],"links": [],"media": [{ "type": "photo", "url": "https://pbs.twimg.com/media/….jpg" }],"mediaCount": 1,"authorHandle": "NASA","authorName": "NASA","authorVerified": true,"authorFollowers": 92134498,"source": "twitter","scrapedAt": "2026-06-23T16:00:00.000Z"}
{"type": "profile","handle": "NASA","url": "https://x.com/NASA","name": "NASA","bio": "Making the seemingly impossible, possible. ✨","followersCount": 92134498,"followingCount": 119,"tweetsCount": 74138,"verified": true,"isBlueVerified": true,"location": "","website": "https://t.co/9NkQJKAVks","createdAt": "2007-12-19T20:20:32.000Z","profileImageUrl": "https://pbs.twimg.com/profile_images/….jpg"}
Empty fields are omitted, so CSV/Excel exports have no always-blank columns.
Monitor mode — only new tweets
Turn on monitorMode and the actor remembers every tweet it has emitted (by ID) and every profile's follower/tweet counts. On the next run it returns only new tweets (and profiles whose counts changed, tagged monitorStatus). This runs independently of Apify Schedules — schedule the actor hourly/daily and each run delivers a clean diff, ideal for account-tracking and new-tweet alerts. Use distinct monitorStoreName values to track separate account sets.
Automate & schedule
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it with
monitorModeto watch accounts for new tweets. - Webhooks — trigger CRM, Slack or email actions when a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/twitter-scraper').call({handles: ['NASA', 'Tesla'],maxTweetsPerProfile: 20,monitorMode: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} tweets & profiles`);
Integrate with any app
- Make — multi-step automation scenarios.
- Zapier — push new tweets into Sheets, Slack or your CRM.
- Slack — get notified when a monitored account tweets.
- Google Drive / Sheets — auto-export every run.
- Airbyte — pipe results into your warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework via the Apify MCP server — e.g. "get NASA's latest tweets and summarize the engagement."
More scrapers from scrapesage
Build a complete social & web data stack:
- Reddit Scraper — posts, comments, subreddits & users.
- YouTube Scraper — videos, channels & metadata.
- Threads Scraper — posts & profiles from Threads.
- Bluesky Scraper — posts & profiles from Bluesky.
- Telegram Scraper — public channel messages.
- Substack Scraper — newsletters, posts & authors.
- Google News Scraper — news articles by topic.
- Website Contact Scraper — emails, phones & socials from any site.
Tips
- Recent tweets: the actor fetches and merges several public timeline windows per account to assemble its recent tweets (typically ~20–50, depending on how active the account is), capped by
maxTweetsPerProfile. It does not do keyword search or full historical backfill (those require logged-in scraping, which breaks). - Track accounts cheaply: combine
monitorModewith a daily Schedule to collect each account's new tweets over time. - Protected / suspended accounts return no data — those tweets/profiles are simply skipped.
- View counts are included when X exposes them (most often on individual tweets fetched by URL); they can be absent on older timeline tweets.
- Proxies: the default Apify Proxy is fine; no residential proxy is required.
FAQ
Do I need a Twitter/X account, cookies, or an API key? No. The actor reads X's public syndication data — no login, no cookies, no key.
Can I search tweets by keyword? No. This scraper targets specific handles and tweet URLs (the reliable public path). Keyword search requires a logged-in session, which is fragile.
How many tweets per profile? The actor merges several public timeline windows to assemble the account's recent tweets — typically ~20–50 depending on activity, capped by maxTweetsPerProfile. Use monitorMode + a schedule to accumulate more over time.
How do I get a single tweet's data? Put its URL (or numeric ID) in tweetUrls — you'll get the full tweet including media, metrics, views and author.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically via the Google Drive integration.
Is scraping Twitter/X legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and X's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.