Twitter Profile Scraper — Extract Profiles, Tweets & Replies avatar

Twitter Profile Scraper — Extract Profiles, Tweets & Replies

Pricing

$14.99/month + usage

Go to Apify Store
Twitter Profile Scraper — Extract Profiles, Tweets & Replies

Twitter Profile Scraper — Extract Profiles, Tweets & Replies

Scrapes public Twitter X profiles, capturing usernames, bios, follower and following counts, tweets, media, timestamps, engagement stats, and profile URLs. Ideal for influencer research, competitor analysis, audience insights, and large-scale Twitter X profile data extraction

Pricing

$14.99/month + usage

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

0

Monthly active users

5 days ago

Last modified

Share

Twitter Scraper — Extract Profiles, Tweets and Replies

Twitter/X Profile Scraper Plus 🚀 turns any public X account into three structured data types — flat profile records, tweets, and optional replies — delivered as typed JSON instead of raw HTML. Give it a handle, a numeric user ID, or a full x.com/twitter.com URL and it returns one row per profile with real columns for followers, bio, and verification, plus one row per tweet with view counts, media URLs, and engagement metrics. Unlike scraping frameworks that hand back raw HTML for you to parse, this Actor returns clean, flat fields ready for your database, spreadsheet, or LLM pipeline. This guide covers every input parameter, every output field, and the run patterns teams actually use it for.


🧭 What Does Twitter Scraper — Extract Profiles, Tweets and Replies Do?

Twitter/X Profile Scraper Plus is an Apify Actor that extracts public profile data, tweets, and (optionally) reply threads from X, formerly Twitter. It resolves any mix of profile URLs, @handles, plain usernames, or numeric user IDs into flat dataset rows: one row per profile (type: "profile"), one row per tweet (type: "tweet"), and — when reply scraping is enabled — one row per reply (type: "reply"). No X/Twitter account is required to scrape public profiles and tweets; the Actor authenticates its requests with a guest token it fetches automatically on every run. Only the optional reply-scraping mode (getReplies) needs your own logged-in session cookies.

Key capabilities:

  • 👤 Flat profile records — followers, following, verification status, bio, location, website, join date, pinned tweet and account age, all as top-level columns instead of a nested object
  • 🐦 Tweet records — full text, viewCount, likes, retweets, replies, quotes, bookmarks, language, hashtags, mentions, and media URLs
  • 💬 Optional reply threads — fetched via the TweetDetail endpoint and linked to their parent tweet through parentTweetId
  • 🧮 Derived metrics computed locally at scrape time, with no extra requests — followerFollowingRatio, accountAgeDays, tweetsPerDay on profiles, engagementRate on tweets
  • 🎯 Six tweet-level filters — date range, keyword include/exclude, language, minimum likes/retweets/replies, and media type (onlyImages / onlyVideos / hasMedia)
  • 🔓 No login for public data — cookies (authToken, csrfToken) are only read when getReplies is on

⚡ Features & Capabilities

Three things define this Actor's capability set: what it extracts, how it holds up against comparable X scrapers, and where it fits inside a broader data pipeline.

Core features

  • Profile fieldsuserId, screenName, name, profileUrl, description, followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount, verified, isBlueVerified, verifiedType, protected, location, website, joinedAt, profileImageUrl, profileBannerUrl, pinnedTweetId, professionalCategory
  • Derived profile metricsfollowerFollowingRatio (followers ÷ following, rounded to 3 decimals), accountAgeDays (days since joinedAt), tweetsPerDay (tweetCount ÷ accountAgeDays)
  • Tweet fieldsid, url, text, createdAt, likeCount, retweetCount, replyCount, quoteCount, bookmarkCount, viewCount, lang, hashtags, mentions, mediaUrls, videoUrls, mediaType, and the derived engagementRate (sum of likes+retweets+replies+quotes ÷ viewCount, rounded to 5 decimals — null when the tweet has no recorded view count)
  • Two input styles that merge into one target liststartUrls (full URLs, @handles, plain handles or numeric IDs) and twitterHandles (plain usernames), deduplicated case-insensitively before scraping starts
  • Single output format — one flat Apify dataset, exportable to JSON, CSV, Excel, XML or HTML Table from the Apify Console like any Apify dataset

How Twitter/X Profile Scraper Plus compares to other Twitter scrapers

FeatureTwitter/X Profile Scraper Plusweb.harvester/twitter-scraperapidojo/twitter-user-scraper
Entity coverageProfiles, tweets, repliesProfiles, tweets, with search (as observed on the Apify Store on 2026-07-26)Profiles, followers, following, retweeters (as observed on the Apify Store on 2026-07-26)
Derived engagement metrics computed locallyfollowerFollowingRatio, accountAgeDays, tweetsPerDay, engagementRateNot documentedNot documented
Follower / following list extraction❌ Not implementedNot documented✅ Supported (as observed on the Apify Store on 2026-07-26)
Pricing modelPay-per-event (row_result)Flat monthly price (as observed on the Apify Store on 2026-07-26)Pay-per-event (as observed on the Apify Store on 2026-07-26)
Login required for public dataNo — guest token onlyClaims "No Authentication Required" (as observed on the Apify Store on 2026-07-26)Claims no login required (as observed on the Apify Store on 2026-07-26)
Reply/thread extraction✅ Via getReplies (needs your own cookies)Claims reply threading support (as observed on the Apify Store on 2026-07-26)Not documented

If your use case is feeding structured data to an LLM, the derived-metrics row is the decision-maker — recomputing engagement ratios inside your own pipeline after the fact is extra code and extra failure surface that this Actor removes by doing it at scrape time. Neither competitor documents doing the same.

When another tool might suit you better

If your workflow genuinely needs follower or following lists — not just profile metadata — apidojo/twitter-user-scraper documents that capability (as observed on the Apify Store on 2026-07-26) and this Actor does not implement it at all. Likewise, if you need to reach deep historical archives across a wide date range on a single profile, delicious_zebu/advanced-x-twitter-profile-scraper documents date-range splitting (day/week/month) specifically built to defeat X's search result limits (as observed on the Apify Store on 2026-07-26); this Actor paginates the standard UserTweets timeline instead, which is simpler to run but was not built for exhaustive historical backfill.

Twitter/X Profile Scraper Plus within the Scrapio data stack

Twitter/X Profile Scraper Plus is Scrapio's only X/Twitter Actor — it covers profiles, tweets and replies on that one platform. For other platforms in the same account, use Instagram-Followers-Scraper-With-Lead-Enrichment or Instagram-Following-Scraper-With-Lead-Enrichment for Instagram network data, Facebook-Page-Posts-&-Comments-Scraper or Facebook-Group-Posts-&-Engagement-Scraper for Facebook, TikTok-Trending-Scraper-With-Trend-Insights for TikTok, and Reddit-Comments-and-Replies-Scraper for Reddit. For enriching any of these outputs with a contact channel, Website-Contact-&-Email-Extractor pulls emails from a domain.


Why do developers and data teams scrape Twitter/X?

🏢 Lead generation and influencer marketing teams

Sales and influencer-marketing teams feed a list of handles or profile URLs into startUrls, enable onlyUserInfo, and get back one clean row per prospect with followersCount, followingCount, location, website, description (bio) and professionalCategory. The followerFollowingRatio field is a fast filter for spotting accounts with real audiences rather than follow-for-follow accounts, and website is often the fastest path to an outbound domain for further enrichment before a CRM import.

📊 AI training data and RAG indexing

The description (bio) field on profiles and the text field on tweets are the high-information natural-language fields worth indexing for RAG — both come back as plain typed strings, not HTML fragments requiring cleanup. For RAG enrichment, pairing a profile's description with its most recent, highest-engagement tweets (filter on minFavorites/minRetweets) gives an agent grounded context about who an account is and what it discusses. For training data, hashtags and mentions arrays are consistently structured across every row, unlike free-text extraction from a rendered page.

📱 Competitive and market intelligence

Point the Actor at competitor or industry-figure handles on a schedule and track followersCount, tweetsPerDay and engagementRate over successive runs. A jump in tweetsPerDay or a spike in engagementRate on new tweets is a concrete, field-level signal of a campaign or announcement worth investigating, without watching the timeline manually.

🔬 Research and academic use

Public-data researchers use keywords, language, start/end and the minimum-engagement filters to build a bounded, reproducible tweet corpus for a single account or a small set of accounts, with lang letting studies restrict to a single language. All data returned is limited to what X exposes to a logged-out viewer.

🎥 Product and SaaS development

Products that offer "connect your X account" style enrichment, influencer directories, or social-proof widgets can call this Actor as their backend data source, mapping profileImageUrl, verifiedType and followersCount directly into a UI without building and maintaining a scraper of their own.


🍚 Input Parameters

All 23 input parameters, in the exact order defined in the Actor's input schema. None are marked required at the schema level, but the Actor logs a warning and exits with zero results if both startUrls and twitterHandles are empty.

ParameterRequiredTypeDescriptionExample Value
startUrlsNoarrayList of Twitter/X profiles. Accepts full URLs (https://x.com/elonmusk), @handles, plain usernames, or numeric user IDs. Required if twitterHandles is empty.["https://x.com/elonmusk", "nasa"]
twitterHandlesNoarrayList of usernames without the @ (e.g. elonmusk). Merged with startUrls. Required if startUrls is empty. Default [].["OpenAI", "apify"]
maxItemsNointegerHard cap on total rows written across the whole run (profiles + tweets + replies). Minimum 1, default 10.50
onlyUserInfoNobooleanWhen on, emits exactly one clean flat profile record per account (followers, following, verification, bio, website, join date, pinned tweet, derived metrics) and skips tweets entirely. Default false.true
includeUserInfoNobooleanWhen on (and onlyUserInfo is off), emits one flat profile record per account first, then its tweets. Default false.true
startNostringLower bound for tweet date. Absolute (YYYY-MM-DD) or relative (7 days). Empty = no lower bound.2026-01-01
endNostringUpper bound for tweet date. Absolute (YYYY-MM-DD) or relative (1 day). Empty = no upper bound.1 day
keywordsNoarrayKeep only tweets whose text contains at least one of these terms (case-insensitive). Empty = no keyword filter. Default [].["launch", "funding"]
excludeKeywordsNoarrayDrop tweets whose text contains any of these terms (case-insensitive). Default [].["giveaway"]
languageNostringKeep only tweets in this X-detected BCP-47 language code (e.g. en, es, ja). Empty = any language.en
minFavoritesNointegerKeep only tweets with at least this many likes. Minimum 0, default 0.100
minRetweetsNointegerKeep only tweets with at least this many retweets. Minimum 0, default 0.20
minRepliesNointegerKeep only tweets with at least this many replies. Minimum 0, default 0.5
excludeRepliesNobooleanDrop tweets that are replies to another tweet (keeps only originals, quotes and retweets). Default false.true
includeNativeRetweetsNobooleanWhen off, native retweets (text starts with RT @) are dropped. Only reliably present for the last ~7-10 days. Default false.false
onlyImagesNobooleanKeep only tweets that contain at least one photo. Default false.true
onlyVideosNobooleanKeep only tweets that contain a video or animated GIF. Default false.false
hasMediaNobooleanKeep only tweets that contain at least one media item (photo, video or GIF). Default false.false
getRepliesNobooleanFetch replies to each qualifying tweet via the TweetDetail endpoint. Requires authToken + csrfToken cookies. Default false.true
minReplyCountNointegerOnly fetch replies for tweets whose reply count is at least this value. Minimum 0, default 0.10
authTokenNostring (secret)Value of the auth_token cookie from x.com (devtools → Application → Cookies). Required only for getReplies."<your auth_token cookie>"
csrfTokenNostring (secret)Value of the ct0 cookie from x.com. Required only for getReplies."<your ct0 cookie>"
proxyConfigurationNoobjectApify Proxy configuration. Recommended for reliability against rate limits.{ "useApifyProxy": true }

Example input (JSON)

{
"startUrls": ["https://x.com/elonmusk", "nasa"],
"twitterHandles": [],
"maxItems": 30,
"onlyUserInfo": false,
"includeUserInfo": true,
"start": "7 days",
"end": "",
"keywords": [],
"excludeKeywords": [],
"language": "en",
"minFavorites": 50,
"minRetweets": 0,
"minReplies": 0,
"excludeReplies": false,
"includeNativeRetweets": false,
"onlyImages": false,
"onlyVideos": false,
"hasMedia": false,
"getReplies": false,
"minReplyCount": 0,
"proxyConfiguration": { "useApifyProxy": true }
}

Supported URL types and input formats

startUrls and twitterHandles are merged into a single deduplicated target list before scraping. The Actor's normalize_input function accepts, per entry:

  • A full profile URLhttps://x.com/elonmusk or https://twitter.com/elonmusk, with or without www.; the handle is extracted with a regex against the x.com/twitter.com host.
  • An @handle or plain handle@elonmusk or elonmusk; the leading @ is stripped automatically.
  • A numeric user ID — a string of digits (e.g. 44196397) is passed straight through and resolved via the X user-lookup endpoint instead of UserByScreenName.

Mixed input is fully supported in one run — startUrls: ["https://x.com/nasa"] alongside twitterHandles: ["elonmusk"] scrapes both accounts.


📦 Output Format

Every row is typed, flat JSON — no nested profile object to unwrap. type distinguishes a profile row ("profile") from a tweet row ("tweet") or a reply row ("reply"); isReply and isChild further mark replies. Results are exportable from the Apify dataset as JSON, CSV, Excel, XML or HTML Table.

The Actor's default dataset view surfaces 46 columns as a merged table across both entity types. The row itself carries more: the profile-building function writes 34 keys per profile row, and the tweet-shaping function writes 32 keys per tweet or reply row. Fields present in the row but not shown in the default view are: isChild, createdAtRaw, professionalType, defaultProfile, defaultProfileImage and bioEntities on profile rows; isChild, createdAtRaw, isQuote, conversationId, inReplyToScreenName and links on tweet/reply rows. Open a row in the dataset's JSON view (or download the full dataset) to see every key.

Output for a profile record

{
"type": "profile",
"isChild": false,
"isReply": false,
"userId": "44196397",
"screenName": "elonmusk",
"name": "Elon Musk",
"profileUrl": "https://x.com/elonmusk",
"description": "...",
"followersCount": 229033543,
"followingCount": 1226,
"tweetCount": 89153,
"listedCount": 165176,
"likesCount": 182734,
"mediaCount": 4211,
"verified": false,
"isBlueVerified": true,
"verifiedType": "Blue",
"protected": false,
"location": "...",
"website": "https://...",
"joinedAt": "2009-06-02T20:12:29Z",
"createdAtRaw": "Tue Jun 02 20:12:29 +0000 2009",
"profileImageUrl": "https://pbs.twimg.com/profile_images/....jpg",
"profileBannerUrl": "https://pbs.twimg.com/profile_banners/...",
"pinnedTweetId": "...",
"professionalCategory": null,
"professionalType": null,
"defaultProfile": false,
"defaultProfileImage": false,
"bioEntities": { "description": { "urls": [] } },
"followerFollowingRatio": 186813.657,
"accountAgeDays": 6240,
"tweetsPerDay": 14.29,
"scrapedAt": "2026-07-26T00:00:00Z"
}

Output for a tweet or reply record

{
"type": "tweet",
"isChild": false,
"isReply": false,
"id": "1519480761749016577",
"url": "https://x.com/elonmusk/status/1519480761749016577",
"text": "...",
"createdAt": "2022-04-28T00:56:58Z",
"createdAtRaw": "Thu Apr 28 00:56:58 +0000 2022",
"likeCount": 4289223,
"retweetCount": 594435,
"replyCount": 170050,
"quoteCount": 167104,
"bookmarkCount": 21112,
"viewCount": 123456789,
"lang": "en",
"isQuote": false,
"conversationId": "1519480761749016577",
"userId": "44196397",
"screenName": "elonmusk",
"name": "Elon Musk",
"profileUrl": "https://x.com/elonmusk",
"parentTweetId": null,
"inReplyToScreenName": null,
"hashtags": [],
"mentions": [],
"links": [],
"mediaUrls": [],
"videoUrls": [],
"mediaType": null,
"mediaCount": 0,
"engagementRate": 0.0421,
"scrapedAt": "2026-07-26T00:00:00Z"
}

A reply row has the identical shape with type: "reply", isChild: true, isReply: true, and parentTweetId set to the tweet it replies to. Fields that are genuinely unavailable come back as null rather than a fabricated placeholder value — for example viewCount (and therefore engagementRate) is null when X does not return a view count for that tweet, and professionalCategory is null for accounts without an X professional category.

Schema stability and export options

Field names are fixed by this Actor's own row-building code (build_profile_record and _shape_tweet in the source), so the schema does not shift just because X changes its front end — only if X removes the underlying GraphQL field entirely, in which case that key returns null instead of disappearing. Datasets are downloadable from the Apify Console or the Apify API in JSON, CSV, Excel, XML and HTML Table formats, the standard export set for every Apify dataset.


💡 Twitter Scraper — Extract Profiles, Tweets and Replies Strategy Guide

🎯 Strategy 1: Real-time enrichment pipeline

Trigger a run from your CRM or lead-gen tool whenever a new prospect handle comes in: pass a single entry in startUrls, set onlyUserInfo: true, and read back one row with followersCount, website, description and professionalCategory. Append those fields to the prospect's CRM record via the Apify API response or a downstream webhook consumer. Because onlyUserInfo returns exactly one row per account, this pattern costs one row_result charge per prospect enriched.

🎯 Strategy 2: Scheduled monitoring and alerting

Set up an Apify schedule to re-run the Actor daily against a fixed handle list with includeUserInfo: true. Diff each new run's followersCount, tweetsPerDay and engagementRate against the previous run's dataset (by userId), and alert when the delta crosses a threshold you define — for example a sudden jump in tweetsPerDay on a competitor account. The Actor itself has no built-in diffing; the comparison happens in your own scheduled pipeline against two dataset snapshots.

🎯 Strategy 3: Bulk dataset build

For a research or training corpus, put your full account list in twitterHandles, set maxItems to the total row budget for the run, and apply start/end plus the minimum-engagement filters to bound the corpus. Export the finished dataset as CSV or JSON directly from the Apify Console for downstream loading into a database or notebook. No concurrency limit is documented for this Actor beyond the platform-wide limits of your Apify plan.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentSingle-lead CRM enrichmentOn-demand, one target per runJSON row via API response
Scheduled monitoringTracking accounts over timeRecurring Apify scheduleDataset diffed run-over-run
Bulk dataset buildResearch or training corporaOne run, large target listCSV/JSON export

ScraperWhat it extracts
Instagram-Followers-Scraper-With-Lead-EnrichmentInstagram follower lists with lead-enrichment fields
Instagram-Following-Scraper-With-Lead-EnrichmentInstagram following lists with lead-enrichment fields
Facebook-Page-Posts-&-Comments-ScraperFacebook page posts and their comments
Facebook-Group-Posts-&-Engagement-ScraperFacebook group posts and engagement metrics
TikTok-Trending-Scraper-With-Trend-InsightsTikTok trending videos with trend metadata
Reddit-Comments-and-Replies-ScraperReddit comment threads and replies
Website-Contact-&-Email-ExtractorContact emails from a domain — pairs well with website on a profile row

How to integrate Twitter/X Profile Scraper Plus with your stack

Twitter/X Profile Scraper Plus works with any language or tool that can call the Apify API — the Actor itself has no separate API surface beyond the standard Apify run and dataset endpoints.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"startUrls": ["https://x.com/elonmusk", "nasa"],
"maxItems": 30,
"includeUserInfo": True,
"minFavorites": 50,
"language": "en",
"proxyConfiguration": {"useApifyProxy": True},
}
run = client.actor("twitter-profile-scraper-plus").call(run_input=run_input)
rows = []
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
rows.append(item)
import csv
with open("twitter_export.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=sorted({k for r in rows for k in r}))
writer.writeheader()
writer.writerows(rows)
print(f"Exported {len(rows)} rows to twitter_export.csv")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const input = {
startUrls: ['https://x.com/elonmusk', 'nasa'],
maxItems: 30,
includeUserInfo: true,
minFavorites: 50,
};
const run = await client.actor('twitter-profile-scraper-plus').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} rows`);
console.log(items.slice(0, 3));

Async and scheduled pipelines

For large target lists, call .start() instead of .call() on either client to fire the run without blocking, then poll client.run(runId).get() or client.dataset(datasetId).listItems() once the run's status reaches SUCCEEDED. For recurring jobs, use an Apify schedule so the Actor runs on a cron-style interval without a client process running at all; the resulting dataset is available through the same API on completion.


🎯 Who Needs Twitter/X Profile Scraper Plus? (Use Cases & Industries)

🏢 Sales and lead-generation teams

A sales team scrapes a list of prospect handles with onlyUserInfo: true and pulls website, location and followersCount straight into an outbound sequencing tool, using followerFollowingRatio to deprioritize low-quality accounts before an SDR ever opens a profile manually.

📊 AI and RAG engineering teams

Teams building a retrieval index over public social commentary use description and text as the embedding source, with hashtags and mentions as structured metadata filters, avoiding an HTML-parsing step entirely.

📱 Competitive intelligence and marketing teams

Marketing teams track a fixed list of competitor and industry handles on a schedule, watching tweetsPerDay and engagementRate for shifts that precede or follow a product announcement.

🔬 Researchers

Academic and social-science researchers pull a bounded, reproducible set of public tweets for a small account list using start, end, language and the engagement-threshold filters, working only with data any logged-out viewer could see.

🎥 Product and SaaS builders

Teams building an influencer directory, a social-proof widget, or an "X-connected" enrichment feature call this Actor as their backend, mapping profileImageUrl, verifiedType and followersCount directly into their own product UI.


Scraping publicly accessible data from X is generally lawful in the United States; in hiQ Labs, Inc. v. LinkedIn Corp. (9th Cir. 2019), the Ninth Circuit held that scraping data a website makes available to a logged-out visitor likely does not violate the Computer Fraud and Abuse Act. That precedent concerns public-data access, not X's own Terms of Service — scraping in violation of X's Terms of Service is a potential contract/civil matter between the scraper and X, not a criminal one, and X can still act against an account or IP address it identifies as scraping. Because this Actor returns personal data about individual users — names, handles, bios, locations, follower graphs — anyone storing or processing that data is subject to data-protection obligations such as the GDPR (EU) or CCPA (California) wherever those laws apply to the data subject. Twitter/X Profile Scraper Plus returns only publicly accessible data. What you do with that data is your responsibility — consult legal counsel for commercial applications involving personal data.


❓ Frequently asked questions

Does Twitter/X Profile Scraper Plus work without a Twitter/X account?

Yes for profiles and tweets — the Actor authenticates with a guest token it fetches automatically, so no X login is required. An X account and its authToken/csrfToken cookies are only read when getReplies is enabled, since reply threads are fetched through an endpoint that requires a logged-in session.

How does Twitter/X Profile Scraper Plus handle X's anti-scraping measures?

It discovers X's current GraphQL query IDs and bearer token directly from X's own client JavaScript on every run (falling back to two hardcoded query IDs if discovery fails), and rotates through Apify Proxy when proxyConfiguration.useApifyProxy is enabled. Failed requests to a given endpoint are logged and the run moves on rather than retrying indefinitely.

Can I run Twitter/X Profile Scraper Plus at scale without getting blocked?

The Actor caps itself at 40 pages of the UserTweets timeline (50 tweets requested per page) for any single account before moving to the next target, regardless of maxItems — this is a hard limit in the Actor's own pagination loop, not an X-imposed number the Actor documents. No uptime or success-rate figure is published for this Actor.

How fresh is the data Twitter/X Profile Scraper Plus returns?

Every run performs a live fetch against X's GraphQL endpoints — nothing is served from a cache. Each row also carries its own scrapedAt timestamp recorded at the moment that row was built.

Which fields work best for AI training and RAG indexing?

For RAG, index description (a profile's bio) and text (a tweet's full body) — both are plain typed strings requiring no HTML cleanup. For training data, hashtags and mentions are the most consistently structured fields across every row, since they are always arrays (possibly empty) rather than optional nested objects.

Are follower or following lists included in the output?

No. This Actor does not implement follower-list or following-list extraction at all — only the counts (followersCount, followingCount) on a profile row. Actors such as apidojo/twitter-user-scraper document that capability separately (as observed on the Apify Store on 2026-07-26).

What happens to my personal data (cookies) when I use getReplies?

authToken and csrfToken are defined in the input schema with isSecret: true, which means the Apify platform encrypts and masks their values in logs and the Console UI; they are used only to authenticate the TweetDetail requests this Actor makes on your behalf during that run.

Does Twitter/X Profile Scraper Plus work with Claude, ChatGPT, and other AI agent tools?

There is no dedicated MCP server for this Actor. It is callable as a standard Apify Actor run by any agent framework that can call the Apify API — every response is typed JSON, so no HTML parsing step is needed before passing a result into an LLM context window.

How does Twitter/X Profile Scraper Plus compare to other Twitter scrapers?

apidojo/twitter-user-scraper documents follower/following/retweeter list extraction and event-based pricing per query type (as observed on the Apify Store on 2026-07-26) — stronger if network-graph data is your goal. delicious_zebu/advanced-x-twitter-profile-scraper documents date-range splitting built to reach deep historical archives beyond what a standard timeline scrape returns (as observed on the Apify Store on 2026-07-26) — stronger for exhaustive backfills on a single account. Twitter/X Profile Scraper Plus's advantage is the locally computed derived-metrics set (followerFollowingRatio, accountAgeDays, tweetsPerDay, engagementRate), which none of the three competitors document providing.


ℹ️ Disclaimer

Twitter/X Profile Scraper Plus extracts only publicly available data from Twitter/X. This tool is intended for lawful use cases only. Users are responsible for complying with Twitter/X's Terms of Service and applicable data protection laws in their jurisdiction.