🐦 Twitter (X) Search Scraper avatar

🐦 Twitter (X) Search Scraper

Pricing

from $5.99 / 1,000 results

Go to Apify Store
🐦 Twitter (X) Search Scraper

🐦 Twitter (X) Search Scraper

Scrape Twitter (X) search results by keyword, hashtag, or query. Extract tweets, authors, engagement metrics, media, timestamps, hashtags, mentions, and URLs. Ideal for brand monitoring, sentiment analysis, trend tracking, and market research.

Pricing

from $5.99 / 1,000 results

Rating

0.0

(0)

Developer

Scrapier

Scrapier

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days 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 searchQuery column in the dataset table.

πŸ”‘ Key Features

FeatureDescription
πŸ”Ž Bulk queriesSearch many terms in one run β€” each is collected separately.
πŸ”’ Tweet limitCap the number of tweets per query.
πŸ“… Date filterssince / until, absolute (2026-01-01) or relative (2 days, 1 month).
πŸ“ˆ Engagement filtersMinimum replies / retweets / likes.
πŸ‘₯ Account filtersFrom / to / mentioning specific accounts.
βœ…πŸš« Include & excludeMedia, images, videos, news, verified, links, quotes, replies…
🌍 LanguageRestrict to any of 40+ languages.
πŸ’¬ RepliesRecursive 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 }
}
FieldTypeDescription
searchQueriesarrayOne or more search terms (plain or advanced syntax). Bulk input.
tweetsDesiredintegerMax tweets per query (default 100).
repliesDepthinteger0 = none, 1 = direct replies, 2 = replies of replies… (max 20).
includeUserInfobooleanAttach the author profile to every tweet.
since / untilstringDate window β€” YYYY-MM-DD or relative (1 month).
minReplies / minRetweets / minLikesintegerEngagement floors.
fromTheseAccounts / toTheseAccounts / mentioningTheseAccountsarrayAccount filters.
media, images, videos, verified, …booleanInclude-only filters.
excludeMedia, excludeImages, …booleanExclusion filters.
languagestringLanguage code or any.
nearstringSearch near a location.
textLengthLessThanintegerKeep only short tweets.
authToken / csrfTokenstringRequired. Your X auth_token and ct0 cookies from a logged-in session.
proxyConfigurationobjectProxy 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:

  1. 🌐 No proxy (direct) β€” fastest, tried first.
  2. 🏒 Datacenter proxy β€” used automatically if X blocks the direct connection.
  3. 🏠 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)

  1. Log in at console.apify.com β†’ Actors.
  2. Open Twitter (X) Search Scraper.
  3. Enter your search queries and tweak filters / proxy.
  4. Click Start.
  5. Watch the live log fill up with collected tweets.
  6. 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.


  • 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.