Tweet Scraper - X / Twitter, No Login, Cheapest
Pricing
$0.30 / 1,000 tweet returneds
Tweet Scraper - X / Twitter, No Login, Cheapest
The cheapest no-login X/Twitter scraper on the store. No minimums, no item caps - just paste a handle, URL or search and run. Get full tweet text plus likes, retweets, replies, views, media and author. Failed runs cost nothing. Export to JSON, CSV or Excel. ~$0.13/1k.
Pricing
$0.30 / 1,000 tweet returneds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
⚡ Tweet Scraper — X / Twitter Scraper (No Login, No API Key)
Scrape X (Twitter) at scale without a login, an account, or an API key. Pull tweets by profile, by tweet URL, or by search query and get back the full text plus every engagement metric — likes, retweets, replies, views, quotes and bookmarks — with author, media, hashtags and mentions. Export to JSON, CSV or Excel, hit it from the API, or have results delivered straight to Notion. Just $0.30 per 1,000 tweets — ideal for researchers, marketers, traders, and builders who need Twitter data now.
No
sessionid. No bearer token to find. No cookies to paste. Paste a handle and run.
Why this scraper beats the rest
- 🔓 Truly keyless — uses X's public guest-token GraphQL API + the syndication CDN. You never supply credentials.
- 🛡️ Self-healing — X rotates its GraphQL feature flags constantly; this actor detects the change mid-run and repairs the request automatically, so it keeps working when other scrapers 400.
- 💸 Cheaper — $0.30 / 1,000 tweets, billed per tweet actually returned (no charge on empty/failed runs).
- 🧹 Clean, flat output — one tidy record per tweet, ready for spreadsheets, dashboards, or LLM pipelines. No raw nested soup.
- 🔁 Auto-dedupe — the same tweet is never returned (or charged) twice in a run.
- 📬 Built-in delivery — optionally push every run straight into Notion via Apify connectors, with zero extra code (most scrapers stop at the dataset).
- 🚦 Honest errors — if X blocks or rate-limits, you get a clear
errorCoderow instead of silent emptiness.
What you can scrape
| Mode | Input | Reliability |
|---|---|---|
| Profile timeline | twitterHandles or a profile URL | ✅ Fully keyless, most reliable |
| Single tweet | a …/status/123 URL | ✅ Rock-solid (syndication CDN) |
| Replies timeline | profile + includeReplies | ✅ Keyless |
| Search | searchTerms (supports from:, min_faves:, filter:media, date ops) | ⚠️ Keyless search is rate-limited by X — use profiles/URLs for volume |
Input
twitterHandles— usernames to scrape recent tweets from (e.g.nasa,elonmusk).startUrls— profile URLs (timeline) orstatusURLs (single tweet).searchTerms— full X search queries +sort(Latest/Top).maxItems— cap the number of tweets (you pay per tweet).includeReplies,onlyVerifiedUsers,since/until— filters.proxyConfiguration— Residential recommended (datacenter IPs hit X's limits faster).notionConnector— optional, deliver results to Notion.
Output (one record per tweet)
{"id": "20","url": "https://x.com/Twitter/status/20","text": "just setting up my twttr","createdAt": "Tue Mar 21 20:50:14 +0000 2006","lang": "und","replyCount": 1300,"retweetCount": 112000,"likeCount": 175000,"quoteCount": 8200,"viewCount": null,"hashtags": [], "mentions": [], "urls": [],"media": [],"author": {"id": "12", "userName": "jack", "name": "jack","followersCount": 6400000, "verified": true, "isBlueVerified": true}}
Pricing
$0.30 per 1,000 tweets (pay-per-result). You are only charged for tweets actually returned — failed or empty runs cost nothing.
FAQ
Do I need a Twitter account or API key? No. Profiles, timelines and individual tweets work entirely keyless.
Is search reliable? Keyless search is rate-limited by X. For large/steady volume, scrape by profile handle or tweet URL.
Why residential proxy? X rate-limits datacenter IP ranges quickly. Residential keeps success rates high on sustained runs.
It returned an errorCode row — why? That's the actor telling you exactly what happened (e.g. RATE_LIMITED, BLOCKED, NOT_FOUND) instead of failing silently. Retry, lower volume, or switch proxy country.