Instagram Followers Count Scraper · Bulk · No Login
Pricing
from $1.30 / 1,000 profiles
Instagram Followers Count Scraper · Bulk · No Login
Follower and following counts for any list of Instagram handles. One request per profile, no login and no cookies. Also returns post count, verified and business flags, public email, phone, category and bio at the same price. Handles that do not exist come back as a named row.
Pricing
from $1.30 / 1,000 profiles
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Followers Count Scraper

Paste a list of Instagram handles, get follower and following counts back — plus post count, verified and business flags, public email, phone, category and the Facebook ID linked to the account, all in the same row at the same price.
| Input | Row emitted |
|---|---|
humansofny | one profile row with counts |
@nasa | one profile row with counts |
https://www.instagram.com/cristiano/ | one profile row with counts |
| a handle that does not exist | one error row naming it, not charged |
Pure HTTP. No browser, no login, no cookies, no session to get flagged.
Why Use This Scraper?
Follower counts are usually bought one of two ways: a heavyweight profile scraper that also drags in posts and comments you did not ask for, or a thin one that returns two numbers and nothing else. This is the cheap bulk lookup, carrying everything the same request already had.
Switching From Another Instagram Followers Scraper?
Your existing setup keeps working unchanged. The first eight output fields are a
field-for-field match of the widely used followers-count Actor in this category — same names,
same order, same formats, down to followsCount rather than followingCount, userUrl with no
trailing slash, and the YYYY-MM-DD - HH:mm UTC stamp:
{"profilePic": "https://instagram.frix7-1.fna.fbcdn.net/v/t51.2885-19/488057622_...","userName": "humansofny","followersCount": 12639945,"followsCount": 744,"timestamp": "2026-08-28 - 16:06","userUrl": "https://www.instagram.com/humansofny","userFullName": "Humans of New York","userId": "242598499"}
Point your spreadsheet, Make scenario, or script at this Actor and nothing downstream needs
touching. Everything past userId is added on the end, where it cannot break a consumer that
only reads the eight.
How It Works

Handles are normalised first — bare names, @handles and profile URLs all resolve to one form,
case-insensitively, and duplicates drop before any request is spent. Each surviving handle is
then looked up once, five in flight at a time, over plain HTTP. Every profile becomes one flat
row, and a handle that cannot be resolved becomes an error row naming it rather than vanishing
from a silently shorter list.
Measured 2026-08-28: five handles in 4.8 seconds.
Supported Inputs
| Input type | Pattern | Example |
|---|---|---|
| Bare handle | name | humansofny |
| @-prefixed handle | @name | @nasa |
| Profile URL | instagram.com/<name>/ | https://www.instagram.com/cristiano/ |
Mixed formats in one list are fine. Duplicates across formats collapse to one lookup, so
nasa, NASA, @nasa and the full URL cost you once.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
usernames | array of strings | Yes | — | Handles to look up. Bare names, @handles, or profile URLs. |
Example input
{"usernames": ["humansofny","@nasa","https://www.instagram.com/cristiano/"]}
Output Schema
One flat row per handle, ready for a spreadsheet without unpicking nested JSON.
{// --- the eight fields the incumbent Actor also returns, same names and order ---"profilePic": "https://instagram.frix7-1.fna.fbcdn.net/v/t51.2885-19/488057622_...","userName": "humansofny","followersCount": 12639945,"followsCount": 744,"timestamp": "2026-08-28 - 16:06", // UTC, no seconds - matches the incumbent's format"userUrl": "https://www.instagram.com/humansofny","userFullName": "Humans of New York","userId": "242598499",// --- everything the same request already carried ---"postsCount": 5870,"isPrivate": false,"isVerified": true,"isBusiness": false,"biography": "New York City, one story at a time.","externalUrl": "https://bit.ly/4tX4uZt","publicEmail": null, // business accounts that published one"publicPhone": null, // assembled from IG's country-code + number fields"category": null, // e.g. "Clothing (Brand)", "Restaurant""fbId": "107111740685519", // the Facebook user id Instagram links to this account"locationId": null, // a business's place id, when set"accountType": 3, // 2 on business accounts, 3 on personal/creator"scrapedAt": "2026-08-28T16:06:51.495Z" // full ISO 8601 - use this for date maths}
Business accounts fill the contact fields. Measured 2026-08-28: zara returned
instagramcare@zara.com and category Clothing (Brand), sephora returned +18777374672,
gymshark returned support@gymshark.com, shakeshack returned locationId 235910714.
Error rows
A handle that cannot be resolved returns a row instead of vanishing:
{"userName": "zzzqqqxxxnotarealuser12345","error": "user_not_found","message": "Instagram has no public account @zzzqqqxxxnotarealuser12345. The handle may be misspelled, renamed, deactivated, or banned."}
error | Meaning | Charged |
|---|---|---|
invalid_username | Not a usable handle or profile URL. No request was spent. | No |
user_not_found | Instagram has no public account under that handle. | No |
no_follower_count | The account resolved but returned no follower count. | No |
Pricing
| Event | When it fires | Rate |
|---|---|---|
| Actor start | Once per run | $0.001 |
| Profile | Each profile row delivered with a follower count | from $0.0006 per profile |
Error rows are never charged. A profile found without a follower count is returned free rather than billed as a result.
What Makes This Richer Than the Competition
| Capability | Typical followers-count Actor | This Actor |
|---|---|---|
| Follower + following counts | yes | yes |
| Drop-in field names | no | yes, first eight fields match exactly |
| Post count | no | yes |
| Verified / business / private flags | no | yes |
| Public email + phone | no | yes, on business accounts |
| Business category | no | yes |
Facebook ID (fbId) | no | yes, present on every profile measured |
| Named row for a bad handle | no, silently shorter list | yes, and not charged |
| Duplicates billed once | no | yes, deduped before any request |
Notes & Limitations
Private accounts work — follower and following counts are public on them, so they come back
normally, and isPrivate marks which ones they are. Verified 2026-08-28 against a live private
account.
Contact fields exist only on business and creator accounts that filled them in. Personal
accounts leave them blank and the row reports null rather than guessing.
Instagram exposes address_street, city_name and zip on this endpoint but returned them
empty on every profile measured, local businesses with real addresses included, so they are
deliberately not surfaced. A column that is always blank is worse than no column.
profilePic is the same 150x150 asset the incumbent returns. Instagram's HD portrait field was
null on every profile measured.
FAQ
Do I need an Instagram account, login, or cookies? No. Nothing is authenticated and no session is used, so there is no account to get flagged.
Do private accounts work?
Yes. Their counts are public, so they come back normally. isPrivate tells you which they are.
How fast is it? About 1.2 seconds per handle, five at a time. Five handles took 4.8 seconds end to end.
What happens to duplicates in my list? They are removed before any request is made, so you are charged once.
What is fbId for?
It is the Facebook user id Instagram links the account to. It was present on every profile
measured, and it is what lets you join an Instagram handle to Facebook data without a second
lookup.
What if a run returns nothing at all? It exits FAILED with a reason, rather than reporting success with an empty dataset. The one exception is every requested handle being confirmed non-existent — that exits SUCCEEDED, with a row per handle explaining why.
🤖 For AI Agents & LLM Apps
Purpose: bulk Instagram profile metrics. Give it handles, get follower/following/post counts plus business contact fields, one flat row per handle.
Minimal tested input:
{ "usernames": ["humansofny", "@nasa", "https://www.instagram.com/cristiano/"] }
Output fields (flat, no nesting): profilePic, userName, followersCount, followsCount,
timestamp, userUrl, userFullName, userId, postsCount, isPrivate, isVerified,
isBusiness, biography, externalUrl, publicEmail, publicPhone, category, fbId,
locationId, accountType, scrapedAt.
Error rows carry userName + error + message and no metric fields. Branch on the
presence of error. Values: invalid_username, user_not_found, no_follower_count.
Billing: one profile event per delivered profile row, plus one actor start. Error rows are
not charged. Duplicate handles are deduplicated before billing.
Behaviour worth knowing: input accepts bare handles, @handles and profile URLs
interchangeably; private accounts return counts normally; timestamp has no seconds or timezone
marker, so use scrapedAt for date arithmetic; an empty run fails loudly unless every handle was
confirmed non-existent.
⚠️ Disclaimer
This Actor collects only publicly available information from Instagram profiles — the same data any logged-out visitor can see. It does not log in, use cookies, or access private accounts. You are responsible for using the output in line with Instagram's terms and applicable data protection law, including GDPR where personal data is involved.
SEO Keywords
instagram followers count scraper, instagram follower count api, bulk instagram followers, instagram following count, instagram profile metrics, instagram follower tracker, influencer follower count, instagram audience size, instagram account stats, instagram bulk profile lookup, instagram business email scraper, instagram category scraper