X/Twitter Profile Scraper avatar

X/Twitter Profile Scraper

Pricing

from $0.15 / 1,000 results

Go to Apify Store
X/Twitter Profile Scraper

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

simoit

Maintained by Community

Actor stats

1

Bookmarked

28

Total users

10

Monthly active users

4 days ago

Last modified

Share

X Twitter Profile Scraper

SIMO IT logo

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

  1. Add a username, usernames, profileUrl, or profileUrls.
  2. Optionally add filters such as searchTerms, hashtags, startDate, or endDate.
  3. Set limit to 100 for larger exports and choose the desired maxItems.
  4. 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 as en.
  • sort (string, optional, default: latest): latest or top.
  • startDate (string, optional): Start date. Accepts YYYY-MM-DD, D/M/YYYY, or M/D/YYYY.
  • endDate (string, optional): End date. Accepts YYYY-MM-DD, D/M/YYYY, or M/D/YYYY.
  • since (string, optional): Alias for startDate.
  • until (string, optional): Alias for endDate.
  • 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 at 1 for 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 when maxItems needs 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.

Need custom limits, reporting, or a tailored workflow? Contact contact@simoit.tech.