X (Twitter) Retweeters & Quote Tweets Scraper avatar

X (Twitter) Retweeters & Quote Tweets Scraper

Pricing

from $0.25 / 1,000 retweeter profiles

Go to Apify Store
X (Twitter) Retweeters & Quote Tweets Scraper

X (Twitter) Retweeters & Quote Tweets Scraper

Find who retweeted or quoted a public X (Twitter) post. Export account profiles, follower counts, verification, and quote-tweet text for campaign and audience research. Paste Tweet URLs or IDs and download JSON, CSV, or Excel. No X login or X API key required.

Pricing

from $0.25 / 1,000 retweeter profiles

Rating

5.0

(1)

Developer

ArjunAI Data

ArjunAI Data

Maintained by Community

Actor stats

1

Bookmarked

41

Total users

20

Monthly active users

8 hours ago

Last modified

Features

Limited permissions

Share

Find the public accounts that retweeted or quoted an X (Twitter) post. Export their profiles and the available quote-tweet text to research campaign reach and the people sharing a post. Paste Tweet URLs or IDs, choose retweeters, quote authors, or both, and download JSON, CSV, or Excel.

🚀 Quick start

  1. Paste up to 50 unique Tweet URLs or IDs.
  2. Choose retweeters, quote-tweet authors, or both.
  3. Set the per-Tweet limits and click Start.
  4. Review account profiles and quote context, then export the Dataset.
{
"tweets": [
"https://x.com/SpaceX/status/2099211149476569207"
],
"resultType": "retweeters",
"maxRetweetersPerTweet": 20
}

🔗 Ready-to-run examples

Open an example, review its input and spending limit, then run it in your Apify account.

📊 Results

Each row represents one account for one source Tweet and engagement type. Quote-author results include the first matching quote Tweet found for that author; they are not an archive of every quote Tweet.

Each successful Dataset item represents one visible engagement user:

  • engagement_type: "retweet" — the user appeared in X's Retweeters timeline.
  • engagement_type: "quote" — the user authored a visible post quoting the source post.

Quote results also contain the quote-post ID, URL, text, timestamp, language, engagement counts, view count, entities, sensitivity flag, and available media metadata. Core values are flat for straightforward filtering and CSV/Excel exports; quote_media is an array because one quote post can contain multiple media items.

All quote_*_count values describe engagement on the quote post itself, not on the original source post. For example, quote_retweet_count is how many times that quote post was retweeted.

Normalized account and quote timestamps use ISO 8601 in UTC. When includeRawUser is enabled, raw_user keeps X's original native timestamp.

The Overview Dataset view emphasizes identity, audience metrics, quote context, and clickable links. Use Detailed for the complete normalized schema and Apify's built-in All fields view for the raw Dataset record.

Diagnostic rows use one of these statuses:

  • invalid_input — the submitted value is not a numeric post ID or supported X / Twitter status URL; other valid inputs continue normally.
  • not_found — the source post was deleted, unavailable, or does not exist.
  • no_results — the source post exists, but X returned no visible users for that engagement type.
  • partial — earlier pages were stored before a later request failed.
  • request_failed — the request failed before a user result was stored.
  • charge_limit_reached — the run stopped at the user's maximum cost setting.

Diagnostic rows are not charged as user results.

Input

FieldDescriptionDefault
tweetsUp to 50 unique numeric post IDs or full x.com / twitter.com status URLs. Duplicate post IDs are requested once; invalid values are reported without blocking valid posts.Required
resultTyperetweeters, quote_users, or both.retweeters
maxRetweetersPerTweetMaximum unique retweeters per source post. Use 0 for all available profiles.100
maxQuoteUsersPerTweetMaximum unique quote users per source post. Use 0 for all available profiles.100
includeRawUserAdds the complete native X user object as raw_user.false

Posts are processed sequentially. Each run accepts up to 50 unique post IDs after equivalent URLs and duplicate IDs are normalized. Split larger batches across multiple runs. More posts and larger per-post limits increase runtime and cost.

Choose retweeters, quote authors, or both

Use resultType: "retweeters" for the people who retweeted a post, "quote_users" for the people who quoted it, or "both" for both groups. In both mode, the same person can appear once in each group.

For a quote-author example, use the same Tweet from Quick start with:

{
"tweets": [
"https://x.com/SpaceX/status/2099211149476569207"
],
"resultType": "quote_users",
"maxQuoteUsersPerTweet": 10
}

💰 Pricing

This Actor uses pay-per-event pricing. A successfully stored retweeter produces one retweeter-result event. A successfully stored quote-tweet author, including the visible quote-post context, produces one quote-user-result event.

Apify planRetweeter / resultRetweeters / 1,000Quote author / resultQuote authors / 1,000
Free$0.00050$0.50$0.00100$1.00
Bronze$0.00040$0.40$0.00080$0.80
Silver$0.00030$0.30$0.00070$0.70
Gold, Platinum, and Diamond$0.00025$0.25$0.00060$0.60

An apify-actor-start event costs $0.00005 per run. On the Free tier, 100 retweeters cost approximately $0.05005, 100 quote-tweet authors cost approximately $0.10005, and 100 of each cost approximately $0.15005, including the single start event. No result event is charged for no_results, failure, partial-status, or charge-limit status rows. Platform usage is included in the configured event prices.

Use Apify's Maximum cost per run setting to control spending. Once that limit is reached, the Actor stores only the affordable result prefix and stops before requesting another page or processing another source post.

Availability and partial results

X may return fewer accounts than the retweet or quote count shown on the post. Deleted, protected, suspended, or otherwise unavailable accounts may be missing. Quote-search coverage is not guaranteed to include every quote Tweet.

Saved results remain available if a later request fails. Status rows explain missing posts, empty results, partial collection, request failures, and spending limits. A complete technical failure can cause the run to fail; it does not erase already saved data.

FAQ

Why is the result count lower than the number shown on X?

X does not always expose every engager through its timelines. Deleted, private, suspended, withheld, and otherwise unavailable accounts can also reduce the visible count.

Are quote-tweet results exhaustive?

No. Quote-author results depend on what X makes available through search. The Actor cannot guarantee every quote Tweet shown in X counters.

Can one person appear more than once?

Within one source post and engagement type, no. In both mode, the same person may appear once as a retweeter and once as a quote-tweet author because those are different actions.

Do I need my own X account or proxy?

No. Users do not provide X credentials, cookies, API keys, or proxy settings.

What happens when a request fails during pagination?

Already stored pages remain available. The Dataset receives a clear partial or failure status row. A complete technical failure causes the run itself to fail.

Result examples

The examples below were captured from successful runs on November 10, 2026. Counts and availability can change. They correspond to the Quick start or separately labeled input above.

Retweeter profile

{
"status": "success",
"engagement_type": "retweet",
"requested_input": "https://x.com/SpaceX/status/2099211149476569207",
"tweet_id": "2099211149476569207",
"tweet_url": "https://x.com/SpaceX/status/2099211149476569207",
"user_id": "28850283",
"screen_name": "KatarinaVidovic",
"profile_url": "https://x.com/KatarinaVidovic",
"name": "Katarina Vidovic",
"description": "I'm A Concerned American 🇺🇸 A Momma & Grandmother. $SPCX & $TSLA shareholder ⚡️| Online security advocate🛡️ | 🚫Scams.",
"description_entities": {
"description": {}
},
"profile_description_language": "en",
"location": "SpaceX",
"created_at": "2009-04-04T19:08:21Z",
"followers_count": 1086,
"friends_count": 1755,
"tweets_count": 12483,
"media_count": 303,
"favourites_count": 262655,
"verified": false,
"is_blue_verified": false,
"protected": false,
"possibly_sensitive": false,
"profile_interstitial_type": "",
"can_media_tag": false,
"professional_type": "",
"professional_categories": [],
"affiliation_name": "",
"affiliation_url": "",
"affiliation_badge_url": "",
"pinned_tweet_ids": [
"1211373530635476992"
],
"account_label": null,
"profile_image_shape": "Circle",
"subscription_eligible": false,
"bio_urls": [],
"bio_mentions": [],
"bio_hashtags": [],
"website_url": "",
"profile_image_url": "https://pbs.twimg.com/profile_images/1371160517075685376/gq5YFrSS_normal.jpg",
"profile_banner_url": "https://pbs.twimg.com/profile_banners/28850283/1615745118"
}

Quote author and quote Tweet

{
"status": "success",
"engagement_type": "quote",
"requested_input": "https://x.com/SpaceX/status/2099211149476569207",
"tweet_id": "2099211149476569207",
"tweet_url": "https://x.com/SpaceX/status/2099211149476569207",
"user_id": "832218563964444672",
"screen_name": "spcxGOD",
"profile_url": "https://x.com/spcxGOD",
"name": "Panke",
"description": "SpaceX Maxi Grok Maxi\nSharing my Thoughts. Human Not a SI.\n$SPCX alpha you won't find anywhere else → https://t.co/EmOEd5Em7W · TikTok/IG/YT @spcxGOD",
"description_entities": {
"description": {
"urls": [
{
"display_url": "panke.app",
"expanded_url": "http://panke.app",
"indices": [
102,
125
],
"url": "https://t.co/EmOEd5Em7W"
}
]
},
"url": {
"urls": [
{
"display_url": "panke.app",
"expanded_url": "http://panke.app",
"indices": [
0,
23
],
"url": "https://t.co/EmOEd5Em7W"
}
]
}
},
"profile_description_language": "en",
"location": "Space",
"created_at": "2017-02-16T13:22:22Z",
"followers_count": 18428,
"friends_count": 3685,
"tweets_count": 42942,
"media_count": 5384,
"favourites_count": 19067,
"verified": false,
"is_blue_verified": true,
"protected": false,
"possibly_sensitive": false,
"profile_interstitial_type": "",
"can_media_tag": true,
"professional_type": "",
"professional_categories": [],
"affiliation_name": "",
"affiliation_url": "",
"affiliation_badge_url": "",
"pinned_tweet_ids": [
"2119819831734051216"
],
"account_label": null,
"profile_image_shape": "Circle",
"subscription_eligible": true,
"bio_urls": [
"http://panke.app"
],
"bio_mentions": [],
"bio_hashtags": [],
"website_url": "http://panke.app",
"profile_image_url": "https://pbs.twimg.com/profile_images/2096657055306416128/5fAtJb5j_normal.jpg",
"profile_banner_url": "https://pbs.twimg.com/profile_banners/832218563964444672/1793267716",
"quote_tweet_id": "2099214419964174508",
"quote_tweet_url": "https://x.com/spcxGOD/status/2099214419964174508",
"quote_text": "Good livestream.\n\nTesla holders if you want to be excited about SpaceX livestreams as well that happen every other day.\n\nJust rotate 50% of your tesla holding to $SPCX \n\nIt will be good for you",
"quote_created_at": "2026-09-13T19:11:33Z",
"quote_language": "en",
"quote_reply_count": 1,
"quote_retweet_count": 0,
"quote_like_count": 8,
"quote_quote_count": 0,
"quote_bookmark_count": 0,
"quote_view_count": 1065,
"quote_possibly_sensitive": false,
"quote_hashtags": [],
"quote_mentions": [],
"quote_urls": [],
"quote_media": []
}

API and integrations

Use your Apify API token in the request header.

curl -X POST \
"https://api.apify.com/v2/actors/arjun_code~x-twitter-retweeters-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tweets":["https://x.com/SpaceX/status/2099211149476569207"],"resultType":"retweeters","maxRetweetersPerTweet":20}'

This starts a run and returns its ID. After the run finishes, use its defaultDatasetId to download the results. You can also save the input as a Task, schedule it, or use Apify integrations.

Continue your research

Privacy and support

The Actor processes information exposed by X for public posts and profiles. Internal cookies, proxy details, and authentication data are never written to the result Dataset.

This independent Actor is not affiliated with, endorsed by, or sponsored by X Corp. Use the data lawfully and follow X, Apify, and applicable privacy requirements.

If a run fails or X changes its response format, open an issue on the Actor page and include the Apify run ID, input, and expected behavior. Never include passwords, cookies, tokens, or other secrets.

⌂ 换网址