To export Twitter followers to CSV, use the Twitter Followers Scraper on Apify. Enter a public Twitter/X account, choose followers or following, select username output and start a run. Download its Dataset as CSV to get one row per collected connection.
The target can be your own account, a competitor, a creator or another accessible public profile. Start with 25 connections so you can check the output, then increase the limit for a larger audience. If you later want emails for those people, keep the username output for the separate email lookup.
Choose followers or following before you start
Followers are the people who follow the target account. Following are the accounts the target follows. Those directions answer different questions about the same profile.
| Your question | Direction switches | Limit field |
|---|---|---|
| Who follows this account? | Followers on; following off. | maxFollowers |
| Which accounts does this profile follow? | Following on; followers off. | maxFollowing |
| Both relationships | Both switches on. | Set both limits and retain relation in the output. |
The Actor’s defaults enable both directions. Set the switches explicitly when you want only one. Start with a single target and direction so your first file is easy to inspect.
Step 1. Enter the target in Apify Console
Open the Twitter Followers Scraper on Apify and click Try for free. Sign in if prompted, then open the editable Input form in Apify Console.
- Put the target handle in Twitter Usernames (without @). For
https://x.com/nasa, enternasa. - Turn Include Followers on and Include Following off for a follower-only export.
- Set Max Followers To Collect to 25 for the first test.
- Choose Usernames under Result Format.
- Review the current Pricing tab and run spending settings.
- Click Start, then wait for the run to finish.
The Actor also accepts numeric target IDs through userIdList. Use one input form per account for the pilot. Entering the same target as both a username and ID makes later source reconciliation harder.
The public input reference explains the switches and format selector. The image below is read-only; enter your own target in the Console form.

JSON for a first follower sample
This requests up to 25 followers of the public account nasa. Replace the target with the account you want to research.
{
"userNameList": ["nasa"],
"getFollowers": true,
"getFollowing": false,
"maxFollowers": 25,
"outputMode": "usernames"
}For a following-only export, set getFollowers to false, getFollowing to true and set maxFollowing. The following limit is independent of the follower limit.
Choose usernames or numeric IDs for the next step
The default output mode is ids. Choose usernames explicitly when you want readable handles or intend to pass the list to the Twitter Email Scraper. The returned value column follows the selected mode.
Use IDs when another tool specifically expects numeric user identifiers. Keep them as text in spreadsheets so large values are not rounded or converted into scientific notation. A numeric ID cannot be pasted into this email Actor as if it were a username.
The target input and result format are separate settings: entering a target by username does not automatically make every returned value a username. Check mode in the result before moving the file to another tool.
Step 2. Read the connection rows
The Actor streams output into its Dataset while working. You can inspect early rows, but wait for final status and the summary before reporting your completed audience count.
| Field | What it means |
|---|---|
status | Connection rows use item. |
query_type, query_value | The submitted target type and value. |
relation | Whether the row is a follower or following connection. |
mode | Whether value contains a username or ID. |
value | The collected account identifier. |
job_id | The collection job associated with the row. |
The following fictional CSV illustrates two people who follow the same target.
query_value,relation,mode,value
sample_source,followers,usernames,demo_blue
sample_source,followers,usernames,demo_amberWith relation=followers, DemoBlue follows SampleSource. With relation=following on that source and returned value, SampleSource follows DemoBlue. Keep that direction when analyzing audience overlap.
Step 3. Download and clean the CSV
- Open the completed run’s Dataset.
- Choose CSV in its export or download action.
- Retain the target, relationship, mode and value columns.
- Save the original file with the run ID and Dataset ID.
- Create a working copy for cleaning and a separate unique-profile list if needed.
For one row per connection, deduplicate by target, relationship and normalized returned value. The same username can legitimately appear under two target accounts. Keep both relationships in the master file.
If you need a unique audience for enrichment, create it in another sheet. Trim surrounding spaces, remove a leading @, lowercase username keys and deduplicate those keys. Keep the original connections so you can attach later results to every relevant target audience.
Scale to several targets and larger audiences
The Actor supports up to 5,000,000 followers and 5,000,000 following accounts per target on paid plans, subject to accessible source data and run limits. Free users are limited to 1,000 total results per run. Choose limits that fit your intended audience and account plan.
Count the requested work across targets and directions. Two targets with 5,000 followers each request up to 10,000 follower rows. Enabling 1,000 following accounts for each adds up to 2,000 more. Source availability and plan limits can reduce the actual total.
For large projects, group targets into manageable runs and keep an input log with the target, direction, requested cap, date and run ID. The Actor can stream large outputs, but completion time depends on account size and current source access.
Review the Actor’s current event pricing and Apify platform usage charges before increasing the volume. An event-charge cap helps limit result charges; keep platform usage in your overall budget as described in the Pricing tab.
Check missing targets, capped lists and repeat exports
Open the run’s key-value store and read SUMMARY. It records total, completed and failed jobs, emitted rows and failed_jobs details. Failures are recorded there rather than as ordinary Dataset connection rows.
- Exactly your requested limit: the audience may be capped. It is a sample unless the source and summary establish broader completion.
- Rows for one target only: check failed jobs for the missing target, retaining the successful rows.
- Numeric values instead of handles: inspect
modeand select username output for the next run. - No rows: review the target spelling, direction switches, accessibility and run details.
A public account can belong to someone else. Protected, suspended or unavailable profiles can restrict collection. A small result is not evidence that the profile has no audience until the input and source outcome have been checked.
For repeat exports, keep dated snapshots. If two capped or incomplete samples differ, that alone does not prove a person followed or unfollowed between them. Compare coverage and input settings before interpreting changes.
Run a follower export with your agent through Apify MCP
Connect your MCP-compatible agent to https://mcp.apify.com and authorize Apify using the official MCP guide. Give the agent the Actor name, target and chosen relationship.
Use x_guru/twitter-follower-scraper.
Target account: [MY_TARGET_USERNAME]
Direction: followers only
First-run limit: 25
Approved event-charge cap USD: [AMOUNT]
Inspect the current input schema.
Set getFollowers=true,
getFollowing=false and
outputMode="usernames".
Apply the approved cap through
callOptions.maxTotalChargeUsd.
Wait for completion and read SUMMARY.
Read all Dataset pages. Save the original
connections and a CSV retaining
query_type, query_value, relation, mode,
value and job_id where available.
Report rows per target and direction,
failed jobs, run ID and Dataset ID.
Keep platform usage charges in view.
Wait before increasing the collection.The agent starts the Actor with call-actor, checks longer runs with get-actor-run and reads result pages with get-dataset-items. It should preserve the source relationships even if it also creates a separate unique-username file.
What to do after exporting followers
To look up available emails, follow the Twitter email finder walkthrough. The email Actor requires at least 1,000 usable usernames. For a master file that preserves every audience relationship, use the followers-to-email enrichment workflow.
For your own account data, X also provides an account archive. If you build directly on X’s developer platform, review the official API documentation for your required access. For repeatable Apify exports, use the Actor run and Dataset guide.


