{"name":"x-followers","id":"sfoln/x-followers","title":"Twitter Followers Scraper (X)","description":"Export the followers of any public X (Twitter) account, newest first: full profiles with bio, location, follower counts and join date, or bulk follower IDs. $0.30 per 1,000 follower profiles + $0.002 per page of 200; IDs $0.05 per 1,000 + $0.003 per page of 5,000.","version":"0.1","status":"ready","family":{"id":"social-media-data","name":"Social media data","description":"Profiles, posts, comments, followers and account audits from X, Instagram, TikTok, YouTube, Reddit, Threads, LinkedIn, Facebook, Bluesky, Telegram, Hacker News and Substack.","actors":31},"categories":["SOCIAL_MEDIA","LEAD_GENERATION","AUTOMATION"],"availability":"on_request","seoTitle":"Twitter Followers Scraper API – $0.30 per 1,000 followers","seoDescription":"Twitter (X) followers scraper API: export the followers of any public account with bio, location and counts, or bulk follower IDs. $0.30 per 1,000 profiles.","summary":"Twitter Followers Scraper (X) exports the followers of any public X (Twitter) account, newest first, as clean, flat records. Choose full follower profiles (handle, name, bio with expanded links, location, website, follower / following / post counts, avatar, account creation date, automated-account label) or bulk follower IDs (up to 5,000 per request, the cheapest way to map a follower graph). Built for audience research, influencer vetting, competitor analysis, lead lists and social-graph datasets.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"x-follower-profile","title":"X follower profile","description":"Charged once per follower profile delivered (mode \"profiles\").","priceUsd":0.0003},{"name":"x-follower-id","title":"X follower ID","description":"Charged once per follower id delivered (mode \"ids\").","priceUsd":0.00005},{"name":"x-followers-query","title":"Followers page","description":"Charged once per upstream page of up to 200 follower profiles (mode \"profiles\"), including the last page and empty pages; covers the provider's per-call minimum.","priceUsd":0.002},{"name":"x-follower-ids-query","title":"Follower IDs page","description":"Charged once per upstream page of up to 5,000 follower ids (mode \"ids\"), including the last page and empty pages; covers the provider's per-call minimum.","priceUsd":0.003}]},"input":{"description":"Paste X (Twitter) handles. The Actor returns their followers (newest first), one dataset record per follower, plus one summary record per account.","required":["handles"],"fields":[{"name":"handles","title":"Handles or profile URLs","type":"array","required":true,"description":"X handles (with or without @) or profile URLs, one per line. Duplicates are removed. Accounts on the Apify free plan can process up to 10 accounts per run.","prefill":["apify"],"editor":"stringList"},{"name":"maxFollowersPerUser","title":"Max followers per account","type":"integer","required":false,"description":"How many of the most recent followers to return per account (1–5000).","default":200,"prefill":20,"minimum":1,"maximum":5000},{"name":"mode","title":"Mode","type":"string","required":false,"description":"\"profiles\" returns full follower profiles (pages of up to 200). \"ids\" returns only numeric follower ids (pages of up to 5,000), much cheaper per row.","default":"profiles","enum":["profiles","ids"],"editor":"select"},{"name":"maxItems","title":"Max accounts","type":"integer","required":false,"description":"Safety cap on the number of accounts processed in this run. Accounts beyond it are not processed or charged; their number is reported in the run's status message and OUTPUT (inputItemsDropped).","default":1000,"minimum":1,"maximum":10000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Accounts processed in parallel (1–5).","default":3,"minimum":1,"maximum":5},{"name":"itemTimeoutSecs","title":"Per-account time limit (seconds)","type":"integer","required":false,"description":"Stop paginating an account after this long; rows already delivered are kept.","default":300,"minimum":30,"maximum":1800},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified TwitterAPI.io user object to each profile record under `raw` (profiles mode only).","default":false}]},"exampleInput":{"handles":["apify"],"maxFollowersPerUser":20},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The input item this record corresponds to."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan (result rows are always ok)","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a pay-per-event charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"Pay-per-event event charged for this record."},{"name":"source","type":"string","title":"Source","description":"Upstream data source (twitterapi = TwitterAPI.io)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"error","type":"object","title":"Error","description":"code / message when status is not ok."},{"name":"warnings","type":"array","title":"Warnings","description":"Non-fatal notes (e.g. stopped early)."},{"name":"recordType","type":"string","title":"Row type","description":"follower (one per profile, charged) | follower-id (one per id, charged) | account-summary (one per input account, free)."},{"name":"ofHandle","type":"string | null","title":"Of account","description":"The input account whose followers this row lists."},{"name":"position","type":"integer | null","title":"Position","description":"1 = most recent follower (newest first)."},{"name":"handle","type":"string | null","title":"Handle","description":"X handle without @.","example":"NASA"},{"name":"userId","type":"string | null","title":"User id","description":"Numeric X user id as a string."},{"name":"name","type":"string | null","title":"Name","description":"Display name."},{"name":"bio","type":"string | null","title":"Bio","description":"Profile description with t.co links expanded."},{"name":"location","type":"string | null","title":"Location","description":"Free-text profile location."},{"name":"url","type":"string | null","title":"Website","description":"Website link from the profile (expanded)."},{"name":"profileUrl","type":"string | null","title":"Profile URL","description":"https://x.com/<handle>."},{"name":"followers","type":"integer | null","title":"Followers","description":"Follower count."},{"name":"following","type":"integer | null","title":"Following","description":"Accounts followed."},{"name":"tweets","type":"integer | null","title":"Posts","description":"Total posts incl. replies and reposts (statusesCount)."},{"name":"likes","type":"integer | null","title":"Likes given","description":"Posts this account has liked (favouritesCount)."},{"name":"mediaCount","type":"integer | null","title":"Media","description":"Media posts."},{"name":"isBlueVerified","type":"boolean | null","title":"Blue verified","description":"Has a blue check (null when the endpoint does not report it)."},{"name":"verifiedType","type":"string | null","title":"Verified type","description":"Business / Government / null."},{"name":"profileImageUrl","type":"string | null","title":"Avatar","description":"Profile image URL."},{"name":"coverImageUrl","type":"string | null","title":"Banner","description":"Banner image URL."},{"name":"createdAt","type":"string | null","title":"Created at","description":"ISO 8601 account creation time."},{"name":"isAutomated","type":"boolean | null","title":"Automated","description":"Labelled as an automated account."},{"name":"automatedBy","type":"string | null","title":"Automated by","description":"Handle of the operator of an automated account."},{"name":"canDm","type":"boolean | null","title":"Can DM","description":"Accepts direct messages."},{"name":"possiblySensitive","type":"boolean | null","title":"Possibly sensitive","description":"Marked as possibly sensitive."},{"name":"withheldInCountries","type":"array","title":"Withheld in","description":"Country codes where the account is withheld."},{"name":"pinnedTweetIds","type":"array","title":"Pinned post ids","description":"Ids of pinned posts."},{"name":"unavailable","type":"boolean | null","title":"Unavailable","description":"Account is suspended / deactivated / unavailable."},{"name":"unavailableReason","type":"string | null","title":"Unavailable reason","description":"e.g. suspended."},{"name":"unavailableMessage","type":"string | null","title":"Unavailable message","description":"Upstream message for unavailable accounts."},{"name":"mode","type":"string | null","title":"Mode","description":"profiles | ids (summary rows)."},{"name":"followersReturned","type":"integer | null","title":"Rows returned","description":"followers delivered for this account (summary rows)."},{"name":"pageFeesCharged","type":"integer | null","title":"Page fees charged","description":"Per-page events charged for this account (summary rows)."},{"name":"pageFeeEvent","type":"string | null","title":"Page fee event","description":"Event name of the per-page fee (summary rows)."},{"name":"pagesFetched","type":"integer | null","title":"Pages fetched","description":"Upstream pages fetched (summary rows)."},{"name":"stopReason","type":"string | null","title":"Stop reason","description":"limit | end | budget | deadline | empty_pages | max_pages | error (summary rows)."}],"outputExample":{"input":"apify","recordType":"follower","ofHandle":"apify","position":1,"handle":"jane_dev","userId":"1458000000000000000","name":"Jane","bio":"Data engineer. Blog: https://jane.dev","location":"Prague","url":"https://jane.dev","profileUrl":"https://x.com/jane_dev","followers":812,"following":301,"tweets":4210,"likes":9120,"mediaCount":133,"isBlueVerified":null,"verifiedType":null,"profileImageUrl":"https://pbs.twimg.com/profile_images/1/a_normal.jpg","coverImageUrl":"https://pbs.twimg.com/profile_banners/1/1","createdAt":"2021-11-03T09:12:44.000Z","isAutomated":false,"automatedBy":null,"canDm":true,"possiblySensitive":false,"withheldInCountries":[],"pinnedTweetIds":[],"unavailable":false,"unavailableReason":null,"unavailableMessage":null,"status":"ok","charged":true,"chargedEvent":"x-follower-profile","source":"twitterapi","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"Export the 200 newest followers of @apify on X with their bios, locations and follower counts.","related":["x-following","x-profile-lookup","x-account-overview"],"urls":{"site":"https://www.sfoln.com/actors/x-followers/","siteJson":"https://www.sfoln.com/actors/x-followers.json","siteMarkdown":"https://www.sfoln.com/actors/x-followers.md","runSync":"https://api.apify.com/v2/actors/sfoln~x-followers/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~x-followers/runs","mcp":"https://mcp.apify.com?tools=sfoln/x-followers","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Twitter%20Followers%20Scraper%20(X)%20(sfoln%2Fx-followers)&body=Please%20publish%20x-followers.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}