X (Twitter) Retweeters & Quote Tweets Scraper
Pricing
from $0.25 / 1,000 retweeter profiles
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
Maintained by CommunityActor stats
1
Bookmarked
41
Total users
20
Monthly active users
22 minutes ago
Last modified
Categories
Features
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
- Paste up to 50 unique Tweet URLs or IDs.
- Choose retweeters, quote-tweet authors, or both.
- Set the per-Tweet limits and click Start.
- 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.
- Export X Post Retweeters
- Export X Quote-Tweet Authors
- Export Retweeters from Multiple Campaign Posts
📊 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
| Field | Description | Default |
|---|---|---|
tweets | Up 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 |
resultType | retweeters, quote_users, or both. | retweeters |
maxRetweetersPerTweet | Maximum unique retweeters per source post. Use 0 for all available profiles. | 100 |
maxQuoteUsersPerTweet | Maximum unique quote users per source post. Use 0 for all available profiles. | 100 |
includeRawUser | Adds 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 plan | Retweeter / result | Retweeters / 1,000 | Quote author / result | Quote 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
- Collect comments and reply authors with Replies Scraper
- Get post details, media, and Articles with Media Downloader
- Export audience profiles with Followers & Following
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.