Twitter Profile Scraper: Pinned Tweet Details avatar

Twitter Profile Scraper: Pinned Tweet Details

Pricing

$19.99/month + usage

Go to Apify Store
Twitter Profile Scraper: Pinned Tweet Details

Twitter Profile Scraper: Pinned Tweet Details

Twitter Profile Scraper extracts detailed data from any public X (Twitter) profile, including bio, followers/following counts, profile image, join date, location, website, and recent tweet metadata. Ideal for research, influencer analysis, audience insights, and automated profile data collection.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

1

Bookmarked

57

Total users

1

Monthly active users

18 hours ago

Last modified

Share

X Scraper — Tweets, Thread Reconstruction and Quote Context

Twitter Profile Scraper: Pinned Tweet Details scrapes tweets from any public X (Twitter) profile and reconstructs the conversation context around them — full quoted-tweet content resolved inline, and the author's own multi-tweet threads clustered into order — all without logging in for the base scrape. It's built for content researchers, social listening teams, and anyone who needs to read a thread top-to-bottom or see exactly what a quote-tweet is reacting to, not just a flat list of disconnected tweets.

What is Twitter Profile Scraper: Pinned Tweet Details?

Twitter Profile Scraper: Pinned Tweet Details is an Apify Actor that scrapes a profile's tweets and derives thread and quote-tweet structure from data already fetched in the same response — no extra requests for either feature. No X login is required for the base tweet capture; login cookies are only needed if you enable reply fetching. One honest note on the name: despite "Pinned Tweet Details" in the Actor's title, the current source code has no dedicated pinned-tweet extraction logic — its real, verified differentiators are quote-tweet resolution and self-thread reconstruction, both described below. Key capabilities:

  • Capture tweets from one or more profiles by URL or handle
  • Resolve every quote-tweet (is_quote_status: true) inline into a quotedTweet{} object — full text, author, and media — at zero extra request cost
  • Cluster the author's own consecutive tweets sharing a conversation_id_str into ordered threads (threadId, threadPosition, isThreadStart, isThreadEnd), derived only from what was actually captured
  • Filter by date range, image-only tweets, and native-retweet inclusion
  • Optionally fetch reply context for qualifying tweets (requires login cookies) and emit a profile-about record per user

What data can I extract with Twitter Profile Scraper: Pinned Tweet Details?

FieldExample ValueUse Case
full_text / created_at"Just shipped a new feature..." / "2026-07-20T10:00:00.000Z"Read the tweet's content and timing
favorite_count / retweet_count / reply_count / quote_count4200 / 380 / 92 / 45Core engagement metrics
is_quote_status / quotedTweettrue / {"full_text": "...", "user": {...}}See exactly what a quote-tweet is reacting to, resolved inline
threadId / threadPosition / isThreadStart / isThreadEnd"1234567890" / 2 / false / falseReconstruct a multi-tweet thread in order
conversation_id_str"1234567890"The raw conversation grouping key behind thread reconstruction
user / screen_name / is_blue_verifiedprofile object / "elonmusk" / trueIdentify the tweet's author
entities / extended_entitieshashtags/mentions/media objectsFull structured tweet content
aboutDataprofile-about objectProfile overview data (opt-in, one record per user)
type / isReply / parentTweetId"reply" / true / parent tweet IDDistinguish reply rows when reply context is enabled

Real thread and quote reconstruction, honestly scoped

quotedTweet is resolved inline from the same response the base tweet capture already fetched — no extra request, and the quoted tweet's full text, author, and media are genuine, not summarized or guessed. threadId/threadPosition/isThreadStart/isThreadEnd cluster the author's own consecutive tweets sharing a conversation_id_str, but this is explicitly scoped to what was actually captured in this run — X exposes no thread-depth API, so if maxTweetsToCapture cuts off partway through a long thread, the reconstructed thread will honestly reflect only the captured portion, not the full original thread.

Date, media, and retweet filtering

captureStartDate/captureEndDate bound the capture to a date range. imageTweetsOnly keeps only tweets with at least one photo. includeRetweetsInCapture (off by default) drops native retweets — though this filter is honestly only effective for roughly the last 7-10 days of a profile's timeline, per the actual retweet-detection window in the source.

Why not build this yourself?

X's official API (v2) gates thread and quote-tweet context behind paid tiers with strict rate limits, and doesn't provide a ready-made self-thread clustering feature at all — you'd need to fetch the full conversation and reconstruct thread order yourself regardless of tier. Building an equivalent tool yourself means implementing that same conversation-clustering logic, plus inline quote-tweet resolution from the same response payload. All of that is already implemented in this Actor's source.

How to use data extracted from X?

Content research and thread curation

Capture a creator's tweets with reconstructSelfThreads on to read their threads in proper order without manually piecing together a conversation, using resolveQuotedTweets to see full context on any quote-tweet commentary.

Social listening and brand monitoring

Track a set of profiles' tweets with imageTweetsOnly or a date range to focus on recent visual content, using quotedTweet data to see how your brand or product is being quoted and discussed.

Market and competitive research

Compare thread structure and quote-tweet activity across competitor profiles to see who's building sustained narrative threads versus one-off posts.

AI agents and automated pipelines

An agent can call this Actor to pull a profile's tweet history with thread structure intact, using threadId/threadPosition to reconstruct and summarize multi-tweet arguments coherently rather than processing disconnected tweets.

🔼 Input sample

ParameterRequiredTypeDescriptionExample Value
threadTargetsNo (either this or threadHandles)arrayProfile URLs to capture["https://x.com/elonmusk"]
threadHandlesNo (either this or threadTargets)arrayUsernames without @["elonmusk"]
maxTweetsToCaptureNointeger (min 1)Hard cap on total items written across the run20 (default)
captureStartDate / captureEndDateNostring (date)Date-range bounds; empty = no bound"7 days" / ""
includeRetweetsInCaptureNobooleanInclude native retweets (effective for ~last 7-10 days)false (default)
imageTweetsOnlyNobooleanKeep only tweets with at least one photofalse (default)
includeProfileOverviewNobooleanEmit one profile-about record per userfalse (default)
resolveQuotedTweetsNobooleanResolve quote-tweets inline at zero extra costtrue (default)
reconstructSelfThreadsNobooleanCluster the author's own tweets into ordered threadstrue (default)
fetchReplyContextNobooleanFetch replies via TweetDetail; requires login cookiesfalse (default)
minReplyCountForContextNointeger (min 0)Only fetch replies for tweets above this reply count0 (default)
authToken / csrfTokenNo (required for reply context)stringX auth_token/ct0 cookies"(your cookies)"
proxyConfigurationNoobjectProxy config for reliability{"useApifyProxy": true}
{
"threadTargets": ["https://x.com/elonmusk"],
"maxTweetsToCapture": 50,
"resolveQuotedTweets": true,
"reconstructSelfThreads": true
}

Common pitfall: fetchReplyContext requires both authToken and csrfToken — without valid login cookies, reply fetching will fail even though the base tweet/thread/quote capture works without any login.

🔽 Output sample

Output is typed, normalized JSON — one row per tweet, reply, or profile-about record (exportable as JSON, CSV, or Excel).

{
"id_str": "1234567890123456789",
"type": "tweet",
"isChild": false,
"isReply": false,
"full_text": "Here's the second tweet in my thread on this topic.",
"created_at": "2026-07-20T10:05:00.000Z",
"tweetUrl": "https://x.com/elonmusk/status/1234567890123456789",
"favorite_count": 4200,
"retweet_count": 380,
"reply_count": 92,
"quote_count": 45,
"is_quote_status": false,
"quotedTweet": null,
"threadId": "1234567890123456780",
"threadPosition": 2,
"isThreadStart": false,
"isThreadEnd": false,
"conversation_id_str": "1234567890123456780",
"screen_name": "elonmusk",
"is_blue_verified": true,
"profileUrl": "https://x.com/elonmusk",
"scrapedAt": "2026-07-26T14:02:11.000Z"
}

All 45 fields shown above (across tweet, reply, and profile-about row types) are the Actor's real dataset columns.

How do you filter and target specific tweets?

threadTargets/threadHandles set scope — one or many profiles by URL or handle. captureStartDate/captureEndDate is the date-scope precision control. imageTweetsOnly and includeRetweetsInCapture are the closest thing to quality/content filters, narrowing to visual content or excluding retweets. Volume is controlled by maxTweetsToCapture, a hard cap across the whole run (tweets, replies, and about-records combined), and minReplyCountForContext bounds which tweets get the extra reply-fetch cost when fetchReplyContext is on.

{ "threadHandles": ["elonmusk"], "captureStartDate": "7 days", "imageTweetsOnly": true }
{ "threadTargets": ["https://x.com/example"], "fetchReplyContext": true, "minReplyCountForContext": 50, "authToken": "(cookie)", "csrfToken": "(cookie)" }
{ "threadHandles": ["elonmusk"], "reconstructSelfThreads": true, "resolveQuotedTweets": false, "maxTweetsToCapture": 100 }

▶️ Want to try other social scrapers?

Scraper NameWhat it extracts
YouTube Comments Scraper With Commenter Lead EnrichmentComparable comment-thread data with commenter enrichment for YouTube
Instagram Mentions Scraper & Sentiment AnalysisComparable brand-mention monitoring for Instagram
Reddit Comment Scraper With Author ProfileComparable thread/comment data with author enrichment for Reddit
LinkedIn Post Scraper & Comments ReactionsComparable post/comment/reaction data for LinkedIn
Facebook Posts Scraper: Performance AnalyzerComparable post-performance benchmarking for Facebook
Instagram Hashtag Scraper: Content PlannerComparable content-thread and topic research for Instagram

How to extract X data programmatically

Every run is a standard Apify Actor call — one API request with your token, JSON input, JSON results back.

Python example

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run_input = {
"threadHandles": ["elonmusk"],
"maxTweetsToCapture": 50,
"reconstructSelfThreads": True,
}
run = client.actor("<YOUR_USERNAME>/twitter-profile-scraper-pinned-tweet-details").call(run_input=run_input)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["full_text"][:60], row.get("threadPosition"))

Export to spreadsheets or CRM

Export the dataset directly as CSV or Excel, then map screen_name/tweetUrl to your CRM's contact fields and threadId/threadPosition to a content-organization column for thread curation.

Tweet text, usernames, and profile data are personal data tied to individual accounts, so GDPR and CCPA obligations apply to storing and using this data. Public X profiles and tweets are visible to any logged-out visitor, but downstream storage of individual users' content should follow applicable data-protection rules. Consult legal counsel for commercial applications involving bulk storage of personal data.

❓ FAQ

Does this Actor actually extract pinned tweet details?

No — despite "Pinned Tweet Details" in the Actor's name, the current source code has no dedicated pinned-tweet extraction logic. Its real, verified features are quote-tweet resolution and self-thread reconstruction, both documented above.

How accurate is the thread reconstruction?

It's genuinely derived from real conversation_id_str grouping, not guessed — but it's explicitly scoped to what this run actually captured. If maxTweetsToCapture cuts off partway through a long thread, the reconstructed thread reflects only the captured portion, since X exposes no thread-depth API to verify completeness against.

Does quote-tweet resolution cost extra requests?

No — the quoted tweet's full text, author, and media are resolved inline from the same response the base tweet capture already fetched.

Do I need to log into X to use this?

Not for the base tweet/thread/quote capture. Login cookies (authToken/csrfToken) are only required when fetchReplyContext is enabled.

How many tweets can I get per run?

maxTweetsToCapture (min 1, default 20) is a hard cap across the whole run, covering tweets, replies, and about-records combined.

Does Twitter Profile Scraper: Pinned Tweet Details work with Claude, ChatGPT, and AI agent frameworks?

It has no dedicated MCP server registration in this Actor's current setup, but it is callable as a standard Apify API endpoint by any agent framework that can make an authenticated HTTP request and parse JSON.

How does this compare to other X/Twitter scrapers?

No independently verifiable competitor listing could be confirmed at the time of writing, so no specific comparison is made here. This Actor's distinguishing feature is the zero-extra-cost quote-tweet resolution and self-thread reconstruction layered onto the base tweet capture.

Can I include native retweets?

Yes — set includeRetweetsInCapture to true, though the underlying detection is honestly only effective for roughly the last 7-10 days of a profile's timeline.

Conclusion

Twitter Profile Scraper: Pinned Tweet Details turns a raw tweet capture into readable conversation context — genuine inline quote-tweet resolution and self-thread reconstruction, honestly scoped to what was actually captured. It's built for content researchers and social listening teams who need to read a thread in order, not a flat disconnected tweet list. Start a run with your target profiles to get tweets, threads, and quote context back in one pass.