๐Ÿฆ Twitter (X) User Scraper avatar

๐Ÿฆ Twitter (X) User Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
๐Ÿฆ Twitter (X) User Scraper

๐Ÿฆ 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

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

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 enriched about payload.


โœจ Why this actor

Other scrapers๐Ÿฆ This actor
Login requiredOftenโŒ Never (optional)
Block handlingManualโœ… Auto direct โ†’ datacenter โ†’ residential
Live resultsโŒ End-of-run onlyโœ… Streamed per-user
PricingSubscription๐Ÿ’ธ Pay-per-event
OutputsSingle 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' profile to 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 OUTPUT key.

๐Ÿ“ฅ Input

FieldTypeDefaultDescription
๐Ÿ”— startUrlsarrayโ€“Profile URLs or @usernames. Bulk supported.
๐Ÿ” getRetweetersbooltrueCapture retweeters / related users from the timeline.
๐Ÿ‘ฅ getFollowersbooltrueInclude follower count on each record.
๐Ÿค getFollowingbooltrueInclude friends (following) count.
๐Ÿชช getAboutbooltrueEnrich with verification / account metadata.
๐Ÿ‘ป includeUnavailableUsersboolfalseSurface suspended / protected accounts.
๐ŸŽฏ maxItemsint100Cap users collected per source URL.
โฑ๏ธ requestDelaynumber1.0Float seconds between pagination requests.
๐Ÿ” authTokenstring (secret)โ€“Optional X auth_token cookie.
๐Ÿ›ก๏ธ csrfTokenstring (secret)โ€“Optional X ct0 cookie.
๐ŸŒ proxyConfigurationobjectdirectDefaults 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)

  1. Log in at https://console.apify.com โ†’ Actors.
  2. Open ๐Ÿฆ Twitter (X) User Scraper.
  3. Paste your profile URLs into ๐Ÿ”— Profile URLs.
  4. Pick which networks / fields you want (๐Ÿ”, ๐Ÿ‘ฅ, ๐Ÿค, ๐Ÿชช).
  5. (Optional) Drop in an authToken + csrfToken for tougher targets.
  6. Hit Start.
  7. Watch the live log โ€” it will tick ๐Ÿ“ฅ @username โ€” N followers per user.
  8. Open the Dataset or Key-value store tab when the run completes.
  9. 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:

EventWhen it fires
apify-actor-startOnce at run start (synthetic; Apify covers the first 5s).
row_resultOne charge per user record written to the default dataset.
  • No data โ†’ no charge. If a source fails or returns nothing, no row_result events 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.

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.