Twitter Keywords Scraper Pro avatar

Twitter Keywords Scraper Pro

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Twitter Keywords Scraper Pro

Twitter Keywords Scraper Pro

Scrape tweets from Twitter/X by keywords with advanced filters: date range, language, engagement thresholds, media type, verified-only, and more. Returns full tweet data including author info, media, and engagement metrics.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(21)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

21

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Extract tweets from Twitter / X by keyword, hashtag, or full advanced search query. Built for researchers, marketers, and analysts who need reliable, structured Twitter data with deep filter support — date range, language, engagement thresholds, media type, verified-only, conversations, and more.

Twitter session cookies are required for reliable extraction. See the Authentication section below.

What you get

For each tweet the scraper returns:

FieldDescription
idTweet ID
url / twitterUrlDirect tweet URL
textFull tweet text (with hashtags and mentions intact)
createdAtISO 8601 timestamp the tweet was posted
isReplytrue if the tweet is a reply
isRetweettrue if the tweet is a retweet
isQuotetrue if the tweet quotes another tweet
quoteIdID of the quoted tweet (when isQuote=true)
replyCountReply count
retweetCountRetweet count
likeCountLike count
quoteCountQuote count
bookmarkCountBookmark count
viewCountView count
engagementScoreComposite engagement metric (replies + retweets + likes)
hashtagsArray of hashtags used (without #)
mentionsArray of mentioned users (without @)
urlsExternal URLs in the tweet
mediaArray of media objects — `{ type: image
authorAuthor profile snippet — userName, name, profilePicture, isBlueVerified
keywordThe search keyword that found this tweet
scrapedAtISO 8601 UTC timestamp of extraction

Empty fields are dropped so the dataset stays clean.

Input

ParameterTypeDefaultDescription
keywordsArrayrequiredKeywords, phrases, or hashtags to search. Each keyword runs as a separate search.
maxItemsInteger20Max tweets per keyword (1-1000).
sortEnumTopTop, Latest, or Top + Latest (dual-pass dedup).
tweetLanguageStringISO 639-1 language code (en, es, de, ja, …).
startDateStringEarliest date YYYY-MM-DD.
endDateStringLatest date YYYY-MM-DD.
minimumRetweetsIntegerFilter for tweets with at least N retweets.
minimumLikesIntegerFilter for tweets with at least N likes.
minimumRepliesIntegerFilter for tweets with at least N replies.
onlyImagesBooleanfalseOnly tweets containing images.
onlyVideosBooleanfalseOnly tweets containing videos.
onlyQuotesBooleanfalseOnly quote tweets.
onlyVerifiedUsersBooleanfalseOnly tweets from verified (Blue) accounts.
mentioningStringTweets mentioning this handle.
authorStringTweets posted FROM this handle.
inReplyToStringTweets that are replies TO this handle.
conversationIdStringTweets in a specific conversation thread (root tweet ID).
cookiesStringrequiredTwitter/X session cookies (JSON array). See Authentication.
proxyConfigurationObjectOptional proxy. Leave off unless you hit IP-based blocks.

Example input — minimal

{
"keywords": ["artificial intelligence"],
"maxItems": 50,
"cookies": "[{\"name\":\"auth_token\",\"value\":\"YOUR_TOKEN\",\"domain\":\".x.com\"}]"
}

Example input — advanced filters

{
"keywords": ["#TechNews", "machine learning"],
"maxItems": 200,
"sort": "Top + Latest",
"tweetLanguage": "en",
"startDate": "2026-04-01",
"endDate": "2026-04-30",
"minimumLikes": 100,
"onlyVerifiedUsers": true,
"cookies": "[...]"
}

Example input — conversation thread

{
"keywords": [""],
"conversationId": "1881234567890123456",
"maxItems": 500,
"cookies": "[...]"
}

Example output

{
"id": "1881234567890123456",
"url": "https://x.com/openai/status/1881234567890123456",
"twitterUrl": "https://x.com/openai/status/1881234567890123456",
"text": "Introducing GPT-4 Turbo. More capable, cheaper, and updated knowledge. #AI",
"createdAt": "2026-04-15T14:32:00.000Z",
"isReply": false,
"isRetweet": false,
"isQuote": false,
"replyCount": 1240,
"retweetCount": 8500,
"likeCount": 42000,
"quoteCount": 320,
"bookmarkCount": 3100,
"viewCount": 9800000,
"engagementScore": 51740,
"hashtags": ["AI"],
"mentions": [],
"urls": ["https://openai.com/gpt4turbo"],
"media": [
{ "type": "image", "url": "https://pbs.twimg.com/media/AbCdEf.jpg" }
],
"author": {
"userName": "OpenAI",
"name": "OpenAI",
"profilePicture": "https://pbs.twimg.com/profile_images/.../photo_400x400.jpg",
"isBlueVerified": true
},
"keyword": "machine learning",
"scrapedAt": "2026-05-05T13:42:18Z"
}

Authentication

Twitter/X requires a logged-in session for reliable search results. The cookies input is a JSON array of your browser cookies for x.com.

How to export your cookies

  1. Log into x.com in Chrome or Firefox.
  2. Install the Cookie-Editor extension.
  3. Click the extension icon → Export → Export as JSON.
  4. Paste the JSON array into the cookies input field.

The two cookies that absolutely must be present are auth_token and ct0. Cookies typically last 30-60 days before they need refreshing.

[
{ "name": "auth_token", "value": "YOUR_AUTH_TOKEN", "domain": ".x.com", "path": "/", "httpOnly": true, "secure": true },
{ "name": "ct0", "value": "YOUR_CT0_VALUE", "domain": ".x.com", "path": "/", "httpOnly": false, "secure": true }
]

Keep your cookies private — they grant access to your X account.

Use cases

  • Brand monitoring — Track real-time mentions of your brand or product.
  • Competitive research — Monitor competitor keywords, hashtags, and sentiment.
  • Trend analysis — Capture viral content using engagement thresholds.
  • Academic research — Collect tweets by date range, language, and topic.
  • Hashtag campaign tracking — Measure reach for branded campaign hashtags.
  • Conversation analysis — Pull every tweet in a thread with conversationId.
  • Influencer discovery — Combine minimumLikes + onlyVerifiedUsers to surface high-impact accounts.

FAQ

Why are cookies required? Twitter/X locks search results behind a login wall. Without valid cookies, search returns either nothing or a curated old-tweets feed. Cookies authenticate the actor as a real session so you get fresh, relevant results.

My results look stale or limited — what's wrong? Either your cookies have expired or you're hitting a rate limit. Re-export fresh cookies (Chrome → Cookie-Editor → Export). If results stay limited, lower maxItems and let the actor run multiple smaller passes.

Can I combine filters? Yes — every filter is AND-combined. A query like keywords=["AI"], minimumLikes=100, onlyVerifiedUsers=true, tweetLanguage="en" returns English tweets about AI from verified accounts with at least 100 likes.

How does Top + Latest work? It runs two search passes (most relevant first, then chronological) and deduplicates by tweet ID. You get broader coverage than either mode alone, with no duplicate rows.

What's the maximum I can scrape per keyword? Up to 1000 tweets per keyword per run, capped by Twitter's search index depth. For very high-volume queries, narrow with date range or engagement filters and run multiple passes.

Will my account get banned? The actor uses random delays, scrolls naturally, and mimics human browsing. Risk is low for typical usage, but avoid hammering the same query for hundreds of thousands of tweets back-to-back. Use a dedicated account, not your primary one, if you're running heavy workloads.

What if every search returns zero tweets? The actor emits a single sentinel record with type: "twitter_keywords_blocked" and a clear reason (e.g. expired_cookies) so the run exits cleanly with a non-empty dataset and you immediately know what to fix.

How current is the data? Live — every run queries Twitter/X at request time. Schedule the actor for hourly or daily refreshes.

Limitations

  • Twitter/X search index depth varies — very old tweets may not be retrievable even with date filters.
  • Protected (private) accounts are excluded unless you authenticate with cookies from a follower.
  • Cookies expire — refresh every ~30-60 days for steady performance.
  • Engagement counts for very old tweets may differ slightly from the official API.