All-in-One X/Twitter Scraper avatar

All-in-One X/Twitter Scraper

Pricing

from $0.20 / 1,000 tweet results

Go to Apify Store
All-in-One X/Twitter Scraper

All-in-One X/Twitter Scraper

Scrape X (Twitter) data at the lowest price on Apify. 8 modes: tweets, profiles, followers, comments, search, and more. From $0.20/1K results. No proxy needed. 256MB memory. HTTP-only, blazing fast. Compatible with apidojo output format. No login required for basic modes.

Pricing

from $0.20 / 1,000 tweet results

Rating

0.0

(0)

Developer

Japi Cricket

Japi Cricket

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

5

Monthly active users

2 days ago

Last modified

Share

The most affordable X/Twitter scraper on Apify. 10 scraping modes in one actor. 40-50% cheaper than any competitor. Extract tweets, profiles, followers, comments, lists, timelines, and more from X (formerly Twitter).

At $0.20/1K results (Business plan), we are the cheapest pay-per-event X scraper on Apify — while delivering the same data quality as scrapers costing 2-3x more.

Why Choose This Scraper?

  • Cheapest on Apify — $0.24/1K (Starter) vs $0.40/1K (apidojo) = 40% savings
  • 10 modes in 1 actor — no need to rent multiple scrapers
  • No proxy needed — saves you $8/GB on residential proxy costs
  • 128MB memory — lowest possible compute unit cost
  • No login required for 3 modes (posts, profiles, data extractor)
  • Compatible output format — drop-in replacement for apidojo scrapers
  • Cookie rotation — support multiple login cookies for large runs
  • Resume capability — pick up where failed runs left off
  • Query Wizard — build complex queries through simple UI fields

10 Scraping Modes

ModeWhat it doesAuth RequiredProxy
x-post-scraperScrape specific tweets by URLNoneNo
x-data-extractorLightweight tweet URL scraperNoneNo
x-profile-scraperFull user profiles with statsNoneNo
x-tweet-scraperSearch tweets by keywords/hashtagsLogin cookiesNo
x-timeline-scraperScrape a user's tweet timelineLogin cookiesNo
x-user-search-scraperSearch for users by keywordsLogin cookiesNo
x-follower-scraperGet followers/following listsLogin cookiesNo
x-comment-scraperGet replies/conversation threadsLogin cookiesNo
x-list-scraperScrape tweets from X/Twitter listsLogin cookiesNo
x-scraperAll-in-one (combines all above)DependsNo

Pricing — Cheapest on Apify

EventFree/1KStarter/1KScale/1KBusiness/1Kvs Best Competitor
Tweet result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo ($0.40)
Post result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo
Profile result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo
Follower result$2.25$0.09$0.08$0.0740-53% cheaper than kaitoeasyapi ($0.15)
Comment result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo
Search result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo
Extractor result$6.00$0.24$0.22$0.2040-50% cheaper than apidojo

Quick Start Examples

Scrape tweets by URL (no auth needed)

{
"scrapeMode": "x-post-scraper",
"tweetURLs": [
"https://x.com/elonmusk/status/1728108619189874825",
"https://x.com/NASA/status/1630332507265589248"
]
}

Scrape user profiles (no auth needed)

{
"scrapeMode": "x-profile-scraper",
"profiles": ["elonmusk", "NASA", "OpenAI"]
}

Search tweets (requires login cookies)

{
"scrapeMode": "x-tweet-scraper",
"searchQueries": ["from:NASA", "#AI lang:en"],
"maxResults": 100,
"sort": "Latest",
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Search with Query Wizard filters

{
"scrapeMode": "x-tweet-scraper",
"searchQueries": ["artificial intelligence"],
"author": "elonmusk",
"start": "2024-01-01",
"end": "2024-12-31",
"minimumFavorites": 100,
"onlyImage": true,
"languageFilter": "en",
"maxResults": 200,
"sort": "Top",
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Scrape a user's timeline

{
"scrapeMode": "x-timeline-scraper",
"profiles": ["NASA"],
"maxResults": 500,
"includeReplies": false,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Get followers (requires login cookies)

{
"scrapeMode": "x-follower-scraper",
"profiles": ["apify"],
"maxResults": 500,
"followerMode": "followers",
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Get comments/replies

{
"scrapeMode": "x-comment-scraper",
"tweetURLs": ["https://x.com/elonmusk/status/1728108619189874825"],
"maxResults": 50,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Scrape from a Twitter List

{
"scrapeMode": "x-list-scraper",
"listURLs": ["https://x.com/i/lists/1234567890"],
"maxResults": 100,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Search for users

{
"scrapeMode": "x-user-search-scraper",
"searchQueries": ["AI researcher"],
"maxResults": 50,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

All-in-one mode with startUrls

{
"scrapeMode": "x-scraper",
"startUrls": [
"https://x.com/elonmusk/status/1728108619189874825",
"https://x.com/NASA",
"https://x.com/i/lists/1234567890"
],
"searchQueries": ["from:apify"],
"maxResults": 20,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Using Latest + Top sort (maximizes results)

{
"scrapeMode": "x-tweet-scraper",
"searchQueries": ["bitcoin"],
"sort": "Latest + Top",
"maxResults": 500,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Using conversation IDs

{
"scrapeMode": "x-tweet-scraper",
"conversationIds": ["1728108619189874825"],
"sort": "Latest",
"maxResults": 100,
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Resume a failed run

{
"scrapeMode": "x-tweet-scraper",
"searchQueries": ["from:NASA"],
"maxResults": 1000,
"resumeFromDataset": "PREVIOUS_DATASET_ID",
"loginCookies": "auth_token=xxx; ct0=yyy"
}
{
"scrapeMode": "x-follower-scraper",
"profiles": ["elonmusk"],
"maxResults": 5000,
"loginCookies": "auth_token=aaa; ct0=bbb|||auth_token=ccc; ct0=ddd"
}

Custom map function

{
"scrapeMode": "x-tweet-scraper",
"searchQueries": ["web scraping"],
"maxResults": 50,
"customMapFunction": "(item) => ({ id: item.tweetId, text: item.text, likes: item.likeCount, author: item.author?.userName })",
"loginCookies": "auth_token=xxx; ct0=yyy"
}

Output Examples

Tweet (from search, post scraper, timeline, lists, or comments)

{
"type": "tweet",
"tweetId": "1728108619189874825",
"url": "https://x.com/elonmusk/status/1728108619189874825",
"twitterUrl": "https://twitter.com/elonmusk/status/1728108619189874825",
"text": "More than 10 per human on average",
"likeCount": 93200,
"retweetCount": 8934,
"replyCount": 5943,
"quoteCount": 2862,
"viewCount": 37422813,
"bookmarkCount": 702,
"createdAt": "Fri Nov 24 17:49:36 +0000 2023",
"lang": "en",
"source": "Twitter for Android",
"isReply": false,
"isRetweet": false,
"isQuote": true,
"conversationId": "1728108619189874825",
"hashtags": [],
"urls": [],
"userMentions": [],
"media": [],
"author": {
"type": "user",
"userName": "elonmusk",
"name": "Elon Musk",
"twitterId": "44196397",
"isBlueVerified": true,
"profilePicture": "https://pbs.twimg.com/profile_images/.../image_400x400.jpg",
"followers": 237310283,
"following": 538
}
}
{
"type": "user",
"twitterId": "11348282",
"userName": "NASA",
"name": "NASA",
"url": "https://x.com/NASA",
"twitterUrl": "https://twitter.com/NASA",
"description": "Official NASA account.",
"location": "Pale Blue Dot",
"website": "http://www.nasa.gov/",
"followers": 90104714,
"following": 116,
"statusesCount": 73499,
"favouritesCount": 16553,
"listedCount": 96558,
"mediaCount": 27785,
"isVerified": false,
"isBlueVerified": true,
"verifiedType": "Government",
"profilePicture": "https://pbs.twimg.com/profile_images/.../image_400x400.jpg",
"coverPicture": "https://pbs.twimg.com/profile_banners/11348282/...",
"createdAt": "Wed Dec 19 20:20:32 +0000 2007",
"canDm": false,
"isProtected": false
}

How to Get Login Cookies

Some modes require X/Twitter login cookies. Here's how:

  1. Open x.com in your browser and log in
  2. Open Developer Tools (F12 or Cmd+Opt+I)
  3. Go to Application > Cookies > x.com
  4. Copy the values of auth_token and ct0
  5. Paste as: auth_token=YOUR_TOKEN; ct0=YOUR_CT0

Modes that do NOT require cookies: x-post-scraper, x-profile-scraper, x-data-extractor.

Cookie rotation: For large runs, provide multiple cookies separated by |||:

auth_token=aaa; ct0=bbb|||auth_token=ccc; ct0=ddd

Query Wizard

Build complex search queries without learning advanced syntax. Use the Query Wizard fields in the UI:

FieldWhat it doesEquivalent syntax
From UserTweets from specific userfrom:username
In Reply ToReplies to specific userto:username
Mentioning UserMentions of user@username
Start DateTweets after datesince:YYYY-MM-DD
End DateTweets before dateuntil:YYYY-MM-DD
Minimum LikesMin like thresholdmin_faves:N
Minimum RetweetsMin RT thresholdmin_retweets:N
Minimum RepliesMin reply thresholdmin_replies:N
Language FilterFilter by languagelang:xx
Only VerifiedVerified users onlyfilter:verified
Only ImagesTweets with imagesfilter:images
Only VideosTweets with videosfilter:videos
Only QuotesQuote tweets onlyfilter:quote
Geotagged NearLocation filternear:"city"
Within RadiusRadius from locationwithin:10km

These fields auto-append to your search queries. Combine with manual query syntax for maximum power.

Advanced Search Syntax

The tweet search mode supports X/Twitter advanced search operators:

OperatorExampleDescription
from:userfrom:NASATweets from specific user
to:userto:supportReplies to specific user
@user@OpenAIMentions of specific user
#hashtag#AITweets with hashtag
$cashtag$TSLATweets with cashtag
since:datesince:2024-01-01Tweets after date
until:dateuntil:2024-12-31Tweets before date
min_faves:Nmin_faves:100Minimum likes
min_retweets:Nmin_retweets:50Minimum retweets
min_replies:Nmin_replies:10Minimum replies
lang:xxlang:enFilter by language
filter:mediafilter:mediaOnly tweets with media
filter:imagesfilter:imagesOnly tweets with images
filter:videosfilter:videosOnly tweets with videos
filter:linksfilter:linksOnly tweets with links
filter:verifiedfilter:verifiedOnly verified users
filter:blue_verifiedfilter:blue_verifiedOnly X Premium users
-filter:retweets-filter:retweetsExclude retweets
-filter:replies-filter:repliesExclude replies
filter:quotefilter:quoteOnly quote tweets
conversation_id:IDconversation_id:123Thread replies
near:"city"near:"San Francisco"Geotagged tweets
within:radiuswithin:10kmWithin radius

Combine operators: from:NASA #space since:2024-01-01 min_faves:100 lang:en -filter:retweets

Input Parameters

FieldTypeDescriptionDefault
scrapeModestringWhich scraper to runx-tweet-scraper
startUrlsarrayAuto-detect URLs (tweets, profiles, lists)[]
searchQueriesarraySearch queries with advanced syntax[]
profilesarrayUsernames, @handles, or profile URLs[]
twitterHandlesarrayAlias for profiles (apidojo compatible)[]
tweetURLsarrayTweet URLs or tweet IDs[]
listURLsarrayX/Twitter list URLs or list IDs[]
conversationIdsarrayConversation IDs for reply scraping[]
maxResultsintegerMax results per input item100
sortstringLatest, Top, or Latest + TopLatest
followerModestringfollowers or followingfollowers
includeRepliesbooleanInclude replies in timelinesfalse
languageFilterstringISO 639-1 language code""
tweetLanguagestringAlias for languageFilter""
startstringDate range start (YYYY-MM-DD)""
endstringDate range end (YYYY-MM-DD)""
minimumFavoritesintegerMin likes filternull
minimumRetweetsintegerMin retweets filternull
minimumRepliesintegerMin replies filternull
authorstringFrom user (query wizard)""
inReplyTostringIn reply to user""
mentioningstringMentioning user""
geotaggedNearstringNear location""
withinRadiusstringRadius from location""
onlyVerifiedUsersbooleanVerified users onlyfalse
onlyTwitterBluebooleanX Premium users onlyfalse
onlyImagebooleanImages onlyfalse
onlyVideobooleanVideos onlyfalse
onlyQuotebooleanQuote tweets onlyfalse
includeSearchTermsbooleanTag results with search queryfalse
loginCookiesstringauth_token + ct0 cookies""
customMapFunctionstringJS transform function""
resumeFromDatasetstringDataset ID to resume from""
proxyConfigurationobjectProxy settings (optional){}

Features

  • 10 scraping modes covering every X/Twitter data need
  • Query Wizard — build queries through UI fields without syntax knowledge
  • Advanced search — full X/Twitter search operator support
  • Latest + Top sort — dual search for maximum results
  • Cookie rotation — multiple cookies for large-scale runs
  • Resume capability — skip already-scraped items from previous runs
  • Custom map function — transform output to your exact schema
  • startUrls auto-detect — paste any X URL and it routes correctly
  • apidojo-compatible — twitterHandles, tweetLanguage, includeSearchTerms aliases
  • No proxy required — zero additional costs
  • 128MB memory — lowest compute unit consumption
  • Conversation threading — scrape reply threads via conversationIds

Technical Details

  • Stack: Node.js 20, Impit (Chrome TLS fingerprinting), Apify SDK 3
  • Memory: 128-256MB (HTTP-only, no browser)
  • Speed: 2-8 seconds per run, ~50MB peak memory
  • No proxy required for any mode
  • No login needed for post scraping, profiles, and data extraction

Troubleshooting

Getting no results?

  • Check that your search query isn't too restrictive
  • Try sort: Top instead of Latest — X sometimes returns fewer results with Latest
  • Remove until: date filters if getting low counts

Authentication errors?

  • Your cookies may have expired. Get fresh auth_token and ct0 from x.com
  • Both auth_token and ct0 are required
  • Format: auth_token=YOUR_TOKEN; ct0=YOUR_CT0

Missing tweets?

  • Some tweets are shadow-banned or filtered by X. This is outside our control.
  • Try different date ranges or search terms

Want to resume a failed run?

  • Copy the dataset ID from the previous run
  • Add it to resumeFromDataset — already-scraped items will be skipped

Support

Found a bug or need help? Open an issue on the Issues tab.