Twitter/X Scraper — Profiles & Followers avatar

Twitter/X Scraper — Profiles & Followers

Pricing

from $5.00 / 1,000 x (twitter) user records

Go to Apify Store
Twitter/X Scraper — Profiles & Followers

Twitter/X Scraper — Profiles & Followers

Scrape Twitter/X user profiles, followers, and following lists in bulk. Returns username, display name, bio, follower count, and verified status. $5/1K. MCP/API-ready.

Pricing

from $5.00 / 1,000 x (twitter) user records

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

34

Total users

7

Monthly active users

11 days ago

Last modified

Share

🐦 Twitter/X Profile & Followers Scraper — No Login

This Apify Actor is built for marketers, researchers, and AI agents that need structured Twitter/X account data from usernames or profile, followers, or following URLs. It accepts one or many accounts, and each output record represents one Twitter/X user entry: a direct profile, a follower, or a following account. The returned fields include username, display name, bio, follower count, following count, tweet count, verification flags, location, website, creation date, profile image URL, banner URL, pinned tweet ID, source account, scrape timestamp, and source URL. The outcome is a dataset of clean, record-level Twitter/X user data that you can analyze, filter, or pass into downstream workflows.

Best fit and connected workflows

This Actor fits workflows that start with Twitter/X handles or public Twitter/X URLs and end with structured account data.

Good routing patterns include:

  • Profile enrichment from a list of usernames
  • Follower list collection for a target account
  • Following list collection for a target account
  • Bulk multi-account runs with a shared output schema
  • AI-agent workflows through Apify MCP when a tool needs profile metadata and social graph data in one place

It is especially useful when one run needs to combine profile records with follower or following records under the same schema and source tracking.

Practical scenario

A marketer named Lina wants to review the public Twitter/X presence of a shortlist of conference speakers. She starts with usernames for three speakers, selects profiles, and keeps the default caps for follower and following collection. The returned records include each speaker's username, display name, follower count, verified status, bio, website, and scraped timestamp. Lina uses the follower counts and bios to decide which profiles to review first, then opens the linked websites for contact research.

Input fields

FieldTypePurpose
usernamesarray of stringsTwitter/X handles without @. suited to direct usernames.
startUrlsarray of objectsFull Twitter/X profile, followers, or following URLs. This overrides usernames.
modestringSelects profiles, followers, following, or all.
maxFollowersPerUserintegerCaps followers collected per account. Default: 200.
maxFollowingPerUserintegerCaps following accounts collected per account. Default: 200.
maxResultsintegerCaps total records across all inputs and modes. Default: 1000.
authTokenstringOptional override for the Twitter auth cookie. Leave blank to use the configured environment variable.
csrfTokenstringOptional override for the Twitter CSRF cookie. Leave blank to use the configured environment variable.
proxyConfigurationobjectProxy settings. Residential proxies are the provided default.

Focused JSON example

{
"usernames": ["elonmusk", "sama", "naval"],
"mode": "all",
"maxFollowersPerUser": 50,
"maxFollowingPerUser": 25,
"maxResults": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output fields

FieldTypePurpose
record_typestringRecord category: profile, follower, or following.
user_idstringNumeric Twitter/X user ID, suitable for deduplication.
usernamestringTwitter/X handle without @.
display_namestringDisplay name shown on the profile.
biostring or nullProfile bio text.
follower_countnumber or nullFollower total.
following_countnumber or nullFollowing total.
tweet_countnumber or nullTotal published posts.
verifiedboolean or nullLegacy verified status.
is_blue_verifiedboolean or nullX Premium verification flag.
verified_typestring or nullBadge type such as blue, business, or government.
locationstring or nullSelf-reported profile location.
websitestring or nullLinked website URL.
created_atstring or nullISO 8601 account creation date.
profile_image_urlstring or nullProfile image URL.
banner_urlstring or nullProfile banner URL.
pinned_tweet_idstring or nullPinned tweet ID.
source_usernamestring or nullSource account targeted in the run.
scraped_atstringISO 8601 collection timestamp.
source_urlstringRequested Twitter/X URL for traceability.

Illustrative JSON record

{
"record_type": "follower",
"user_id": "44196397",
"username": "elonmusk",
"display_name": "Elon Musk",
"bio": "CEO of Tesla and SpaceX",
"follower_count": 185000000,
"following_count": 639,
"tweet_count": 42000,
"verified": false,
"is_blue_verified": true,
"verified_type": "blue",
"location": "Austin, TX",
"website": "https://x.com",
"created_at": "2009-06-02T20:12:29.000Z",
"profile_image_url": "https://pbs.twimg.com/profile_images/1234/photo.jpg",
"banner_url": "https://pbs.twimg.com/profile_banners/44196397/1690000000",
"pinned_tweet_id": "1234567890123456789",
"source_username": "elonmusk",
"scraped_at": "2026-03-31T12:00:00.000Z",
"source_url": "https://x.com/elonmusk/followers"
}

How it works

This Actor uses the Apify platform with Playwright-based infrastructure from the js-crawlee-playwright-chrome template. The live contract defines these accepted inputs: usernames, start URLs, scrape mode, result caps, optional cookie overrides, and proxy configuration. The output is stored in a dataset, with additional execution information available in key-value store records for OUTPUT and RUN_SUMMARY. The dataset schema defines one shared record shape for profiles, followers, and following entries, and the record_type field identifies which kind of record each row represents.

Pricing

This Actor uses Pay Per Event pricing plus standard Apify platform usage.

The primary charged event is one returned Twitter/X user record. The live pricing tab shows the current event price and any platform usage that applies to a run. Apify also charges for actor start based on memory, with the actor-start event defined in the live contract. Review the live Pricing tab in the Apify Console for the current numbers before running a job.

For a simple event-count example: 1 thousand returned user records equals 1 thousand billed record events.

Use with AI agents (MCP)

This Actor is available as an Apify Actor that can be used through Apify MCP. It is useful when an agent needs a tool that accepts Twitter/X usernames or URLs and returns structured user records with provenance fields.

Exact Actor identity: khadinakbar/twitter-profile-followers-scraper

A realistic prompt for an agent:

Collect the public profile data and follower list for these Twitter/X accounts, return the username, display name, bio, follower count, verified status, and source URL for each record, and keep the results grouped by source account.

Output interpretation:

  • record_type tells the agent whether the row is a profile, follower, or following record.
  • source_username links follower and following rows back to the target account.
  • source_url shows the exact URL requested.
  • scraped_at provides a freshness marker for each row.
  • user_id is the stable key for deduplication when usernames change.

Provenance and scope:

  • Records come from the requested Twitter/X profile, followers, or following source.
  • The schema includes both profile metadata and network records in one structure.
  • maxFollowersPerUser, maxFollowingPerUser, and maxResults help shape the amount of data returned.

Pagination and cost guidance:

  • Followers and following collection are controlled by per-user caps and the total result cap.
  • Each returned dataset row corresponds to one billed user-record event.
  • The live Pricing tab reflects the current event cost and Apify usage details.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/twitter-profile-followers-scraper').call({
usernames: ['hubspot', 'salesforce'],
mode: 'all',
maxFollowersPerUser: 100,
maxFollowingPerUser: 50,
maxResults: 500,
});
const datasetId = run.defaultDatasetId;
const { items } = await client.dataset(datasetId).listItems();
console.log('Run ID:', run.id);
console.log('Items:', items.length);
console.log(items);

Best results and outcome guidance

Start with usernames when you already have handles, and use startUrls when you have full Twitter/X links. Choose profiles for account metadata, followers for audience collection, following for network mapping, and all when you want all three record types in one run. Use maxFollowersPerUser, maxFollowingPerUser, and maxResults together to shape the size of the dataset. If you are working with multiple source accounts, keep an eye on source_username so you can group the output by target account after the run.

Continue the workflow

Design note

I found that the dataset contract uses a single shared record schema for profiles, followers, and following rows, and record_type is the field that distinguishes them.

FAQ

When should I use usernames instead of startUrls?

Use usernames when you have bare handles such as elonmusk or sama. Use startUrls when you have a full profile, followers, or following URL.

Which mode should I choose for profile enrichment?

Use profiles when you only need metadata such as bio, follower count, verification status, location, and website.

Which mode fits audience research?

Use followers when you want the audience of a target account, and following when you want the accounts that target follows.

What does all return?

all returns profile records, follower records, and following records in one run, all with the same output schema.

How do I trace a row back to the source account?

Use source_username and source_url. Together they identify the account that was targeted and the exact URL that produced the record.

Is this Actor usable through Apify MCP?

Yes. It is an Apify Actor that can be called through Apify MCP with the exact identity khadinakbar/twitter-profile-followers-scraper.

Responsible use

Use this Actor for public Twitter/X data collection, review output in line with your own data handling rules, and keep result caps aligned with the amount of data you need. When working with account-level or network-level data, preserve user_id, source_username, and source_url so records remain traceable. Review the live Pricing tab before large runs so event counts and Apify usage are clear for the planned workload.