Instagram Followers & Following Scraper - Export Follower Lists
Pricing
from $0.11 / 1,000 profiles
Instagram Followers & Following Scraper - Export Follower Lists
Export the followers of public Instagram accounts, or the accounts they follow: username, name, user id, profile link, verified and private flags and picture, in Instagram's order. Paste handles, links or ids. Every row can carry a long list on in a later run.
Pricing
from $0.11 / 1,000 profiles
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
2
Bookmarked
53
Total users
22
Monthly active users
11 hours ago
Last modified
Categories
Security
Limited permissionsShare
Export the followers of public Instagram accounts, or the accounts they follow: paste handles, profile links or user ids and get one row per profile with username, name, user id, profile link, verified and private flags and picture, in the order Instagram lists them.
A private account's lists can't be read; you get a free note row for it instead. A long list doesn't have to fit in one run: every row carries a value that picks the list up again from the next profile.
| Input | Up to 50 Instagram handles, profile links or user ids |
| Output | One row per follower or followed account: username, name, user id, profile link, verified, private, picture, place in the list, and a value to carry the list on later |
| Ceiling | 50,000 profiles per account and per run; a longer list carries on in the next run |
| Account needed | None from you |
| Price | $0.105 per 1,000 profiles, the same on every plan. The free plan's $5 a month covers about 47,600 |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/instagram-followers-following-scraper |
| Set one field | usernames, labelled "Accounts" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-followers-following-scraper |
| How often | Weekly, to compare an account's lists over time |
🔍 What Instagram Followers & Following Scraper does
Each account is looked up first. One that is private, or isn't on Instagram, gets a free note row and nothing more. For the rest, the run reads the list you picked a page at a time, in Instagram's order, and position says where each profile sits. With Both lists, the followers come first, then the accounts followed.
A profile that turns up twice in one list arrives once. Every row carries continueFrom: paste the last one into Continue from in a new run and that list picks up from the next profile.
📋 What data you get from each Instagram follower
| What you get | Field |
|---|---|
| Username, name, user id, profile link | username, fullName, userId, profileUrl |
| Verified and private flags | isVerified, isPrivate |
| Picture, and whether it is the default one | profilePicUrl, hasAnonymousProfilePicture |
| Which list, and the place in it | recordType (follower or following), position |
| The account the list belongs to, with its counts | sourceUsername, sourceUserId, sourceFollowerCount, sourceFollowingCount |
| Where to carry the list on | continueFrom |
| When it was read | scrapedAt |
▶️ How to scrape Instagram followers
- Open the actor and go to the Input tab.
- Put the accounts into Accounts, one per line:
natgeo,@natgeo, a profile link or a user id. - Pick Followers, Following or Both lists in What to get.
- Set Results per account, then press Start.
- Open the Output tab; the Profiles view shows the main columns.
💰 How much does it cost to scrape Instagram followers?
$0.105 per 1,000 profiles on every plan, so 10,000 followers cost $1.05. The free plan's $5 a month covers about 47,600 profiles.
Not charged: note rows (a private or missing account, an empty list, a stop), and a profile that turns up twice in the same list.
📥 What you give it
| Field | What it does | Default |
|---|---|---|
usernames | Handles, profile links or numeric user ids, up to 50 | none |
dataToScrape | followers, following or both | followers |
maxResultsPerAccount | How many to get from each account's list, up to 50,000. With both, each list gets this many | 100 |
maxResults | The most profiles one run delivers, across all accounts, up to 50,000 | 5,000 |
continueFrom | The continueFrom value of an earlier run's row, to carry that list on | none |
With Continue from filled in, leave Accounts empty: the value names its own account and list, so What to get isn't read either. Input that can't work is refused before anything is looked up, with a free note saying what to change.
{"usernames": ["nasa", "https://www.instagram.com/spacex/"],"dataToScrape": "following","maxResultsPerAccount": 200}
📤 What you get back
A real row from a run on 7 November 2026, with the picture link cut short:
{"recordType": "following","ok": true,"charged": true,"sourceUsername": "nasa","sourceUserId": "528817151","sourceFollowerCount": 104419676,"sourceFollowingCount": 90,"position": 5,"username": "nasawebb","fullName": "NASA Webb Telescope","userId": "549313808","profileUrl": "https://www.instagram.com/nasawebb/","isVerified": true,"isPrivate": false,"profilePicUrl": "https://scontent-lax3-1.cdninstagram.com/v/t51.2885-19/432029380_...","hasAnonymousProfilePicture": false,"continueFrom": "eyJ2IjoxLCJ1IjoiNTI4ODE3MTUxIiwibCI6ImZvbGxvd2luZyIsInIiOiJnMiIsImMiOm51bGwsInAiOiI1NDkzMTM4MDgiLCJzIjo1LCJrIjo1fQ","scrapedAt": "2026-11-07T17:59:50.939Z"}
| Field | Worth knowing |
|---|---|
position | 1 is the first profile Instagram lists. A list carried on in a new run keeps counting |
sourceFollowerCount, sourceFollowingCount | The account's own counts when the run looked it up |
profilePicUrl | A link on Instagram's servers that expires after a few days |
continueFrom | Paste it whole. It carries the list on after its own row |
🧾 Reading the output
Real rows carry ok: true, charged: true and a recordType of follower or following. Each is billed as one profile.
Note rows carry recordType: "note", ok: false and an errorCode, and are never billed:
| Code | Meaning |
|---|---|
BAD_INPUT | A field couldn't be used; details says which |
NOT_FOUND | No Instagram account by that handle or id |
PRIVATE_ACCOUNT | The account is private, so its lists can't be read |
NO_RESULTS | The list came back empty |
NOT_SERVED | Instagram didn't serve this list in this run; re-run it, or carry on from its last row |
MAX_ITEMS, COST_LIMIT, TIME_LIMIT | The run stopped at your total, your spending limit or your time limit |
RUN_FULL | The run reached the most one run reads; carry on in a new run |
FREE_PLAN_LIMIT | A free-plan run stopped early; a paid plan runs the whole input |
SERVICE_UNAVAILABLE | Instagram data wasn't available for this run; nothing more was charged |
UNEXPECTED_ERROR | The run stopped on an error on our side; rows before it are kept |
To keep only profiles, filter on ok == true.
💡 What people use it for
- A brand choosing creators to work with checks who follows them, and how much of it is real people:
hasAnonymousProfilePictureand an emptyfullNamepick out the profiles nobody set up. - Agencies comparing two accounts' audiences: run both, then match the rows on
userId. - Researchers mapping who an organisation follows: the following list of a ministry, a team or a newsroom.
- Anyone who wants a dated copy of their own follower list, kept each month.
A recipe with our other actors: get the followers here, keep the rows with isPrivate false, then pass their usernames to Instagram Profile Scraper for their bios, counts and latest posts.
🚧 What it does not do
- No lists of private accounts; those get a free note row.
- No bios, follower counts or posts for the profiles in a list. Those come from Instagram Profile Scraper.
- No likes, comments or messages.
- It is not an official Instagram tool. Dami's Studio is independent and is not affiliated with or endorsed by Instagram or Meta, or by any other company named on this page.
🧭 Which Instagram scraper do you need?
| If you want | Use |
|---|---|
| Followers or following of accounts you name | This one, Instagram Followers & Following Scraper |
| Bio, counts and latest posts of those accounts | Instagram Profile Scraper |
| Reels for a keyword or hashtag | Instagram Reels Search Scraper |
| Posts under a hashtag | Instagram Hashtag Scraper |
| Posts at a place | Instagram Location Scraper |
❓ Questions people ask
Do I need an Instagram account to get someone's followers?
No, you don't need one, and there's no cookie to paste.
How do I get more followers than one run gives?
Copy continueFrom from the last row of that account and paste it into Continue from in a new run. The list picks up from the next profile, and position keeps counting.
Why don't the results match what I see in the app?
Instagram orders these lists for each viewer, so your app can show another order. People follow and leave all the time, so counts move while a list is read.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab on the actor page has ready code. For an assistant, use the MCP link https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-followers-following-scraper.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("dami_studio/instagram-followers-following-scraper").call(run_input={"usernames": ["nasa"], "dataToScrape": "following", "maxResultsPerAccount": 30},max_total_charge_usd=0.10,)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("ok") is False:continueprint(row["position"], row["username"], row["fullName"])
Is scraping Instagram followers legal?
This reads the lists of public accounts only, never private accounts or messages, and you need no account. A follower list is personal data, which GDPR and similar laws cover, so keep only what you need and don't use it to contact people who never asked. Instagram's own terms still apply to what you do with the data. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Include the run ID and the accounts you used.