🐦 Twitter (X) Search Scraper
Pricing
from $4.99 / 1,000 results
🐦 Twitter (X) Search Scraper
🐦 Twitter (X) Search Scraper by twitter-search-scraper pulls real-time results from X search queries—tweets, authors, timestamps & engagement. 🔎 Fast, efficient scraping for brand monitoring, competitor insights, sentiment & lead research. 🚀
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a month ago
Last modified
Share
Extract clean, structured tweets from X (formerly Twitter) search results at scale — no Twitter API key, no developer account, no fuss. Feed it plain keywords or full advanced-search operators and get back tweet text, media, engagement stats, links, and the full author profile.
Built for marketers, researchers, journalists, and data teams who need reliable Twitter/X search data in JSON, CSV, or Excel.
✨ Why choose this scraper?
- 🧠 Advanced search, simplified — every X operator (
from:,to:,filter:,since:,min_faves:,lang:,near:…) is exposed as a friendly checkbox or field. - 🛰️ Self-healing proxy ladder — starts with no proxy and automatically escalates to datacenter → residential the moment X rate-limits you, then sticks with what works. No babysitting.
- 💾 Live results — tweets stream into your dataset as they're found, so a long run never loses data.
- 👤 Rich author data — optionally attach full profile info (followers, bio, location, join date) to every tweet.
- 💬 Reply threads — pull replies up to 20 levels deep.
- 📊 Per-section output — results are grouped per search query in the key-value store and tagged with a
searchQuerycolumn in the dataset table.
🔑 Key Features
| Feature | Description |
|---|---|
| 🔎 Bulk queries | Search many terms in one run — each is collected separately. |
| 🔢 Tweet limit | Cap the number of tweets per query. |
| 📅 Date filters | since / until, absolute (2026-01-01) or relative (2 days, 1 month). |
| 📈 Engagement filters | Minimum replies / retweets / likes. |
| 👥 Account filters | From / to / mentioning specific accounts. |
| ✅🚫 Include & exclude | Media, images, videos, news, verified, links, quotes, replies… |
| 🌍 Language | Restrict to any of 40+ languages. |
| 💬 Replies | Recursive reply scraping, depth 0–20. |
📥 Input
{"searchQueries": ["web scraping", "from:openai filter:videos"],"tweetsDesired": 100,"repliesDepth": 0,"includeUserInfo": true,"since": "2026-01-01","minLikes": 10,"language": "en","authToken": "YOUR_X_AUTH_TOKEN_COOKIE","csrfToken": "YOUR_X_CT0_COOKIE","proxyConfiguration": { "useApifyProxy": false }}
| Field | Type | Description |
|---|---|---|
searchQueries | array | One or more search terms (plain or advanced syntax). Bulk input. |
tweetsDesired | integer | Max tweets per query (default 100). |
repliesDepth | integer | 0 = none, 1 = direct replies, 2 = replies of replies… (max 20). |
includeUserInfo | boolean | Attach the author profile to every tweet. |
since / until | string | Date window — YYYY-MM-DD or relative (1 month). |
minReplies / minRetweets / minLikes | integer | Engagement floors. |
fromTheseAccounts / toTheseAccounts / mentioningTheseAccounts | array | Account filters. |
media, images, videos, verified, … | boolean | Include-only filters. |
excludeMedia, excludeImages, … | boolean | Exclusion filters. |
language | string | Language code or any. |
near | string | Search near a location. |
textLengthLessThan | integer | Keep only short tweets. |
authToken / csrfToken | string | Required. Your X auth_token and ct0 cookies from a logged-in session. |
proxyConfiguration | object | Proxy settings (see below). |
📤 Output
Each dataset item is one tweet:
{"id": "2058075699500720183","url": "https://x.com/InduTripat82427/status/2058075699500720183","verified": true,"username": "@InduTripat82427","fullname": "Indu Tripathi","avatar": "https://pbs.twimg.com/profile_images/.../AQwwYH26.jpg","images": ["https://pbs.twimg.com/amplify_video_thumb/.../img.jpg"],"timestamp": "2026-05-23T06:40:58.000Z","text": "Web scraping just leveled up …","links": [],"isQuote": false,"isRetweet": false,"isReply": false,"likes": 370,"replies": 30,"retweets": 83,"quotes": 0,"searchQuery": "web scraping","media": [{ "type": "video", "url": "https://video.twimg.com/.../m5SKxpYgRo8oG8ah.mp4" }],"tweetUserId": "1993005544400207878","user": {"userId": "1993005544400207878","username": "InduTripat82427","userFullName": "Indu Tripathi","description": "AI & Tech Influencer …","location": "MP","website": "https://ai-for-gods.beehiiv.com/","joinDate": "2025-11-24T17:15:40.000Z","verified": true,"totalLikes": 1939,"totalTweets": 3339,"totalFollowing": 45,"totalFollowers": 16858,"totalMediaCount": 639,"url": "https://x.com/InduTripat82427"}}
Per-section output: the dataset has a searchQuery column so you can split by query, and the key-value store holds a grouped OUTPUT ({ "query": [ …tweets ] }) plus one tweets_<query> snapshot per search.
When repliesDepth > 0, each tweet additionally carries a nested replies array of the same shape.
🛰️ Proxy configuration
The scraper uses a smart fallback ladder:
- 🌐 No proxy (direct) — fastest, tried first.
- 🏢 Datacenter proxy — used automatically if X blocks the direct connection.
- 🏠 Residential proxy — final fallback, retried up to 3 times; once reached it stays for the rest of the run.
Every escalation is logged. For large runs, pick RESIDENTIAL in the proxy field to start there immediately.
🚀 How to Use (Apify Console)
- Log in at console.apify.com → Actors.
- Open Twitter (X) Search Scraper.
- Enter your search queries and tweak filters / proxy.
- Click Start.
- Watch the live log fill up with collected tweets.
- Open the Output tab and export to JSON / CSV / Excel.
🤖 Use via API
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries":["web scraping"],"tweetsDesired":50}'
💳 Pricing
This actor uses the pay-per-event model with a single primary event:
row_result— billed once per tweet returned in your dataset.
You only pay for the data you receive. Platform start-up time is covered by the synthetic apify-actor-start event.
❓ FAQ
Do I need a Twitter/X API key? No. The scraper works against X's public web search.
Why do some runs switch to a residential proxy? X aggressively rate-limits datacenter IPs. The actor detects this and escalates automatically so your run keeps going.
Can I scrape replies? Yes — set repliesDepth to 1 or higher (up to 20). Note this is much slower.
Can I use my own account? Yes — paste your auth_token and ct0 cookies in the Authentication section.
⚖️ Legal & responsible use
- Only publicly available data is collected.
- You are responsible for complying with X's Terms of Service and applicable laws (GDPR, CCPA, etc.).
- Do not use scraped data for spam or harassment.
🛟 Support
Found a bug or need a new field? Open an issue on the actor's Issues tab — real answers, fast.