Instagram Followers And Following Scrapper
Pricing
$24.99/month + usage
Instagram Followers And Following Scrapper
๐ Instagram Followers & Following Scrapper (Scraper) pulls public profiles, usernames, bios & counts. ๐ Export CSV/JSON for audience insights, competitor research & growth. โก Fast, reliable, rate-limit aware. ๐ Perfect for marketers, analysts & researchers.
Pricing
$24.99/month + usage
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
30
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Followers Scraper โ Followers, Following & Numeric IDs
This Actor pulls the complete followers or following list from any public Instagram profile and returns full user records, not just handles. Point it at one or more Instagram profile URLs or usernames, pick Followers or Following mode, and it pages through Instagram's own API to collect each user's numeric IDs, verification status, privacy flag, and profile picture as structured JSON โ ready to load into a spreadsheet, a database, or pass straight to an LLM as grounding data. No Instagram login is required to start a run.
What is Instagram Followers Scraper?
Instagram Followers Scraper is a bulk data extraction Actor that queries one or more Instagram profiles and returns either their followers or their following list โ your choice, per run โ as a single, structured dataset. Its distinguishing trait is that every row carries five separate Instagram identity fields (pk, pk_id, id, fbid_v2, strong_id__), not just a username and display name, which is more numeric-identity data than most followers scrapers on the Apify Store expose. It runs logged-out by default; an optional Instagram sessionid cookie improves success rates but is not required to start a run.
- Scrape followers or following for each profile in the same run โ pick the mode with one input field
- Queue multiple Instagram usernames or profile URLs and process them in a single job
- In followers mode, once Instagram's own follower-list endpoint stops returning new users, the Actor also mines the profile's posts and comment threads for additional followers
- Automatic proxy escalation โ direct connection โ Apify datacenter proxy โ sticky residential proxy โ whenever Instagram blocks a request
- Live incremental saving: every row lands in the dataset as soon as it's parsed, so a run that stops early still keeps partial results
- Per-row deduplication by numeric user ID, plus a real
successflag computed from whether that row actually parsed an ID and a username
What data can you get with Instagram Followers Scraper?
Every run returns one row per Instagram user, in one of two result types depending on scrapeMode.
| Result Type | Extracted Fields | Primary Use Case |
|---|---|---|
| Followers | pk, pk_id, id, username, full_name, profile_pic_url, profile_pic_id, is_verified, is_private, fbid_v2, strong_id__, third_party_downloads_enabled, has_anonymous_profile_picture, account_badges, latest_reel_media, is_favorite, followed_by, profileUrl, scrapedAt, success | Audience analysis, lead lists, follower auditing |
| Following | Same 20 fields as Followers, scoped to accounts the source profile follows | Outreach targeting, partnership and influencer discovery |
Full numeric Instagram IDs
Most followers scrapers on the Apify Store stop at username, full_name, and a profile picture URL. This Actor's row-building function (build_user_entry in extractor.py) writes five distinct Instagram identity fields per user โ pk, pk_id, id, fbid_v2, and strong_id__ โ plus profileUrl, a canonical clickable link built from the username, and a success flag that only reads true when a stable ID and username were both actually parsed for that row. That matters because usernames change; numeric IDs don't. A dataset keyed on pk lets you re-identify the same account across scrapes even after a handle change, which is the difference between a one-off export and a table you can actually join against your own CRM, an enrichment pipeline, or a later re-scrape run weeks apart. A typical row looks like:
{"pk": "6033056242","pk_id": "6033056242","id": "6033056242","fbid_v2": "17841401234567","strong_id__": "6033056242","username": "nike_fan_88","profileUrl": "https://www.instagram.com/nike_fan_88/"}
Following records
Setting scrapeMode to following returns the same 20-field schema, scoped to the accounts each source profile follows rather than its followers. Unlike the followers endpoint, Instagram's following API paginates fully to whatever count is requested, so this result type is not subject to the platform's ~45-50 item cap described below โ it's the more complete of the two lists to pull for outreach-list building or partnership discovery work. Because rows carry the same followed_by field as followers rows, you can run both modes for the same set of profiles and merge the two result types into one relationship map without re-matching usernames by hand.
How does Instagram Followers Scraper differ from the official Instagram API?
Instagram's Graph API does not expose a general-purpose endpoint to list the followers or following of an arbitrary account โ it reports aggregate counts and insights for accounts you own and have connected through Meta's app-review process, not a paginated user list for any profile you point it at. Instagram Followers Scraper instead queries Instagram's own web follower/following surface directly and returns the individual user records.
| Feature | Instagram Graph API | Instagram Followers Scraper |
|---|---|---|
| Follower/following list for any public profile | Not available | Yes |
| Aggregate follower/following counts | Yes, for connected accounts | Not the focus (per-user rows instead) |
| Requires the target account's own login/OAuth consent | Yes | No โ runs against public profiles, sessionid optional |
| App review / Meta approval needed | Yes, for most permissions | No |
| Numeric user IDs per follower | Not exposed | pk, pk_id, id, fbid_v2, strong_id__ |
| Output format | Graph API JSON, per-app schema | Consistent JSON dataset, exportable to CSV |
The Graph API is the right tool when you already manage the target Business or Creator account and only need your own aggregate stats. Instagram Followers Scraper is the right tool when you need the actual list of followers or following for any public profile, including ones you don't own.
How to scrape Instagram with Instagram Followers Scraper?
- Open Instagram Followers Scraper on Apify (
Scrapier/instagram-followers-and-following-scrapper) and click Try for free or Run. - Add one or more Instagram profile URLs or bare usernames to
startUrlsโ this is required. - Set
scrapeModetofollowersorfollowingโ also required. Optionally tunemaxData,pageSize,sessionId, andproxyConfiguration. - Start the run.
- Watch results land in the Dataset tab live, then export as JSON, CSV, or Excel once the run finishes.
Example request body:
{"startUrls": ["https://www.instagram.com/cristiano/", "nike"],"scrapeMode": "followers","maxData": 500}
How to run multiple queries in one job
Add every profile URL or username you want scraped to the startUrls array โ the Actor processes them one at a time in a single run, applying the same scrapeMode, maxData, and pageSize to each. There is no separate batch-upload format; a plain list of strings (or {"url": "..."} objects) is all startUrls accepts. Profiles are handled sequentially with a short randomized delay between them, not in parallel, so no concurrency setting applies here.
โฌ๏ธ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
startUrls | Yes | array | Instagram profile URLs or bare usernames to scrape. Add as many as you like โ processed one at a time. | ["https://www.instagram.com/cristiano/", "nike"] |
scrapeMode | Yes | string (enum: followers, following) | Which relationship list to scrape for every profile in startUrls. Default followers. | "followers" |
maxData | No | integer (0โ100000) | Max items to collect per profile. Default 100. 0 = unlimited (paginate until Instagram stops returning pages / posts run out). | 500 |
pageSize | No | integer (1โ50) | Advanced tuning: users requested per Instagram API page. Default 12 (Instagram's own typical page size). | 12 |
sessionId | No | string (secret) | Your Instagram sessionid cookie value. Optional but recommended for better success rates. | "80339464000%3A..." |
proxyConfiguration | No | object | Apify Proxy configuration. Default {"useApifyProxy": false} โ the Actor still auto-escalates to datacenter then residential proxy if blocked. | {"useApifyProxy": false} |
Example input:
{"startUrls": ["https://www.instagram.com/cristiano/",{ "url": "nike" }],"scrapeMode": "followers","maxData": 1000,"pageSize": 12,"sessionId": "","proxyConfiguration": { "useApifyProxy": false }}
Pitfall: raising maxData doesn't guarantee a proportionally larger followers-mode result. Instagram's direct follower-list endpoint caps out at roughly 45-50 users per profile regardless of maxData or pageSize โ a current platform-side limit, not a bug in this Actor. Followers mode compensates by also mining the profile's posts and comments for additional followers up to maxData, so your final count depends on how many people have commented, not just on the number you set. following mode has no such cap and paginates fully.
โฌ๏ธ Output
Results are typed, normalized JSON with a consistent 20-field schema across every run, exportable as JSON, CSV, or Excel from the dataset. Every pushed row charges one row_result event โ including a row where only partial data was parsed, so filter on success: true if you want only fully-parsed rows.
Scraped results
[{"pk": "73320179592","pk_id": "73320179592","id": "73320179592","full_name": "Ana Rossi","is_private": true,"fbid_v2": "0","third_party_downloads_enabled": 0,"strong_id__": "73320179592","profile_pic_id": "","profile_pic_url": "https://instagram.fxyz1-1.fna.fbcdn.net/v/t51.2885-19/ana.jpg","is_verified": false,"username": "ana.rossi.travels","has_anonymous_profile_picture": false,"account_badges": [],"latest_reel_media": 0,"is_favorite": false,"followed_by": "cristiano","profileUrl": "https://www.instagram.com/ana.rossi.travels/","scrapedAt": "2026-07-24T09:15:22.000Z","success": true},{"pk": "6033056242","pk_id": "6033056242","id": "6033056242","full_name": "Nike Fan Club","is_private": false,"fbid_v2": "17841401234567","third_party_downloads_enabled": 1,"strong_id__": "6033056242","profile_pic_id": "","profile_pic_url": "https://instagram.fxyz1-1.fna.fbcdn.net/v/t51.2885-19/nike_fan.jpg","is_verified": true,"username": "nike_fan_88","has_anonymous_profile_picture": false,"account_badges": ["verified"],"latest_reel_media": 1721654400,"is_favorite": false,"followed_by": "nike","profileUrl": "https://www.instagram.com/nike_fan_88/","scrapedAt": "2026-07-24T09:16:03.000Z","success": true},{"pk": "1894720033","pk_id": "1894720033","id": "1894720033","full_name": "Devon Marsh","is_private": false,"fbid_v2": "0","third_party_downloads_enabled": 0,"strong_id__": "1894720033","profile_pic_id": "","profile_pic_url": "https://instagram.fxyz1-1.fna.fbcdn.net/v/t51.2885-19/devon.jpg","is_verified": false,"username": "devon.trains.daily","has_anonymous_profile_picture": false,"account_badges": [],"latest_reel_media": 0,"is_favorite": false,"followed_by": "nike","profileUrl": "https://www.instagram.com/devon.trains.daily/","scrapedAt": "2026-07-24T09:16:05.000Z","success": true}]
How can I use the data extracted with Instagram Followers Scraper?
- Influencer and partnership discovery teams: pull a creator's followers or following list and filter on
is_verifiedandaccount_badgesto shortlist accounts worth a partnership outreach, usingprofileUrlas the direct link to check. - Growth and lead-generation teams: turn any public account's followers or following into an outreach list, deduplicated by
pkacross multiple source profiles viafollowed_by. - AI engineers and LLM developers: have an agent call the Actor for a target profile, receive structured JSON, and ground follow-up answers ("does this account follow any verified accounts?") in the real
is_verifiedandfull_namefields instead of a model guess. - Competitive and audience benchmarking teams: scrape the followers of several competitor or partner accounts in one run and compare audience overlap using
followed_byandpkacross profiles.
How do you monitor Instagram follower and following changes over time?
Follower and following monitoring means running the same startUrls list on a schedule and diffing the resulting pk sets between runs to see who was gained or lost. Because every row carries a stable numeric pk (not just a username, which can change), you can reliably tell a re-scrape of the same account apart from a genuinely new follower, even across handle changes.
Concretely: run the Actor for a profile in followers mode, save the set of pk values from scrapedAt, then run it again on your next schedule. New pk values not present in the previous run are new followers; pk values from the previous run missing from the new one are unfollows. The same logic applies to following mode to track who an account has started or stopped following. followed_by lets you keep multiple source profiles' diffs separate in one combined dataset, and is_verified or account_badges changes on an existing pk flag an account that got or lost verification between runs.
Apify's built-in Scheduler can trigger a run on a cron interval against the same input, so the diffing step above is the only piece you need to add on your own end (a webhook, a small script, or a downstream pipeline reading the last two dataset exports).
Integrate Instagram Followers Scraper and automate your workflow
Instagram Followers Scraper works with any language or tool that can send an HTTP request.
REST API with Python
import requestsTOKEN = "YOUR_APIFY_TOKEN"url = f"https://api.apify.com/v2/acts/scrapier~instagram-followers-and-following-scrapper/run-sync-get-dataset-items?token={TOKEN}"payload = {"startUrls": ["https://www.instagram.com/cristiano/"],"scrapeMode": "followers","maxData": 200,}resp = requests.post(url, json=payload, timeout=180)rows = resp.json()print(f"Got {len(rows)} rows; first username: {rows[0]['username']}")
MCP for query-grounded AI agents
Instagram Followers Scraper is reachable through Apify's official MCP server, which exposes any Actor as a callable tool:
$npx @apify/actors-mcp-server --tools scrapier/instagram-followers-and-following-scrapper
with your APIFY_TOKEN set as an environment variable. An agent in Claude Desktop, Claude Code, Cursor, or VS Code's Copilot agent mode can then call the tool with a profile and scrapeMode, receive the JSON rows back, and ground its answer in the real data instead of guessing.
Scheduled monitoring and delivery
There is no actor-specific webhook feature; use Apify's platform-level Scheduler to trigger a run on a cron interval with a saved input, and Apify's dataset webhooks or the Python client to pull results into your own pipeline after each run finishes.
Is it legal to scrape Instagram followers and following?
Yes, for public data โ Instagram Followers Scraper only collects information any visitor can already see on a public profile page; it does not access private accounts or bypass a login wall. In hiQ Labs v. LinkedIn (9th Cir. 2019, reaffirmed 2022), the court held that scraping publicly accessible profile data does not violate the U.S. Computer Fraud and Abuse Act. Usernames, display names, and profile photos are still personal data under GDPR and CCPA once linked to an identifiable person, so bulk collection and storage should have a documented lawful basis and a retention policy, especially for EU or California residents. Scraping a few profiles for one-off research carries a different risk profile than scraping at scale for AI training or long-term storage. Consult your legal team for commercial use cases involving bulk data storage.
Frequently asked questions
Do I need an Instagram session ID?
No. The Actor runs logged-out by default. Providing a sessionId cookie is optional but recommended for better success rates; it's stored as a secret input and never shown in logs or the console.
What's the difference between followers and following mode?
scrapeMode: "followers" returns who follows each profile in startUrls; scrapeMode: "following" returns who each profile follows. Both use the same 20-field row schema.
How does Instagram Followers Scraper handle Instagram's anti-bot measures? It escalates automatically: a direct connection first, then an Apify datacenter proxy, then a sticky residential proxy with up to 3 retries, switching whenever a response looks like a block (401/403/429, or a checkpoint/challenge page).
Does Instagram Followers Scraper return full numeric user IDs?
Yes โ every row includes pk, pk_id, id, fbid_v2, and strong_id__. These are populated whenever Instagram's API returns them for that user; if the API omits pk_id or id for a given entry, the Actor falls back to pk so the field is never silently missing.
How many results does Instagram Followers Scraper return per profile?
Up to maxData (default 100, max 100000, or 0 for unlimited). In followers mode, Instagram's own follower-list endpoint currently caps out around 45-50 users per profile regardless of maxData โ a platform-side limit โ so the Actor supplements it by mining the profile's posts and comments for additional followers until maxData is reached. following mode has no such cap and paginates to the full maxData value.
Can I scrape private Instagram accounts? No. Only public accounts are supported โ this is an Instagram platform restriction, not a limitation specific to this Actor.
How do I use Instagram Followers Scraper to monitor follower changes over time?
Schedule the same startUrls and scrapeMode on a recurring Apify Scheduler run, then diff the pk values between the latest run and the previous one โ new pks are gains, missing pks are losses. See the monitoring section above for the full workflow.
Does Instagram Followers Scraper work with Claude, ChatGPT, and AI agent frameworks?
Yes. It's reachable through Apify's official MCP server (npx @apify/actors-mcp-server --tools scrapier/instagram-followers-and-following-scrapper) for MCP-native clients like Claude Desktop and Claude Code, and callable as a plain HTTP endpoint by any other agent framework that can issue a POST request.
Can I use Instagram Followers Scraper without managing proxies or Instagram credentials?
Yes. Proxy escalation (direct โ datacenter โ residential) is handled automatically, and no Instagram login is required โ you only need to supply the profiles to scrape. An optional sessionId cookie improves success rates but isn't mandatory.
Why does followers mode sometimes return more rows than the profile's visible follower count?
Because followers mode also harvests users from the profile's own posts and comment threads once the direct follower-list endpoint is exhausted, the collected set can include commenters alongside direct followers, up to maxData.
Your feedback
Found a bug or a field that doesn't match what's documented here? Let us know through the Actor's Issues tab on Apify or by messaging Scrapier support directly โ reports like this go straight into the next update.