Twitter User Following Scraper
Pricing
$19.99/month + usage
Twitter User Following Scraper
Twitter User Following Scraper extracts accounts followed by Twitter/X users, including usernames, profile details, follower counts, bios, and other public data. Automate audience research, competitor analysis, influencer discovery, and social media lead generation.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperX
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Twitter User Following Scraper — Export Who Any X (Twitter) Account Follows
Find out exactly who an X (Twitter) account follows — and get the full profile of every one of them. Paste handles or profile URLs, set a cap, and the Actor returns each followed account with its display name, @handle, bio, location, website, follower and following counts, verification status, avatar, banner and join date.
Up to 10,000 following accounts per handle, in bulk, across as many source handles as you like.
What you get
| 👤 Identity | 📊 Audience metrics | 🔗 Profile details |
|---|---|---|
| Display name and @handle | Followers count | Bio / description |
| User ID | Following count | Location |
| Profile URL | Statuses (tweets) count | Website URL |
| Avatar image URL | Media count | Account creation date |
| Banner image URL | Listed count | Blue verification flag |
| Profile image shape | Favourites count | Verification type |
| Source handle (whose list it came from) | Normal / fast follower counts |
Key features
- Following lists at scale. Up to 10,000 followed accounts per source handle — enough to export the complete following list of almost any account.
- Full profiles, not just handles. Every row is a complete profile: bio, location, website, follower counts and verification status. That means the export is immediately usable for research or outreach, with no enrichment step.
- Bulk source handles. Feed in many accounts at once, mixing bare handles and full profile URLs. Each row records which source handle produced it, so a multi-account run stays perfectly attributable.
- Verification detail, not just a badge. Both
is_blue_verifiedandverified_typeare returned, so you can distinguish paid blue from business and government verification. - Follower-quality signals.
normal_followers_countandfast_followers_countalongside the headline number help you spot inflated audiences. - Smart networking. Runs with no proxy by default — fastest and simplest. If X throttles the session, the Actor steps up through datacenter and residential proxies with retries.
- Live streaming output. Profiles land in the dataset as they are collected.
Use cases
- Audience & interest research — what an account follows is one of the strongest available signals of what it cares about.
- Influencer discovery — export what a leading account in your niche follows and you have a curated shortlist of adjacent voices.
- Competitor analysis — see who a competitor's brand account follows: partners, customers, industry press.
- Lead generation — following lists of niche accounts are dense with qualified prospects, complete with bios and websites.
- Community mapping — build a graph of who follows whom across a set of accounts to identify the real hubs.
- Recruitment sourcing — bios and locations make following lists a surprisingly good talent pool.
- PR and media list building — the journalists and outlets an account follows are the ones it reads.
- Market research — measure how many accounts in a niche are verified, where they are based, and how big they are.
How it works
- You supply source handles and your X session cookies.
- Each handle is resolved to a user ID and its following list is paged.
- Every followed account is normalised into a flat profile record.
- Your source handle is attached to each row for attribution.
- If X throttles the session, the Actor escalates through datacenter and residential proxies with retries.
- Rows stream into the dataset until your per-handle cap is reached.
Quick start
- Log in to x.com in your browser.
- Open DevTools → Application → Cookies →
https://x.com. - Copy the values of
auth_tokenandct0into the Actor's fields. - Add your source handles — e.g.
jordanbpeterson— and set Max following users per handle. - Click Start, then export the Output tab as CSV, Excel or JSON.
Minimal input
{"startUrls": ["jordanbpeterson"],"maxResults": 100,"authToken": "<YOUR_AUTH_TOKEN_COOKIE>","ct0": "<YOUR_CT0_COOKIE>"}
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — (required) | Handles or profile URLs, one per line. jordanbpeterson, https://x.com/elonmusk and https://twitter.com/BillGates all work — mix styles freely. |
maxResults | integer | 10 | Maximum followed accounts to collect per handle, from 1 to 10,000. |
authToken | string | — (required) | The auth_token cookie from a logged-in x.com browser session. |
ct0 | string | — (required) | The ct0 (CSRF) cookie from the same session. It also serves as the x-csrf-token header, so it must match auth_token. |
proxyConfiguration | object | no proxy | Off by default — fastest and simplest. Turn it on if X throttles you, and pick groups or a country. |
⚠️ Cookies are credentials.
auth_tokengrants access to that X account. Use a dedicated secondary account, never share the values, and be aware that automated activity can lead X to restrict an account.
♻️ Cookies rotate. If requests start failing, refresh both values from your browser — that fixes the large majority of failures.
Output data
One row per followed account.
| Field | Type | Description |
|---|---|---|
id | string | X user ID. |
screen_name | string | @handle. |
name | string | Display name. |
profile_url | string | Direct link to the profile. |
description | string | Bio text. |
location | string | Self-reported location. |
url | string | Website link from the profile. |
followers_count | number | Followers. |
friends_count | number | Accounts they follow. |
statuses_count | number | Total posts. |
media_count | number | Posts containing media. |
favourites_count | number | Likes given. |
listed_count | number | Lists the account appears on. |
normal_followers_count | number | Followers excluding fast followers. |
fast_followers_count | number | Fast-follower count — a low-quality-audience signal. |
is_blue_verified | boolean | Blue verification. |
verified_type | string | Verification category (business, government…). |
profile_image_url_https | string | Avatar image URL. |
profile_banner_url | string | Banner image URL. |
profile_image_shape | string | Avatar shape (circle, square). |
created_at | string | Account creation date. |
username | string | Source handle — whose following list produced this row. |
Example output
{"id": "44196397","screen_name": "exampleaccount","name": "Example Account","profile_url": "https://x.com/exampleaccount","description": "Writing about behavioural science and decision making.","location": "Toronto, Canada","url": "https://example.com","followers_count": 284100,"friends_count": 612,"statuses_count": 18420,"media_count": 1204,"favourites_count": 9310,"listed_count": 2140,"normal_followers_count": 283900,"fast_followers_count": 200,"is_blue_verified": true,"verified_type": null,"profile_image_url_https": "https://pbs.twimg.com/profile_images/…","profile_banner_url": "https://pbs.twimg.com/profile_banners/…","created_at": "Tue Mar 21 20:50:14 +0000 2017","username": "jordanbpeterson"}
Illustrative values — a live run returns current X data.
Usage examples
Full following list of one account
{"startUrls": ["jordanbpeterson"],"maxResults": 10000,"authToken": "<YOUR_AUTH_TOKEN_COOKIE>","ct0": "<YOUR_CT0_COOKIE>"}
Compare several accounts' interests
{"startUrls": ["accountone", "accounttwo", "accountthree"],"maxResults": 1000,"authToken": "<YOUR_AUTH_TOKEN_COOKIE>","ct0": "<YOUR_CT0_COOKIE>"}
Group the export by screen_name and count how many source handles follow each account — the overlaps are the hubs of that niche.
Build a qualified prospect list
Run against a niche authority account, then filter the export for rows where url is not empty and followers_count is above your threshold — those are established accounts with a website you can approach.
Spot inflated audiences
Compare fast_followers_count against followers_count. A high ratio is a warning sign when vetting influencers.
Run it from your own code
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraperx/twitter-user-following-scraper").call(run_input={"startUrls": ["jordanbpeterson"],"maxResults": 500,"authToken": "<YOUR_AUTH_TOKEN_COOKIE>","ct0": "<YOUR_CT0_COOKIE>",})for u in client.dataset(run["defaultDatasetId"]).iterate_items():print(u["screen_name"], u["followers_count"], "|", u.get("location"), "|", u.get("url"))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('scraperx/twitter-user-following-scraper').call({startUrls: ['jordanbpeterson'],maxResults: 500,authToken: '<YOUR_AUTH_TOKEN_COOKIE>',ct0: '<YOUR_CT0_COOKIE>',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL
curl -X POST "https://api.apify.com/v2/acts/scraperx~twitter-user-following-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":["jordanbpeterson"],"maxResults":500,"authToken":"<YOUR_AUTH_TOKEN_COOKIE>","ct0":"<YOUR_CT0_COOKIE>"}'
Integrations
Send profiles into Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your CRM via webhooks, and use Schedules to track how a following list changes over time.
Pricing
Pricing for this Actor is shown on its Pricing tab on the Actor page, and Apify displays the applicable cost before you run it. Free Apify accounts include monthly platform credit that is enough to trial it.
If the run escalates to Apify Residential proxies, that traffic is billed separately by the platform according to your plan.
Limits & good to know
- Both cookies are required, and they must come from the same logged-in session —
ct0doubles as the CSRF token and will be rejected if it does not matchauth_token. - Cookies expire. Refreshing them from your browser resolves most sudden failures.
maxResultsis per source handle, so three handles at 1,000 each can return up to 3,000 rows.- Maximum 10,000 following accounts per handle in a single run.
- Public accounts only. Protected accounts do not expose their following lists.
- X throttles heavy sessions. Pace large jobs, and enable Apify Proxy if you hit limits.
- Image URLs point at X's CDN and can expire — download assets promptly if you need the files.
- This Actor returns following lists (who an account follows). Follower lists are a separate job.
- Default run options are 4 GB memory and a 1-hour timeout — raise the timeout for very large exports.
FAQ
Why do I need cookies? X requires an authenticated session to view following lists. The Actor uses your session exactly as your browser would.
Where do I find auth_token and ct0?
Log in to x.com → DevTools → Application → Cookies → https://x.com → copy both values.
Is it safe to paste my cookies? They are used only to authenticate your run's requests. Still, treat them as credentials and prefer a dedicated secondary account — X can restrict accounts used for automation.
Can I scrape several accounts at once?
Yes. Add all the handles; each row records its source handle in the username field.
Can I scrape followers instead of following? No — this Actor covers following lists. Follower lists require a different endpoint and a separate Actor.
Why did my run stop early or return errors? Usually expired cookies or X throttling. Refresh both cookie values, lower your cap, and enable Apify Proxy if needed.
Can it handle protected accounts? No. Only public accounts expose their following lists.
Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. CSV works well here — the rows are flat.
Legal & responsible use
This Actor reads following lists that X displays to a logged-in user — it does not bypass protections or access private data. Handles, bios, locations and avatars are personal data: if you process them, ensure you have a lawful basis under GDPR and comparable regulations, honour opt-outs when doing outreach, and comply with X's Terms of Service. You are responsible for the account whose cookies you supply, including X's restrictions on automated access.
Support
Need follower lists, extra fields, or a custom X research pipeline? Open an issue on the Issues tab of this Actor.