Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies avatar

Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies

Pricing

$0.34 / 1,000 tweets

Go to Apify Store
Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies

Tweet Scraper: X (Twitter) Search, Profiles, Lists & Replies

Scrape tweets from X (Twitter) by search term, advanced search filters, handle, list, tweet URL or conversation (replies). Clean JSON with full author profiles, media and engagement counts. $0.34 per 1,000 tweets, no minimum per query.

Pricing

$0.34 / 1,000 tweets

Rating

0.0

(0)

Developer

Alex Burton

Alex Burton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape tweets from X (formerly Twitter) without an X account, API key or proxy. Give it search terms, X advanced-search filters, handles, list URLs, tweet URLs or conversation IDs, and get clean JSON with each tweet's text, engagement counts, media, quoted and retweeted tweets, and the author's full public profile.

$0.34 per 1,000 tweets. Platform usage is included. There is no start fee and no minimum per query, so a 5-tweet lookup costs a fraction of a cent.

What you can scrape

InputWhat you get
Search termsTweets matching anything you can type into X search, including operators like from:, #hashtag, lang:, min_faves:, filter:links.
X handlesTweets posted by those accounts. Filters and dates apply.
Profile URLsAn account's timeline (x.com/name), its tweets and replies (/with_replies) or its media (/media).
Search URLsPaste a search from your browser, for example x.com/search?q=apify&f=live.
List URLsTweets from an X list (x.com/i/lists/123).
Tweet URLsThat single tweet, with full details.
Conversation IDsA whole conversation: the tweet, the tweets above it, and all its replies.

Filters

These are added to every search term, handle and search URL:

  • Sort: Latest, Top, or Latest + Top. With Latest + Top, duplicates are removed before you are charged.
  • Language: ISO 639-1 code (en, es, ja, ...).
  • Only: verified users, blue-check users, tweets with images, tweets with videos, quote tweets.
  • From, in reply to, mentioning: a handle.
  • Location: near a place, within a radius, by geocode or by X place ID. X's own location search only matches the few tweets that carry location data, so these filters often return little or nothing.
  • Engagement: minimum retweets, likes or replies.
  • Dates: since and until (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC).

Example input

{
"searchTerms": ["web scraping", "#ai lang:en"],
"twitterHandles": ["apify"],
"sort": "Latest",
"minimumFavorites": 5,
"start": "2026-01-01",
"maxItems": 500
}

Example output

{
"type": "tweet",
"id": "1980000000000000000",
"url": "https://x.com/apify/status/1980000000000000000",
"twitterUrl": "https://twitter.com/apify/status/1980000000000000000",
"text": "New in Apify Store ...",
"retweetCount": 12,
"replyCount": 3,
"likeCount": 87,
"quoteCount": 1,
"bookmarkCount": 9,
"viewCount": 10432,
"createdAt": "Wed Oct 22 14:01:48 +0000 2026",
"createdAtIso": "2026-10-22T14:01:48.000Z",
"lang": "en",
"source": "Twitter Web App",
"isReply": false,
"inReplyToId": null,
"conversationId": "1980000000000000000",
"isRetweet": false,
"isQuote": false,
"quoteId": null,
"isPinned": false,
"author": {
"type": "user",
"userName": "apify",
"name": "Apify",
"id": "1234567",
"url": "https://x.com/apify",
"isBlueVerified": true,
"verifiedType": "Business",
"profilePicture": "https://pbs.twimg.com/...",
"description": "...",
"location": "Prague",
"followers": 21000,
"following": 300,
"statusesCount": 5400,
"createdAt": "Mon Jun 01 10:00:00 +0000 2015"
},
"media": [{ "type": "photo", "url": "https://pbs.twimg.com/...", "width": 1200, "height": 675 }],
"entities": { "hashtags": ["webscraping"], "urls": ["https://apify.com"], "mentions": [] },
"quote": null,
"retweet": null,
"article": null
}

Quoted and retweeted tweets are included in full under quote and retweet. viewCount is null when X hides it. The dataset has two views: Tweets and Authors.

Pricing

You pay $0.34 per 1,000 tweets saved to the dataset. Nothing else is charged:

  • Duplicates (from Latest + Top, or the same tweet found by two inputs) are removed before charging.
  • Empty searches cost nothing.
  • Set Maximum cost per run in the run options and the scraper stops exactly there.
TweetsCost
100$0.034
1,000$0.34
10,000$3.40
100,000$34

Speed

Large "Latest" searches are split into time slices that are fetched in parallel, typically 20 to 30 tweets per second, and the results still arrive as one continuous newest-first stretch. A run capped with maxItems gets exactly the newest tweets, with no gaps.

Tips

  • Few results? Try sort Top, widen the dates, or check the query on x.com/search first. X search does not return every tweet ever posted. Some tweets are hidden by X's own filtering.
  • Large jobs: one search term can return many thousands of tweets. Use maxItems or the maximum cost per run to cap it.
  • Only some fields? Ask the dataset for them when you download: add ?fields=id,text,likeCount (or omit=) to the dataset items URL, or pick the columns in the Console's export dialog. Nothing extra is charged.
  • API: run it from your code with the Apify API or client, and read the results from the run's dataset.

Limitations

  • Only public tweets. Protected accounts and deleted tweets can't be scraped.
  • Counts and search results are what X shows at the moment of the run.
  • Use the data responsibly and in line with the laws that apply to you, especially for personal data.