π¦ Twitter (X) User Scraper
Pricing
from $3.99 / 1,000 results
π¦ Twitter (X) User Scraper
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScraperX
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day 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.