X (Twitter) Profile Data Scraper — Bio, Followers, Verified avatar

X (Twitter) Profile Data Scraper — Bio, Followers, Verified

Pricing

from $0.30 / 1,000 tweet scrapeds

Go to Apify Store
X (Twitter) Profile Data Scraper — Bio, Followers, Verified

X (Twitter) Profile Data Scraper — Bio, Followers, Verified

Get X (Twitter) profile data by handle, URL or user ID — bio, location, website, follower and following counts, join date, verification type and date. Bulk profile lookup, no tweets fetched, no login, no cookies, no API key. Charged only for profiles actually returned.

Pricing

from $0.30 / 1,000 tweet scrapeds

Rating

0.0

(0)

Developer

Nicholas Cheng

Nicholas Cheng

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 hours ago

Last modified

Share

X (Twitter) Profile Data Scraper

Give it a list of handles, get one clean profile record per account. No tweets, no timelines — just the account data: bio, location, website, follower and following counts, join date, verification type and when it was verified. No login, no cookies, no API key, no proxy configuration.

You are charged only for profiles that actually came back. A suspended, deleted, or misspelled handle produces an explanatory row and costs nothing.

InputX / Twitter handles, profile URLs, or numeric user IDs
OutputOne profile row per account, 40+ fields
Price$0.005 per profile — the same on every Apify plan
TweetsNot fetched. This Actor is the profiles-only mode of the X (Twitter) Profile & Tweets Scraper; use that one when you also want timelines

What you get

{
"itemType": "profile",
"userId": "11348282",
"userName": "NASA",
"url": "https://x.com/NASA",
"name": "NASA",
"description": "There's space for everybody. ✨",
"website": "https://www.nasa.gov",
"location": "Pale Blue Dot",
"createdAt": "2007-12-19T20:20:32.000Z",
"followers": 92359333,
"following": 63,
"tweetsCount": 76410,
"mediaCount": 22581,
"isVerified": true,
"isBlueVerified": true,
"verifiedType": "Government",
"verifiedSince": "2023-04-01T18:22:05.000Z",
"parodyCommentaryFanLabel": null,
"affiliatesCount": 74,
"isProfessional": false,
"isProtected": false,
"profilePicture": "https://pbs.twimg.com/profile_images/….jpg"
}

The fields that usually decide whether an account is what it claims to be come straight from X's own account metadata — nothing here is guessed or generated:

FieldWhy it matters
verifiedTypeGovernment, Business, or blank — separates official accounts from paid blue checks
verifiedSinceExact timestamp the account was verified
parodyCommentaryFanLabelX's mandatory label for parody / commentary / fan accounts
affiliatesCountHow many sub-accounts a business account has under it
createdAtAccount age, the cheapest signal against a freshly minted account with bought followers
tipjarBitcoin, Ethereum, PayPal, Venmo, Cash App, Patreon handles the account has published

Plus the standard set: description, descriptionUrls (expanded, not t.co), website, location, followers, following, tweetsCount, mediaCount, favouritesCount, professionalCategory, birthdate, isProtected, profilePicture (full resolution), coverPicture.


Input

{
"twitterHandles": ["nasa", "openai", "nytimes"],
"startUrls": [{ "url": "https://x.com/elonmusk" }],
"userIds": ["11348282"]
}
OptionNotes
twitterHandlesWith or without @. Pass as many as you like — they are all resolved in one run
startUrlsAny x.com/<handle> or twitter.com/<handle> URL, as copied from a browser
userIdsNumeric IDs, immune to username changes
maxItemsHard cap on rows for the run, to bound spend on a large list

Handles, URLs and IDs are merged and de-duplicated, so a messy list pasted from a spreadsheet is fine.


Pricing

$0.005 per profile, on every Apify plan — Free, Bronze, Silver, Gold, Platinum, Diamond. Check the Pricing tab: all six columns are identical. That is worth checking on any Actor you compare, including this one, because the price a listing advertises in its title is not always the price a free-plan run pays.

One thousand profiles cost $5. There is no per-run minimum; a run that returns one profile costs $0.005.

What you are not charged for

What happens here
Accounts that do not existSuspended, deleted, or misspelled handles produce one row marked chargedForThis: false. Nothing is billed.
Empty or placeholder rowsIf the profile did not come back, no profile row is written. There are no filler rows.
The free planSame code path, same fields, same limits. No demo mode, no row cap, no nulls in place of data.

What this Actor cannot do

  • No tweets. This is the profiles-only mode. For tweets, filters, incremental runs and single-tweet lookup use the X (Twitter) Profile & Tweets Scraper — same code, same prices, one more event.
  • No followers or following lists. X does not expose them to logged-out clients.
  • No keyword search. Same restriction.
  • Protected accounts return their profile (marked isProtected: true) — that part is public.

How it stays working

X rotates the internal query identifiers its own web app uses. This Actor reads them from X's live frontend at runtime and caches them for six hours; if a call is rejected it re-reads them and retries once. No login is used anywhere, which is why it is not exposed to the account-ban failures that take login-based scrapers offline.


Integrating

curl -X POST "https://api.apify.com/v2/acts/nick.cheng~x-profile-data/run-sync-get-dataset-items?token=<TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"twitterHandles":["nasa","openai"]}'

Official clients exist for JavaScript and Python, and results export as JSON, CSV, or Excel.