Instagram Follower Scraper API
Our Instagram follower scraper resolves a username to its numeric account id and pages the follower list, returning each follower as a clean JSON row: username, full name, verified and private flags, avatar, and profile URL, with a cursor for the next page.
Why Instagram Follower data hides behind a login
Instagram serves the follower list only through an app endpoint that requires a logged-in session, so a logged-out request hits a login or checkpoint wall and no public follower feed exists. Our endpoint resolves the numeric account id and calls that follower API in the documented shape, and it reports a clear auth status when Instagram gates the list rather than returning a fake feed.
Your first Instagram Follower Scraper API call
curl "https://api.instagramscraperapi.com/api/v1/instagram/follower?username=nasa&count=50&api_key=$API_KEY" import requests, os
BASE = "https://api.instagramscraperapi.com"
API_KEY = os.environ["API_KEY"]
# Pass a username (no leading @) or a full profile URL, plus a page size.
data = requests.get(
f"{BASE}/api/v1/instagram/follower",
params={"username": "nasa", "count": 50, "api_key": API_KEY},
timeout=60,
).json()
for f in data["followers"]:
print(f["position"], f["username"], "verified:", f["is_verified"])
# Page further with the returned cursor when more are available.
while data.get("has_more"):
data = requests.get(
f"{BASE}/api/v1/instagram/follower",
params={"username": "nasa", "max_id": data["next_max_id"], "api_key": API_KEY},
timeout=60,
).json()
for f in data["followers"]:
print(f["position"], f["username"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
username | required | - | The Instagram username without the leading @, e.g. nasa. Required unless you pass url. The endpoint resolves it to the numeric account id the follower API keys on. |
url | optional | - | A full profile URL such as https://www.instagram.com/nasa/. The handle is parsed out of the path. One of username or url is required. |
count | optional | 50 | How many followers to pull this call, 1 to 200. Instagram caps a single page at around 50, so larger totals come through pagination. |
max_id | optional | - | The pagination cursor. Pass the next_max_id from the previous response to fetch the next page of followers. |
country | optional | US | Two-letter country code for the egress region. Defaults to US. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
What the Instagram Follower Scraper API hands back
{
"username": "nasa",
"user_id": "528817151",
"url": "https://www.instagram.com/nasa/",
"source": "instagram",
"followers": [
{
"position": 1,
"id": "1748234592",
"username": "space_explorer",
"full_name": "Space Explorer",
"is_private": false,
"is_verified": false,
"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/example.jpg",
"url": "https://www.instagram.com/space_explorer/"
}
],
"followers_count": 50,
"has_more": true,
"next_max_id": "QVFE...",
"big_list": true
} | Field | Type | Description |
|---|---|---|
username | string | The profile whose followers were requested. |
user_id | string | The numeric account id (pk) resolved from the profile, which the follower API keys on. |
url | string | The canonical profile URL. |
followers | array | The follower rows for this page. Each carries position, id, username, full_name, is_private, is_verified, profile_pic_url, and url. |
followers_count | integer | Number of follower rows returned on this page (one page per call). |
has_more | boolean | True when another page of followers is available, false or absent on the last page. |
next_max_id | string | Cursor for the next page. Pass it back as max_id, or null when there are no more. |
big_list | boolean | Instagram's flag for a large follower list that must be paged, or null when not reported. |
Where teams point Instagram data
Audience analysis
Overlap and lookalikes
Bot and quality screening
Community mapping
Lead sourcing
Growth auditing
How our Instagram Follower Scraper API stays reliable
We resolve the numeric account id and call Instagram's own follower API in the documented shape, mapping each entry to a stable row and paging with a cursor. Instagram gates that follower list behind a logged-in session, so on the logged-out tier the endpoint reports an honest auth status rather than a fabricated feed, and the request is not billed when it cannot return followers.
Id resolution built in
Cursor pagination
Clean follower rows
Residential proxies and anti-bot
Honest auth reporting
Pay for success
Instagram Follower Scraper API weighed against the Instagram API and DIY
| Our API | DIY (requests / headless) | Instagram Graph API | |
|---|---|---|---|
| Follower rows | Documented shape, cursor paged | You script the app endpoint yourself | No follower list endpoint |
| Id resolution | Handle or URL to numeric id, automatic | You resolve the id yourself | Not applicable |
| Setup | API key only | Residential proxies, session handling, parsers | Facebook app, linked Business account, app review |
| Login gate | Reported honestly when Instagram walls the list | You hit the wall and handle it yourself | Not exposed to third parties |
| Anti-bot and proxies | Built in, residential US | You build and maintain it | Not applicable |
| Billing | Only successful pages are charged | You eat the cost of blocked calls | Not applicable |
Pay only for what you pull
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
An Instagram follower scraper is a tool that reads an account's follower list and returns each follower in a structured format. Our endpoint takes a username or URL, resolves the numeric account id, and returns follower rows with username, full name, verified and private flags, avatar, and profile URL as JSON, plus a cursor to page through a large list.
Not reliably, and we are direct about it. Instagram serves the follower list only through an app endpoint that requires a logged-in session with a valid session cookie and CSRF token. A logged-out request hits a login or checkpoint wall, so there is no public follower feed. Our endpoint resolves the account id and calls that follower API in the correct shape, and when Instagram gates the list it reports an honest auth status rather than returning a fabricated list. A populated follower list needs an authenticated session.
It returns a classifiable auth status indicating the follower list needs an authenticated session, along with the resolved numeric account id so you know the id-resolution hop worked. It does not invent follower rows. Requests that cannot return followers because of the login gate are not billed.
Each successful call returns one page of followers, capped by Instagram at roughly 50 rows, plus a next_max_id cursor and a has_more flag. To fetch the next page, pass next_max_id back as the max_id parameter. Every page is one flat charge, so there is no server-side deep loop and no surprise multi-page bill.
The official Instagram Graph API does not expose a follower list to third parties at all; it is scoped to accounts you own or manage and returns aggregate follower counts, not the individual follower rows. Reading the follower list of another account is only possible through the app endpoint, which requires an authenticated session.
Scraping publicly visible data is broadly permitted in many jurisdictions, and US courts have declined to treat collecting public profile data as unauthorized access. A follower list, however, is personal data about many individuals, and Instagram's terms restrict automated collection and gate the list behind a login. That gate matters legally as well as technically: accessing data behind authentication you are not authorized to use can cross into unauthorized access. Use follower data only where you have a lawful basis, comply with GDPR and CCPA, and take your own legal advice.