Twitter/X Profile Analyzer — Social Intelligence & Influence... avatar

Twitter/X Profile Analyzer — Social Intelligence & Influence...

Pricing

from $10.00 / 1,000 result delivereds

Go to Apify Store
Twitter/X Profile Analyzer — Social Intelligence & Influence...

Twitter/X Profile Analyzer — Social Intelligence & Influence...

Know who’s actually influential on X before you spend time or budget on them. Profile analysis with engagement, reach, audience quality, and tweet performance — no API key and no $100/month developer plan required.

Pricing

from $10.00 / 1,000 result delivereds

Rating

0.0

(0)

Developer

Creator Fusion

Creator Fusion

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

1

Monthly active users

9 days ago

Last modified

Share

Twitter Profile Analyzer — X (Twitter) Profile Intelligence API for AI Agents & Social Listening

Twitter Profile Analyzer turns X (Twitter) handles into full profile intelligence — typed JSON rows, schema below. Give it a list of usernames (or profile URLs) and it returns one structured dataset item per profile with follower/following/post counts, bio, verified status, join date, avatar, website, location, and derived analysis fields (audience tier, follower ratio). Built for social-listening agents, influencer vetting, competitive intelligence, and audience analysis pipelines — no Twitter login, cookies, or API keys required.

Why agents use this actor

  • Deterministic typed output — every row conforms to the published dataset schema; fields never change type or disappear between runs.
  • Real profile metrics — live follower, following, post, and like counts plus bio, verification, and account age, not just page metadata.
  • Cost-predictable — one dataset item per requested profile, priced per event, so autonomous agents can budget a run before starting it.
  • No auth needed — no Twitter/X login, cookies, or API keys.
  • Clear error semantics — per-item failures carry an error field, a run-level SUMMARY record aggregates failures, and the run exits non-zero on invalid input or total failure. Never a silent empty success.
  • Rate-limit handling built in — automatic retry with exponential backoff on HTTP 429 and 5xx responses, 30-second request timeouts.

Input schema

FieldTypeRequiredDefaultDescription
usernamesarray of stringsYesX (Twitter) usernames/handles to analyze, with or without @ (e.g. "naval" or "@naval"). Full profile URLs are also accepted and normalized.
handlesarray of stringsNoAlias for usernames; merged with it.
usernamestringNoConvenience alias: a single handle instead of the array.
urlstringNoA single profile URL (advanced; merged with usernames).
urlsarray of stringsNoProfile URLs (advanced; merged with usernames).
startUrlsarrayNoProfile URLs as {"url": ...} request objects or plain strings (advanced; merged with usernames).
maxRequestsPerCrawlintegerNo20Upper bound on unique profiles processed per run.
proxyConfigurationobjectNoProxy configuration (reserved; lookups run directly without a proxy).

Twitter Profile Output Schema

One dataset row per unique profile. Modes: success rows (profile resolved) and failure rows (profile not found, or the request failed after retries).

FieldTypeNullableRowsDescription
urlstringnoallCanonical profile URL, e.g. https://x.com/naval.
usernamestringyesallHandle without @, canonical casing on success rows.
statusCodeintegeryesallHTTP status of the lookup (200 on success, 404 when the profile does not exist). Null on network failure.
okbooleannoalltrue only when the profile was resolved with full data.
titlestringyesallProfile page title, e.g. Naval (@naval) / X. Null on failure rows.
namestringyessuccessDisplay name.
followersintegeryessuccessFollower count.
followingintegeryessuccessAccounts the profile follows.
tweetsintegeryessuccessTotal posts.
likesintegeryessuccessTotal likes the account has given.
biostringyessuccessProfile bio text.
verifiedbooleanyessuccessVerified status.
joinDatestringyessuccessAccount creation date, ISO 8601.
avatarUrlstringyessuccessProfile picture URL.
websitestringyessuccessWebsite from the profile, if set.
locationstringyessuccessLocation from the profile, if set.
audienceTierstringyessuccessDerived from followers: nano (<1K), micro (1K–10K), mid (10K–100K), macro (100K–1M), mega (1M+).
followerRationumberyessuccessFollowers ÷ following, rounded to 2 decimals; null when following is 0.
errorstringyesfailure onlyWhy the lookup failed (Profile not found, network error message).

Success row example:

{
"url": "https://x.com/naval",
"username": "naval",
"statusCode": 200,
"ok": true,
"title": "Naval (@naval) / X",
"name": "Naval",
"followers": 3858834,
"following": 1,
"tweets": 27127,
"likes": 299359,
"bio": "Incompressible",
"verified": true,
"joinDate": "2007-02-01T23:05:04.000Z",
"avatarUrl": "https://pbs.twimg.com/profile_images/1256841238298292232/ycqwaMI2_normal.jpg",
"website": "https://nav.al",
"location": null,
"audienceTier": "mega",
"followerRatio": 3858834
}

Failure row example:

{
"url": "https://x.com/thishandledoesnotexist12345",
"username": "thishandledoesnotexist12345",
"statusCode": 404,
"ok": false,
"title": null,
"error": "Profile not found"
}

Error semantics

  • Invalid input (no usernames or URLs resolve): the run fails fast with exit code 1 and status message No profiles to analyze. Provide "usernames" (or url/urls/startUrls). Nothing is pushed to the dataset.
  • Profile not found / suspended: the row is pushed with ok: false, statusCode: 404, and error: "Profile not found". Other profiles in the run are unaffected.
  • Partial failure: failed profiles produce a dataset row with an error field; successful profiles are unaffected. The run still succeeds.
  • Total failure (every lookup failed): all failure rows are pushed, then the run exits with code 1 so agents can detect it without inspecting items.
  • SUMMARY record: every run writes a SUMMARY key-value record { requested, succeeded, failed, failures: [{url, username, error}] } — poll this for cheap run-level health checks and retry logic.
  • Retries: HTTP 429/500/502/503/504 and network errors are retried up to 3 attempts with exponential backoff before a row is marked failed.

Use from AI agents (MCP)

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=apricot_blackberry/twitter-profile-analyzer",
"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
}
}
}

Works in Claude, Cursor, ChatGPT deep research connectors, and any MCP client; the input schema above is the tool's parameter schema.

Use from code

curl:

curl -X POST "https://api.apify.com/v2/acts/apricot_blackberry~twitter-profile-analyzer/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["naval"]}'

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('apricot_blackberry/twitter-profile-analyzer').call({
usernames: ['naval'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify_client):

from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("apricot_blackberry/twitter-profile-analyzer").call(
run_input={"usernames": ["naval"]}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use from automation platforms

  • n8n / Make / Zapier: use the native Apify integration and choose apricot_blackberry/twitter-profile-analyzer by name.
  • LangChain / LlamaIndex: use the Apify actor tool wrappers with the same actor id and input.
  • Webhooks: configure an Apify webhook to fire on run completion (ACTOR.RUN.SUCCEEDED/FAILED) to push profile rows into your pipeline without polling.

Pricing

$0.05 start + $0.01 per profile result delivered (PAY_PER_EVENT). A 10-profile competitive scan costs about $0.15.

FAQ

Q: Can I track accounts over time? A: Yes — run recurring analyses on a schedule and diff the dataset rows to track follower growth, bio changes, and posting velocity over time.

Q: What about deleted, suspended, or private accounts? A: Unavailable profiles return a failure row with statusCode: 404 and ok: false, so agents can classify them without extra requests. Protected accounts still return public profile metadata.

Q: Do I need Twitter/X credentials? A: No. The actor resolves public profile data without login, cookies, or API keys.

Changelog

2026-08-15

  • Rebuilt extraction engine: rows now include full profile metrics — followers, following, tweets, likes, bio, verified, joinDate, avatarUrl, website, location, name — plus derived audienceTier and followerRatio.
  • Not-found profiles now return a clean statusCode: 404 failure row.
  • Added 30-second request timeouts; per-item dataset pushes.
  • Richer dataset overview view with avatar thumbnails and follower columns.

2026-08-14

  • The required usernames input is now consumed — handles resolve to canonical profiles; added handles/username aliases.
  • Added retry with exponential backoff on HTTP 429/5xx and network errors.
  • Fail-loud runs: exit code 1 on invalid input or total failure; SUMMARY key-value record with failure aggregation.
  • Published dataset output schema and agent/MCP integration docs.