X (Twitter) Profile Scraper avatar

X (Twitter) Profile Scraper

Pricing

$0.90 / 1,000 profile scrapeds

Go to Apify Store
X (Twitter) Profile Scraper

X (Twitter) Profile Scraper

Turn a list of X (Twitter) handles into a clean table of profiles: followers, following, bio, website, location, join date, badges, post counts, avatar and banner. Optionally attach each account's latest public post and pinned post. No X account or login needed. Export to CSV, JSON or Sheets.

Pricing

$0.90 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Kawtar

Kawtar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Turn a list of X (Twitter) account names into a clean table of profile records — follower and following counts, bio, website, location, join date, badge status, post counts, avatar and banner images, and the pinned post identifier. One row per account, thousands of accounts per run. No X account, no login, and nothing to install.

What you can do with it

  • Qualify influencers and creators in bulk. Drop in a list of handles and get follower counts, post volume and badge status for all of them at once.
  • Enrich a CRM or lead list. Match your contacts to their X accounts and pull the bio, website and location straight onto the record.
  • Track how accounts grow. Run the same list on a schedule and keep a history of follower counts over time.
  • Map a competitive set. Compare audience size, posting volume and account age across every brand in your category in one table.
  • Clean a list you inherited. Accounts that were renamed, suspended or never existed come back marked, so you can prune the list instead of guessing.
  • Grab profile imagery. Avatar and banner images come through at full size, ready to use in a report or a deck.

What you get

One row per account (abridged real output, with the optional post attachments switched on):

{
"inputProfile": "nasa",
"userId": "11348282",
"username": "NASA",
"profileUrl": "https://x.com/NASA",
"displayName": "NASA",
"bio": "Making the seemingly impossible, possible. ✨",
"website": "http://www.nasa.gov/",
"bioLinks": [],
"location": "Pale Blue Dot",
"joinedAt": "2007-12-19T20:20:32.000Z",
"followers": 92245538,
"following": 119,
"postCount": 74298,
"mediaPostCount": 28063,
"likesGiven": 16904,
"isVerified": false,
"verifiedType": "Government",
"hasSubscriptionBadge": true,
"isProtected": false,
"avatarUrl": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB.jpg",
"bannerUrl": "https://pbs.twimg.com/profile_banners/11348282/1775567134",
"pinnedPostId": "2084734580737634576",
"unavailable": false,
"unavailableReason": null,
"scrapedAt": "2026-08-05T21:45:07.653Z",
"latestPost": {
"postId": "2085116299223425392",
"url": "https://x.com/NASA/status/2085116299223425392",
"text": "On Aug. 12, you have the chance to experience a total solar eclipse from anywhere in the world…",
"createdAt": "2026-08-05T21:30:39.000Z",
"likes": 240,
"reposts": 60,
"replies": 36,
"views": 69961,
"isPinned": false,
"media": [{ "type": "video", "videoUrl": "https://video.twimg.com/amplify_video/2085116218021736448/vid/avc1/1280x720/Eh8miiwmo8s_CHWk.mp4" }]
},
"pinnedPost": {
"postId": "2084734580737634576",
"url": "https://x.com/NASA/status/2084734580737634576",
"text": "Lunar landers, assemble. In clean rooms across the country, commercial lunar landers are preparing for upcoming missions…",
"createdAt": "2026-08-04T20:13:51.000Z",
"likes": 3600,
"reposts": 522,
"replies": 179,
"views": 1335499,
"isPinned": true
}
}

Input

FieldTypeDefaultWhat it does
profilesarray of textRequired. The accounts to collect. An account name, an @name or a link to the profile all work, and duplicates are removed for you.
includeLatestPostbooleanfalseAttach the most recent post shown on the account's public profile, with its text, engagement and media.
includePinnedPostbooleanfalseAttach the post the account pinned to the top of its profile, when it has one.
accountsAtOnceinteger3How many accounts to work through in parallel. Raise it to finish long lists faster.
countryCodeselectusWhich country to browse from.

Output fields

FieldDescription
inputProfileExactly what you supplied, so results join back onto your own list.
userId, username, profileUrlPermanent account identifier, current handle and link.
displayName, bioDisplay name and profile description.
websiteThe account's link, resolved to its real destination rather than the shortened form.
bioLinksAny other links written inside the bio, also resolved.
locationThe free-text location on the profile.
joinedAtWhen the account was created, ISO-8601 UTC.
followers, followingAudience size and how many accounts it follows.
postCount, mediaPostCountTotal posts, and how many of them carry photos or video.
likesGivenHow many posts this account has liked.
isVerified, verifiedTypeLegacy verification flag, and what X classifies the account as (Business, Government, …).
hasSubscriptionBadgeWhether the account shows the current checkmark.
isProtectedWhether the account is private.
avatarUrl, bannerUrlProfile picture and header image, at full size.
pinnedPostIdIdentifier of the pinned post, when the account has one.
latestPostThe most recent post shown on the account's public profile, when you asked for it. When that post is a repost it is flagged, and the original is included alongside.
pinnedPostThe pinned post, when you asked for it.
unavailable, unavailableReasonSet when an account cannot be read — suspended, withheld or never existed — so your list keeps its shape.
scrapedAtWhen the row was collected.

Pricing

This actor is pay per result: you are charged for each account row that lands in your dataset, and for nothing else. There is no time-based charge, and attaching the latest or pinned post costs nothing extra.

A list of 1,000 accounts costs about $0.90. Accounts you supply twice are collapsed before anything is collected, so a messy list never bills twice for the same account.

Limits & what this actor cannot do

  • Keyword search across all of X is not part of what X publishes openly, so this actor works from the accounts you supply rather than a search term.
  • The lists of who follows an account, or who it follows, are not publicly available. Follower and following counts are included on every row.
  • Private (protected) accounts still publish their profile, so you get the full row — but their posts are not public, so no latest or pinned post is attached.
  • Suspended, withheld and non-existent accounts are reported with unavailable set and a plain-English reason rather than being silently dropped, so those entries still join back onto your list.
  • Entries that are not a usable X account name, and repeats of an account you listed more than once, are skipped rather than collected, so they produce no row. Each one is named in the run log.
  • The attached latest post is the most recent post X shows on that account's public profile. For a handful of very large accounts X shows a mixed selection of older posts there instead of the newest ones, so for those accounts the attached post can be older than the account's true latest post.
  • Follower counts, post counts and engagement figures are a snapshot at the moment of collection and keep changing afterwards.
  • X publishes view counts for most recent posts but not for every older one. Where X publishes none, views is left empty rather than set to zero.
  • isVerified is the old verification flag and is false for almost every account today. The checkmark you see on X now lives in hasSubscriptionBadge, and verifiedType tells you whether X classifies the account as a business, a government body and so on.
  • An account name can be changed by its owner. userId never changes, so it is the safer key to store if you re-run the same list over time.
  • Speed depends on the size of the job and on X's own response times; no fixed throughput is promised.
  • X's terms govern automated access. You are responsible for using the data lawfully, in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

FAQ

Do I need an X account? No. Nothing is required from you beyond the list of accounts you want.

Does it need my login, password or a paid X subscription? No. None of those are used at any point.

How many accounts can I put in one run? Thousands. The list is de-duplicated first, a failure on one account never stops the rest, and you can raise accountsAtOnce to finish long lists faster.

Can I schedule it? Yes. Schedule it on Apify to run daily or weekly over the same list and build a history of how those accounts grow.

What happens to accounts that were deleted or renamed? You still get a row, marked unavailable with the reason, so you can clean your list instead of losing track of which entry failed.

Is the data complete? It is everything X publishes on a public profile. Anything X keeps private — follower lists, private accounts' posts, email addresses — is not available to anyone reading a public profile, and this actor does not pretend otherwise.

How do I get the results into my tools? Export from Apify as CSV, Excel, JSON, XML or an HTML table, push into Google Sheets, or pull them programmatically into your own system.