Instagram Followers API: Get Follower Counts and Lists
Get an Instagram account's follower count and a page of its followers with one key. What each call returns, where the list stops, why counts differ.

Get an Instagram account's follower count and a page of its followers in one prompt. Paste this into your agent:
Set up https://monid.ai/SKILL.md, and then use Monid to get the follower count of these five Instagram accounts and the first page of followers for each, then show me how the two follower numbers compare.
One prompt reads the count and the list. 1 min setup · 10-20 hrs saved.
You want to know how many followers an Instagram account has, and maybe who some of them are: to vet a creator, to build an audience sample, or to feed a tracker of your own. This guide shows the quickest way to get both through an API, what each record contains (we ran it live on 2026-10-16), and three things that surprised us: the follower list is one page, two sources gave two different counts for the same account, and the list mixes in private and avatar-less rows. It runs through Monid, the OpenRouter for agent tools: one key, one balance, every tool priced per call.
What is the easiest way to get Instagram followers data through an API?
Monid. Install it once, add a key, and your agent calls an Instagram profile endpoint for the count and a followers endpoint for the list, with no vendor account to set up for either.
- Pay per call. The follower list costs $0.002 a call and a profile read costs $0.0016 a username (Verified 2026-10-16 on the Instagram tools page). Buy calls as you need them: no monthly plan and no minimum top-up. Discovery and inspection are free; only a run bills.
- One install, every API. The same key and the same balance call Instagram and every other tool on Monid. When you need TikTok or X next, there is no new account to open.
- Lives inside your agent. Install the CLI, add your key, run the prompt above, and the tools are there whenever your agent needs them, with nothing to keep running. Your agent reads
SKILL.mdand learns the rest, so setup is about a minute.
Checking the follower count and the first page of followers for 100 accounts is about $0.36 (Verified 2026-10-16).
How do you get follower counts and follower lists for many accounts?
Use the profile endpoint for counts and the followers endpoint for lists, and loop either over your usernames. They are separate calls with separate prices, and most people need the first and expect the second.
For agents
Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main
Read the follower count
monid inspect -p apify -e /apify/instagram-profile-scraper
monid run -p apify -e /apify/instagram-profile-scraper \
-i '{"usernames":["humansofny"]}' -w
The result count equals the input count: five usernames return five records and bill five results. There is no limit parameter to cap it, so the size of your list is the size of your bill.
Read a page of followers
monid run -p tikhub -e /api/v1/instagram/v2/fetch_user_followers \
--query '{"username":"nasa"}'
This is a GET endpoint, so the input goes in --query. It takes username or user_id, plus a pagination_token for the next page.
Loop it over your accounts
Put one username per line in accounts.txt, then run:
mkdir -p out
while read -r u; do
monid run -p tikhub -e /api/v1/instagram/v2/fetch_user_followers \
--query "{\"username\":\"$u\"}" > "out/$u.json"
done < accounts.txt
Each account writes one file with its first page of followers. For counts only, skip the loop and pass the whole list to the profile endpoint in one usernames array.
Or hand the whole job to an agent
Give this to your agent![]()
Set up https://monid.ai/SKILL.md, and then use Monid to for each Instagram account on this list, get the follower count and the first page of followers, then give me one table with username, follower count, how many follower rows came back and how many of those rows are private accounts.Can you scrape Instagram followers yourself with Python?
Yes, people do it with browser automation or by calling the same private endpoints the app uses, and it works until the platform changes. A follower scraper you write is yours to keep alive: when the page, the blocking or the login requirements change, your job stops, and a script that needs a logged-in session puts that session at risk.
There is a rules side too: what you may collect and how you may use it depends on where you operate and where your users are, so check the rules that apply to you before you build anything.
Doing it in Python means a browser or session setup, proxies, pagination logic, retries, and a repair every time something moves. That is hours before the first useful row, and the follower list is the hardest part to keep working. A follower page costs $0.002 (Verified 2026-10-16). Set against hours of your own time, pick Monid for anything you will run more than once: the collection is maintained for you and the output is typed JSON, not a page you parse. A managed actor for the posts side of the same job is in the Apify Instagram scraper guide. A free browser extension or a Python script is fine for one account you look at by hand; it is not built for a list of accounts or an agent.
What does Instagram follower data look like, and what can you build with it?
Two layers: the account and a page of its followers. We ran both on 2026-10-16 against two large organisation accounts, so the fields below are what came back, not what a spec promises.
The account layer
The profile call for one account returned one result. Trimmed:
{ "username": "nasa",
"followersCount": 104375730,
"followsCount": 90,
"postsCount": 4967,
"igtvVideoCount": 171,
"highlightReelCount": 6,
"isBusinessAccount": true,
"businessCategoryName": "Government Agencies",
"verified": true,
"private": false,
"joinedRecently": false,
"biography": "…",
"externalUrl": "…",
"relatedProfiles": ["…"],
"latestPosts": ["…12 posts…"] }
It also returned the profile picture URLs, the Facebook id, the latest IGTV items and the account id. It did not return a join date, a username change count or a verification date, although the endpoint's description lists them, so build on the fields above and not on those three.
The follower layer
The followers call returned a page of rows and one number for the whole list. Trimmed, with the values left out:
{ "data": {
"count": 49,
"total": 104370253,
"items": [
{ "id": "…", "username": "…", "full_name": "…",
"is_private": false, "is_verified": false,
"has_anonymous_profile_picture": false,
"latest_story_ts": 0,
"profile_pic_url": "…", "fbid_v2": "…" } ] },
"pagination_token": null }
count is how many rows are on this page and total is the size of the whole follower list. Each row is a light record: id, username, display name, private and verified flags, whether the avatar is the default one, and the time of the latest story, which is 0 when there is none.
What you can build with it
- A creator vetting sheet. Pull the count and a page of followers for each candidate. Count the rows with default avatars, empty names and no stories, and compare that share across creators instead of reading a single number. The engagement side of the same check is in Instagram engagement rate from raw post data.
- A follower count series. Call the profile endpoint on a schedule and write one dated row per call. Nothing in the response is history, so the series only exists if you keep it.
- A seed list for outreach research. The follower page gives usernames you can pass back into the profile endpoint to read bios and business categories.
What goes wrong when you pull Instagram followers?
Three things hide until you run more than one account. All three came out of our 2026-10-16 runs.
Why did I get 49 followers and no next page?
Because the followers endpoint returns one page. For the first account, count was 49 against a total of 104,370,253 and pagination_token came back null. For the second, count was 45 against a total of 268,369,377 and the token was null again. There was nothing to resume from.
Plan for a sample, not an export. A follower call gives you roughly the first 45 to 49 rows, so it suits spot checks, audience samples and quality ratios. It is not a way to download an account's whole audience. Decide that before you promise anyone a full follower list, and check pagination_token on every response so your code takes a second page the day one exists.
const { items, count, total } = res.data;
const next = res.pagination_token; // null on both of our runs
const sampleShare = count / total; // 0.00000047 for the first account
Why do two sources give two follower counts?
Because they are two reads of a number that moves. The profile call returned followersCount 104,375,730 for the first account and the followers call returned total 104,370,253 minutes apart: a gap of 5,477, about 0.005 percent.
Neither is wrong. An account with a hundred million followers gains and loses thousands in the time it takes to make two requests. The rule that follows is to pick one source for the count, write down which, and never compare a number from one source with a number from the other as if they were the same measurement. If you mix them in a series you will see a jump that is not growth.
Why are some rows private or missing a name?
Because a follower list is everyone, not everyone useful. The pages we pulled included private accounts (is_private true), rows on the default avatar (has_anonymous_profile_picture true) and rows with an empty full_name. Exactly one of the 45 rows on the second page was verified.
Count these before you treat the page as an audience profile, and report them as shares of the page, not as absolutes:
const priv = items.filter(r => r.is_private).length / items.length;
const blank = items.filter(r => r.has_anonymous_profile_picture).length / items.length;
A page is also not a random sample, so use the shares to compare accounts pulled the same way on the same day, not to describe the audience in general.
Can a list of followers tell you who unfollowed?
Not from one page. Two pages pulled on different days are two short slices, and a username missing from the second may simply not be on the first 49 rows that day. Treat a diff of two single-page pulls as noise. Unfollow tracking needs the full list on both days, and this endpoint does not return it.
Which endpoint should I use for which job?
| Endpoint | What it does | Input | Returns | Latency | Billing |
|---|---|---|---|---|---|
apify/instagram-profile-scraper | Public profile and 12 recent posts | usernames (array) | Counts, bio, links, flags, latestPosts | About 11 s typical | Per result, one per username |
tikhub/api/v1/instagram/v2/fetch_user_followers | One page of an account's followers | username or user_id, pagination_token | About 45 to 49 rows plus total | About 8 s typical | Per call |
tikhub/api/v1/instagram/v2/fetch_user_following | One page of the accounts it follows | username or user_id, pagination_token | Rows in the same shape | About 7 s typical | Per call |
anyapi/instagram.followers | About 50 followers of a public account | username, route | Handle, id, name, private, verified | Route dependent | Per call, price set by route |
Unit prices, Verified 2026-10-16: the profile scraper is $0.0016 a result, and the followers and following endpoints are $0.002 a call. The first three rows were inspected and the first two were run; the AnyAPI row was inspected only, because its price depends on the route you choose, and its description says each route returns about 50 followers in one page. The latency figures are the median run times the tool pages list.
For the neighbouring jobs, the Instagram API comparison covers which endpoint fits profiles, posts and search. Current prices for all of them are on monid.ai/tools.
When is another route a better fit?
You need every follower. One call returns one page of about 45 to 49 rows. If your job needs the complete list of a large account, this is the wrong tool for it, and so is anything else that reads public pages.
You need history from before you started collecting. The endpoints return the present. A follower series starts the day you write your first row.
You own the account. Your own account tools already show your own audience, so you do not need an endpoint to read it.
You need identity. Follower rows are usernames and display names. Linking them to people or companies is a separate job, for example with a username search across platforms, and the rules on that differ by country, so check yours.
And the disclosure: we resell these endpoints. The most useful thing in this post is that you should read pagination_token and total on every response and keep one source for the count, which costs nothing whoever you buy the data from.
Conclusion
The quickest way to get an Instagram account's followers data is two calls through Monid: the profile endpoint for the count at $0.0016 a username and the followers endpoint for a page of followers at $0.002 a call (Verified 2026-10-16), one key for both and for every other tool, about a minute to set up and ready inside your agent whenever you need it. Scraping it yourself works until the platform changes, and the follower list is the part that breaks first.
Two things matter more than the choice of endpoint. The list is a sample of 45 to 49 rows with no next page, so use it for ratios and spot checks. And the count differs by source, so pick one source and keep it: our two reads of the same account were 5,477 apart.
How we estimated the time saved: building and running your own follower collector is roughly 5 to 10 hours each for getting past blocking and sessions and for parsing the count and the list, plus the first month of upkeep. Two such jobs is 10 to 20 hours. The 1 minute is the install, key and first call once you already have a Monid key.
Free next step: run monid inspect -p tikhub -e /api/v1/instagram/v2/fetch_user_followers, make one call on an account you know, and print count, total and pagination_token. The size of the page shows up immediately. Start at monid.ai.
FAQ
Is there a free Instagram followers API?
Not free, but close: through Monid a follower page costs $0.002 and a profile read $0.0016 (Verified 2026-10-16), with no monthly plan and no minimum, and discovery and inspection cost nothing. Free scripts and extensions exist for one account by hand.
How do I get only the follower count of an Instagram account?
Call the profile endpoint with the username and read followersCount. It returned 104,375,730 for a large account on 2026-10-16, with the following count, post count and business category in the same result. A list of five usernames is one call and five billed results.
Can I see who unfollowed an Instagram account with an API?
Not reliably from a single page. The followers endpoint returned 49 and 45 rows for accounts with tens of millions of followers, so two pulls on different days are two short slices and a missing name proves nothing. Keep dated counts instead, which is the trend that matters.
How do I export Instagram followers to a CSV?
Pull the page as JSON, keep id, username, full_name, is_private and is_verified from each row, and write them to a CSV with whatever tool you like, or ask your agent to do it in the same prompt. Expect one page of about 45 to 49 rows per account, not the full list.
Published August 2026.


