Apify Store
AS
Apify Store
/delicious_zebu/advanced-x-twitter-profile-scraper

Advanced X (Twitter) Profile Scraper

Scrape all tweets from any X (Twitter) profile — not just recent ones. Uses advanced search with date ranges to capture full history, with rich per-tweet data: text, media, engagement metrics and auth

liveasyncunknown~30s typical
social mediadeveloper toolsautomationadvancedtwitterprofile
$0.00063
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.0005 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /delicious_zebu/advanced-x-twitter-profile-scraper for me.

Input

FieldTypeDescription
accountUrls*arrayList of X (Twitter) profile URLs to scrape tweets from. Example: https://x.com/NASA. Free plan: results are capped at 50 per run shared across all URLs (add more accounts on a paid plan). default ["https://x.com/elonmusk","https://x.com/NASA"]
startDate*stringStart date, inclusive. Only tweets posted on or after this date are scraped. Format: YYYY-MM-DD. default "2025-09-01"
endDate*stringEnd date, inclusive. Only tweets posted on or before this date are scraped. Format: YYYY-MM-DD. default "2025-09-05"
splitMode*string (day | week | month)How to split the date range into search segments. X search hides older tweets in wide ranges, so smaller segments capture more. 'By day' is the most thorough (but uses more results); 'By week' or 'By month' are faster for long ranges. default "day"
language*string (any | ar | ar-x-fm | bn | eu | bg)Only return tweets in this language. Choose 'Any language' to disable filtering. Matches X's advanced-search language list. default "any"
maxCollectionsintegerMaximum number of tweets to collect per profile. Set to 0 for unlimited (paid plan). Free plan runs are capped at 50 results total per run regardless of this value. default 0
keywordstringOnly return the profile's tweets that contain this keyword or phrase. Leave empty to get all tweets.
excludeRepliesbooleanTurn on to skip replies and return only the profile's original tweets. default false
mediaFilterstring (any | images | videos)Only return tweets that contain the selected media type. default "any"
minLikesintegerOnly return tweets with at least this many likes. 0 means no minimum. default 0
minRetweetsintegerOnly return tweets with at least this many retweets. 0 means no minimum. default 0
sortstring (Top | Latest)How X ranks the results: 'Top' (most relevant) or 'Latest' (most recent first). default "Top"

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/delicious_zebu/advanced-x-twitter-profile-scraper","input":{"accountUrls":["https://x.com/elonmusk","https://x.com/NASA"],"startDate":"2025-09-01","endDate":"2025-09-05","splitMode":"day","language":"any","maxCollections":0,"keyword":"","minLikes":0,"minRetweets":0},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /delicious_zebu/advanced-x-twitter-profile-scraper -i '{"accountUrls":["https://x.com/elonmusk","https://x.com/NASA"],"startDate":"2025-09-01","endDate":"2025-09-05","splitMode":"day","language":"any","maxCollections":0,"keyword":"","minLikes":0,"minRetweets":0}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/delicious_zebu/advanced-x-twitter-profile-scraper", input: {"accountUrls":["https://x.com/elonmusk","https://x.com/NASA"],"startDate":"2025-09-01","endDate":"2025-09-05","splitMode":"day","language":"any","maxCollections":0,"keyword":"","minLikes":0,"minRetweets":0}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.