Twitter Keywords Scraper Pro
Pricing
from $1.00 / 1,000 results
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
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:
| Field | Description |
|---|---|
id | Tweet ID |
url / twitterUrl | Direct tweet URL |
text | Full tweet text (with hashtags and mentions intact) |
createdAt | ISO 8601 timestamp the tweet was posted |
isReply | true if the tweet is a reply |
isRetweet | true if the tweet is a retweet |
isQuote | true if the tweet quotes another tweet |
quoteId | ID of the quoted tweet (when isQuote=true) |
replyCount | Reply count |
retweetCount | Retweet count |
likeCount | Like count |
quoteCount | Quote count |
bookmarkCount | Bookmark count |
viewCount | View count |
engagementScore | Composite engagement metric (replies + retweets + likes) |
hashtags | Array of hashtags used (without #) |
mentions | Array of mentioned users (without @) |
urls | External URLs in the tweet |
media | Array of media objects — `{ type: image |
author | Author profile snippet — userName, name, profilePicture, isBlueVerified |
keyword | The search keyword that found this tweet |
scrapedAt | ISO 8601 UTC timestamp of extraction |
Empty fields are dropped so the dataset stays clean.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | Array | required | Keywords, phrases, or hashtags to search. Each keyword runs as a separate search. |
maxItems | Integer | 20 | Max tweets per keyword (1-1000). |
sort | Enum | Top | Top, Latest, or Top + Latest (dual-pass dedup). |
tweetLanguage | String | — | ISO 639-1 language code (en, es, de, ja, …). |
startDate | String | — | Earliest date YYYY-MM-DD. |
endDate | String | — | Latest date YYYY-MM-DD. |
minimumRetweets | Integer | — | Filter for tweets with at least N retweets. |
minimumLikes | Integer | — | Filter for tweets with at least N likes. |
minimumReplies | Integer | — | Filter for tweets with at least N replies. |
onlyImages | Boolean | false | Only tweets containing images. |
onlyVideos | Boolean | false | Only tweets containing videos. |
onlyQuotes | Boolean | false | Only quote tweets. |
onlyVerifiedUsers | Boolean | false | Only tweets from verified (Blue) accounts. |
mentioning | String | — | Tweets mentioning this handle. |
author | String | — | Tweets posted FROM this handle. |
inReplyTo | String | — | Tweets that are replies TO this handle. |
conversationId | String | — | Tweets in a specific conversation thread (root tweet ID). |
cookies | String | required | Twitter/X session cookies (JSON array). See Authentication. |
proxyConfiguration | Object | — | Optional 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
- Log into x.com in Chrome or Firefox.
- Install the Cookie-Editor extension.
- Click the extension icon → Export → Export as JSON.
- Paste the JSON array into the
cookiesinput field.
The two cookies that absolutely must be present are auth_token and ct0. Cookies typically last 30-60 days before they need refreshing.
Cookie format
[{ "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+onlyVerifiedUsersto 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.