X/Twitter Profile Scraper
Pricing
from $0.15 / 1,000 results
X/Twitter Profile Scraper
Collect posts from a specific X profile and build a clear picture of how that account communicates.
Pricing
from $0.15 / 1,000 results
Rating
0.0
(0)
Developer
simoit
Maintained by CommunityActor stats
1
Bookmarked
28
Total users
10
Monthly active users
4 days ago
Last modified
Categories
Share
X Twitter Profile Scraper

Scrape posts from X/Twitter profiles by handle or profile URL. Use it to monitor company accounts, audit executives, research creators, and export profile timelines with keyword, date, reply, and retweet filters.
Features
- scrape tweets from one or many X/Twitter profiles
- use handles, profile URLs, comma-separated lists, or newline-separated batches
- filter profile timelines by keyword, exact phrase, excluded terms, hashtags, language, and date range
- include or exclude replies, retweets, and pinned tweets
- collect larger exports with
maxItems; the Actor automatically expands effective pages when needed - export structured tweet data for audits, BI dashboards, reports, and monitoring workflows
Use Cases
- competitor account monitoring
- executive and founder content audits
- brand publishing reports
- influencer and creator research
- profile-level keyword tracking
- owned social media archive exports
How To Use
- Add a
username,usernames,profileUrl, orprofileUrls. - Optionally add filters such as
searchTerms,hashtags,startDate, orendDate. - Set
limitto100for larger exports and choose the desiredmaxItems. - Run the Actor and download the dataset.
For most exports, keep page at 1. If you set maxItems higher than one page can return, the Actor calculates the needed effective maxPages automatically.
Input
username(string, optional): Single target X username without@.usernames(string, optional): Batch usernames, comma-separated or one per line.profileUrl(string, optional): Single X/Twitter profile URL.profileUrls(string, optional): Batch X/Twitter profile URLs, comma-separated or one per line.rawQuery(string, optional): Advanced X query string used as-is. If provided, it overrides the composed profile query.searchTerms(string, optional): Keyword filter within profile tweets.exactPhrase(string, optional): Exact phrase filter.excludeTerms(string, optional): Terms to exclude, comma-separated.hashtags(string, optional): Hashtags to require, comma-separated.language(string, optional): Language filter, such asen.sort(string, optional, default:latest):latestortop.startDate(string, optional): Start date. AcceptsYYYY-MM-DD,D/M/YYYY, orM/D/YYYY.endDate(string, optional): End date. AcceptsYYYY-MM-DD,D/M/YYYY, orM/D/YYYY.since(string, optional): Alias forstartDate.until(string, optional): Alias forendDate.includeReplies(boolean, optional, default:false): Include profile replies.includeRetweets(boolean, optional, default:false): Include retweets.includePinned(boolean, optional, default:false): Include the pinned tweet when available.page(integer, optional, default:1): Starting page number. Keep this at1for most runs.limit(integer, optional, default:20, max:100): Records per page.maxPages(integer, optional, default:1): Minimum pages to fetch. The Actor raises the effective value whenmaxItemsneeds more pages.maxItems(integer, optional): Maximum number of output records.
At least one profile target is required: username, usernames, profileUrl, or profileUrls.
Example Input
{"profileUrls": "https://x.com/openai, https://x.com/apify","sort": "latest","includeReplies": false,"includeRetweets": false,"page": 1,"limit": 100,"maxItems": 200}
Keyword Monitoring Input
{"username": "openai","searchTerms": "gpt OR model OR api","sort": "latest","includeReplies": true,"includeRetweets": false,"page": 1,"limit": 100,"maxItems": 200}
Example Output
{"id": 1891009988776655400,"id_str": "1891009988776655400","url": "https://x.com/openai/status/1891009988776655400","date": "2026-02-18T14:22:00+00:00","lang": "en","rawContent": "Model update notes and release details.","replyCount": 27,"retweetCount": 180,"likeCount": 940,"quoteCount": 11,"conversationId": 1891009988776655400,"conversationIdStr": "1891009988776655400","hashtags": ["GPT"],"cashtags": [],"mentionedUsers": [],"links": [],"user": {"id": 4398626122,"id_str": "4398626122","url": "https://x.com/openai","username": "openai","displayname": "OpenAI","verified": true},"media": {"photos": [],"videos": [],"animated": []},"_type": "snscrape.modules.twitter.Tweet"}
Task Presets
See ./TASK_PRESETS.md for ready-to-create Apify tasks with names, service descriptions, and copy-paste JSON inputs.
FAQ
Why did maxItems: 200 return only 20 items before?
Older inputs often left limit and maxPages at one page. This Actor now expands effective maxPages from maxItems and limit, so limit: 100 with maxItems: 200 can request two pages automatically.
Should I set a high page value?
Usually no. Keep page: 1, set limit: 100, and control the total export with maxItems.
Can I scrape multiple profiles in one run?
Yes. Use usernames or profileUrls with comma-separated or newline-separated values.
Can I filter one profile by topic?
Yes. Use searchTerms, exactPhrase, excludeTerms, hashtags, or language.
Related Actors
- Need topic search across all of X, not one profile timeline? Use Tweet Scraper.
- Need profile metadata, followers, or following instead of posts? Use User Scraper.
- Need curated monitoring across multiple accounts grouped in one list? Use List Scraper.
- Need live trend discovery before checking specific profiles? Use Trends Scraper or Global Trending Scraper.
Need custom limits, reporting, or a tailored workflow? Contact contact@simoit.tech.