๐ฆ Twitter (X) User Scraper
Pricing
from $4.99 / 1,000 results
๐ฆ Twitter (X) User Scraper
Twitter (X) User Scraper: Extract public user profiles with usernames, names, bios, follower counts, following counts, locations, websites, profile URLs, and available account details. Build structured datasets for audience research, influencer discovery, competitor analysis, and lead generation.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape public Twitter / X user profiles, followers, following counts and retweeter networks at scale โ no login or API key required. Powered by the Apify platform with built-in auto proxy escalation, live result streaming and a smart fallback strategy for blocked requests.
โก Get clean, structured user data straight from
x.comโ verified status, follower/following counts, bio, location, account age, profile pictures, banners, professional badges, and an enrichedaboutpayload.
โจ Why this actor
| Other scrapers | ๐ฆ This actor | |
|---|---|---|
| Login required | Often | โ Never (optional) |
| Block handling | Manual | โ Auto direct โ datacenter โ residential |
| Live results | โ End-of-run only | โ Streamed per-user |
| Pricing | Subscription | ๐ธ Pay-per-event |
| Outputs | Single dataset | ๐ฆ Dataset + per-section KVS files |
๐ Key features
- ๐ Bulk URLs โ paste a list of profile URLs or plain usernames.
- ๐ No-proxy by default โ automatically escalates to Apify DATACENTER then RESIDENTIAL proxies (with 3 retries) only when X blocks the connection.
- ๐ก Live streaming โ every captured user is pushed to the dataset immediately, so a crash mid-run never wipes your progress.
- ๐ชช Rich profile mode โ toggle
๐ชช Include rich 'about' profileto fetch verification info, profile image shape, account creation source, etc. - ๐ป Unavailable users โ optionally surface suspended / protected accounts.
- ๐ Per-section output โ each input URL writes its own grouped JSON file
to the runโs key-value store, plus a combined
OUTPUTkey.
๐ฅ Input
| Field | Type | Default | Description |
|---|---|---|---|
๐ startUrls | array | โ | Profile URLs or @usernames. Bulk supported. |
๐ getRetweeters | bool | true | Capture retweeters / related users from the timeline. |
๐ฅ getFollowers | bool | true | Include follower count on each record. |
๐ค getFollowing | bool | true | Include friends (following) count. |
๐ชช getAbout | bool | true | Enrich with verification / account metadata. |
๐ป includeUnavailableUsers | bool | false | Surface suspended / protected accounts. |
๐ฏ maxItems | int | 100 | Cap users collected per source URL. |
โฑ๏ธ requestDelay | number | 1.0 | Float seconds between pagination requests. |
๐ authToken | string (secret) | โ | Optional X auth_token cookie. |
๐ก๏ธ csrfToken | string (secret) | โ | Optional X ct0 cookie. |
๐ proxyConfiguration | object | direct | Defaults to no proxy. Overrides auto-escalation. |
Example input
{"startUrls": ["https://twitter.com/elonmusk","https://x.com/openai"],"getRetweeters": true,"getFollowers": true,"getFollowing": true,"getAbout": true,"includeUnavailableUsers": false,"maxItems": 100,"requestDelay": 1.0,"proxyConfiguration": { "useApifyProxy": false }}
๐ค Output
Each record is pushed live to the default dataset.
{"inputSource": "https://twitter.com/elonmusk","type": "user","userName": "elonmusk","url": "https://x.com/elonmusk","twitterUrl": "https://twitter.com/elonmusk","id": "44196397","name": "Elon Musk","isVerified": true,"hasNftAvatar": false,"profilePicture": "https://pbs.twimg.com/profile_images/.../m8mdWZCG_normal.jpg","coverPicture": "https://pbs.twimg.com/profile_banners/44196397/1774145451","description": "https://t.co/dDtDyVssfm","location": "","followers": 239969983,"following": 1332,"protected": false,"createdAt": "Tue Jun 02 20:12:29 +0000 2009","statusesCount": 102639,"mediaCount": 4489,"favouritesCount": 227779,"listedCount": 169028,"about": {"accountBasedIn": "","locationAccurate": false,"profileImageShape": "Circle","avatarUrl": "https://pbs.twimg.com/profile_images/.../m8mdWZCG_normal.jpg","usernameChangeCount": "0","accountCreatedAt": "Tue Jun 02 20:12:29 +0000 2009","accountSource": "","verifiedSince": "-156836000000000"}}
The run also writes a per-section JSON to the key-value store
(source_01_elonmusk.json, source_02_openai.json, โฆ) and a combined
OUTPUT.json that mirrors the legacy grouped-by-name format.
๐ How to use (Apify Console)
- Log in at https://console.apify.com โ Actors.
- Open ๐ฆ Twitter (X) User Scraper.
- Paste your profile URLs into ๐ Profile URLs.
- Pick which networks / fields you want (
๐,๐ฅ,๐ค,๐ชช). - (Optional) Drop in an
authToken+csrfTokenfor tougher targets. - Hit Start.
- Watch the live log โ it will tick
๐ฅ @username โ N followersper user. - Open the Dataset or Key-value store tab when the run completes.
- Export to JSON / CSV / XLSX.
๐ค Use via API
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": ["https://twitter.com/elonmusk"],"maxItems": 50}'
๐ฏ Best use cases
- ๐ง Audience research โ analyze who is engaging with a brand or person.
- ๐ Influencer discovery โ find creators by exploring a competitor's retweeter / quoter graph.
- ๐ท๏ธ Lead generation โ extract bios and external links from prospects.
- ๐ก๏ธ Brand safety โ monitor verified status changes on managed accounts.
๐ธ Pricing
This actor uses Apify's pay-per-event (PPE) model:
| Event | When it fires |
|---|---|
apify-actor-start | Once at run start (synthetic; Apify covers the first 5s). |
row_result | One charge per user record written to the default dataset. |
- No data โ no charge. If a source fails or returns nothing, no
row_resultevents are emitted, so you are not billed for empty runs. - Skipped unavailable users and the per-section KVS mirror copies are not chargeable events โ only successful default-dataset writes are.
- When your spend cap (
ACTOR_MAX_TOTAL_CHARGE_USD) is reached, the actor stops pushing further items and exits cleanly โ never with a failed-run.
Configure the row_result event's USD price (and any tiered discounts) in
Apify Console โ Actor โ Publication โ Monetization.
โ FAQ
Do I need an X account?
No. The actor runs in guest mode out of the box. You can paste an
auth_token + ct0 for harder cases โ both stay encrypted in Apify Secrets.
Why does the first run take a few seconds? The actor warms up by fetching the X web client bundle so it can stay in sync with the latest GraphQL schema. After that, throughput is steady.
How do you handle rate limits?
On a block we escalate proxies (direct โ datacenter โ residential) and
rotate residential IPs up to three times before failing the source.
Will protected / suspended accounts appear?
Only if you enable ๐ป includeUnavailableUsers. They are tagged with
isUnavailable: true and an unavailableReason.
๐ Support & feedback
- ๐ Issues โ open a ticket on the Apify Store actor page.
- ๐ฌ Questions / feature requests โ ping the maintainer via Apify chat.
โ๏ธ Legal
Data is collected only from publicly available profile information.
End users are responsible for compliance with applicable laws (GDPR, CCPA),
the X Terms of Service and robots.txt.
Built with โค๏ธ for the Apify platform.