sfoln/x-profile-lookup · Social media, Lead generation, Automation On request
Scrape X (Twitter) profiles by handle, URL or user ID: followers, following, post count, bio, website, location, verification, join date and pinned posts, one JSON record per account. Suspended accounts are flagged. $1 per 1,000 profiles; invalid handles are free.
Twitter Profile Scraper (X) looks up X (Twitter) accounts by handle, profile URL or numeric user ID and returns one normalized profile record per account: follower and following counts, total posts, bio with expanded links, website, location, blue-check and verification type, join date, avatar and banner, pinned posts and automation labels. Built for influencer vetting, CRM enrichment, audience research and AI agents that need a quick, structured answer about an account.
Price
Price per delivered record
Event
Price
Per 1,000
Charged for
X profile x-profile-looked-up
$0.001
$1 / 1,000
Charged once per X (Twitter) handle or user id for which a profile was returned, or for which the upstream confirmed the account does not exist or is suspended/unavailable.
Apify free plan: up to 10 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.
Run
Call it from code, an agent or the Console
This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com
POST https://api.apify.com/v2/actors/sfoln~x-profile-lookup/runs?maxTotalChargeUsd=1
GET https://api.apify.com/v2/actor-runs/{runId} # until status is SUCCEEDED
GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json
Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Look up the X profiles @apify and @NASA and compare their followers, post counts, verification and join dates.
Input
Input fields
Paste X (Twitter) handles or profile URLs, and/or numeric user ids. Each account produces one dataset record with a normalized profile and a `status` field.
Field
Type
Default
Meaning
handles
array
—
Handles or profile URLs X handles (with or without @) or profile URLs such as https://x.com/nasa, one per line. Duplicates are removed. Accounts on the Apify free plan can process up to 10 profiles per run (handles and user ids together).
userIds
array
—
Numeric user ids Optional numeric X user ids (e.g. 11348282), one per line. Looked up in addition to the handles.
maxItems
integer
5000
Max profiles Safety cap on the number of profiles looked up in this run. Range 1–100000.
concurrency
integer
3
Concurrency Parallel upstream lookups (1–5). Range 1–5.
includeRaw
boolean
false
Include raw upstream response Attach the unmodified TwitterAPI.io payload to each record under `raw` (larger output).
Example input
{
"handles": [
"apify",
"https://x.com/NASA"
]
}
Output
One record per input item
Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.
Field
Type
Meaning
input
string | object
Input The input item this record corresponds to.
status
string
Status ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
charged
boolean
Charged Whether this record incurred a pay-per-event charge.
chargedEvent
string
Charged event Pay-per-event event charged for this record.
source
string
Source Upstream data source (twitterapi = TwitterAPI.io).
fetchedAt
string
Fetched at ISO timestamp.
error
object
Error code / message when status is not ok.
warnings
array
Warnings Non-fatal notes (e.g. stopped early).
found
boolean
Found true when a live profile was returned.
handle
string | null
Handle @handle without @. e.g. "NASA"
userId
string | null
User id Numeric user id.
name
string | null
Name Display name.
bio
string | null
Bio Profile description with t.co links expanded.
location
string | null
Location Free-text location.
url
string | null
Website Website link from the profile (expanded).
profileUrl
string | null
Profile URL https://x.com/<handle>
followers
integer | null
Followers Follower count.
following
integer | null
Following Following count.
tweets
integer | null
Posts Total posts incl. replies and reposts (statusesCount).
likes
integer | null
Likes given Posts this account liked (favouritesCount).
mediaCount
integer | null
Media Media posts count.
isBlueVerified
boolean | null
Blue check Has a blue check (X Premium).
verifiedType
string | null
Verified type e.g. Business, Government; null for none.
profileImageUrl
string | null
Avatar URL Profile picture URL.
coverImageUrl
string | null
Banner URL Header image URL.
createdAt
string | null
Joined Account creation time (ISO 8601).
isAutomated
boolean | null
Automated Labelled as an automated account.
automatedBy
string | null
Automated by Operator handle for automated accounts.
canDm
boolean | null
Open DMs Accepts direct messages from anyone.
possiblySensitive
boolean | null
Sensitive Profile marked possibly sensitive.
withheldInCountries
array
Withheld in Country codes where the account is withheld.