X (Twitter) Profile Scraper avatar

X (Twitter) Profile Scraper

Pricing

from $0.35 / 1,000 results

Go to Apify Store
X (Twitter) Profile Scraper

X (Twitter) Profile Scraper

Scrape public X (Twitter) profiles and their latest posts by handle or URL: bio, followers, following, joined date, verification, plus each post's text, likes, reposts, replies, views, bookmarks and media. No login, no cookies. Auto-switches to residential proxy if rate-limited.

Pricing

from $0.35 / 1,000 results

Rating

0.0

(0)

Developer

Salman Bareesh

Salman Bareesh

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

23 days ago

Last modified

Share

Scrape public X (Twitter) profiles and their latest posts. Give it handles or profile links and get the profile details (bio, followers, following, joined date, verification, website) plus each recent post with likes, reposts, replies, quotes, views and bookmarks, media and quoted posts.

  • No login, no cookies. Your X account is never used, so it can never be locked or banned.
  • Engagement you can't get from embeds: view counts, reposts and bookmarks on every post.
  • Auto-unblock. If the run gets rate-limited it switches itself to Apify Residential Proxy with a fresh IP per retry. Nothing to configure.
  • Pay only for results. Missing, suspended and invalid profiles are logged, never charged.

Who uses it

  • Marketers and agencies benchmarking competitors' posting cadence and engagement
  • Founders and creators building swipe files of what performs for accounts in their niche
  • Sales and partnerships teams qualifying creators and influencers by followers and views
  • Researchers and analysts tracking what public figures post

Input

{
"profiles": ["naval", "@paulg", "https://x.com/levelsio"],
"maxTweetsPerProfile": 20,
"includeRetweets": true
}
  • profiles: handles (with or without @) or profile URLs. A post URL works too; its author is used.
  • maxTweetsPerProfile: latest posts per profile, newest first, up to 1000. 0 = profile details only.
  • includeRetweets: turn off to keep only the profile's own posts.

Output

Each profile gives one profile row, then one tweet row per post. Every row has the same keys and carries the full profile object, so you can filter or export rows on their own.

{
"type": "tweet",
"profileHandle": "paulg",
"profile": {
"id": "183749519",
"handle": "paulg",
"name": "Paul Graham",
"url": "https://x.com/paulg",
"bio": "",
"location": null,
"website": "http://paulgraham.com",
"avatarUrl": "https://pbs.twimg.com/profile_images/1824002576/pg-railsconf_400x400.jpg",
"bannerUrl": "https://pbs.twimg.com/profile_banners/183749519/1401332683",
"followers": 5374704,
"following": 801,
"tweets": 54873,
"likes": 158878,
"mediaCount": 2000,
"joinedAt": "2010-08-27T20:13:59+00:00",
"verified": true,
"verificationType": "individual",
"protected": false
},
"tweetId": "2105546284140798182",
"tweetUrl": "https://x.com/jessegenet/status/2105546284140798182",
"text": "Incredible things can occur when you suggest action over whining...",
"createdAt": "2026-10-01T06:32:07+00:00",
"lang": "en",
"likeCount": 1171,
"repostCount": 12,
"replyCount": 25,
"quoteCount": 5,
"viewCount": 131947,
"bookmarkCount": 220,
"isRetweet": true,
"tweetAuthorHandle": "jessegenet",
"tweetAuthorName": "Jesse Genet",
"quotedTweetUrl": "https://x.com/MrsCMFrancis/status/2105424960667967609",
"quotedTweetText": "The other day at breakfast...",
"media": [],
"articleTitle": null,
"input": "https://x.com/paulg",
"scrapedAt": "2026-10-01T15:36:52.000000+00:00"
}

On profile rows all post fields (tweetId ... articleTitle) are null. On reposts (isRetweet: true), tweetAuthorHandle is the original author. Each media entry has type (photo, video, gif), url (image or video thumbnail) and videoUrl (MP4).

Pricing

Pay per result: each saved row (one profile row plus one row per post) is one result. Missing profiles and failed requests are free. Set a maximum cost per run in the run options and the Actor stops there.

FAQ

Do I need an X account, API key or cookies? No.

Where does the data come from? The public FxTwitter API (open-source FxEmbed project), which serves public X data without an account.

Does it include replies? No. The timeline lists a profile's posts and reposts, not its replies.

Can I get every post an account ever made? Up to 1000 latest posts per profile. Older posts may not be reachable without login.

Is it legal? It only reads data that is public on X. You are responsible for how you use it, including privacy law (GDPR/CCPA) where personal data is involved.

Limits

  • Public profiles only. Protected accounts return the profile row only; suspended accounts return nothing.
  • Data relies on a third-party public API, which can change or slow down. We monitor the Actor daily.