Instagram Followers Count: Multiple Accounts Follower Counts
Pricing
from $1.55 / 1,000 results
Instagram Followers Count: Multiple Accounts Follower Counts
Instagram Followers Count scraper retrieves follower counts for multiple public Instagram accounts in bulk. Collect usernames, profile URLs, and follower totals to compare audience size, track growth, and support influencer, competitor, and social media research.
Pricing
from $1.55 / 1,000 results
Rating
0.0
(0)
Developer
Scrapio
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Instagram Follower Scraper — Counts, Verified Status and Bulk Lookup
Instagram Followers Count: Multiple Accounts Follower Counts tracks follower, following and post growth for any number of public Instagram profiles across scheduled runs, and returns typed JSON — no HTML, no manual math. Every re-run compares the current snapshot against the one it persisted last time and emits real deltas: followersDelta, followersDeltaPct, followersPerDay, followingDelta, postsDelta. The first run for any handle is a null-delta baseline; nothing is estimated or faked. This guide covers exactly what the Actor returns field by field, and how teams deploy it for enrichment, monitoring and bulk dataset builds.
🧭 What Does Instagram Followers Count Scraper Do?
Instagram Followers Count: Multiple Accounts Follower Counts is a Python Actor that fetches a public Instagram profile's follower count, following count, post count and full profile metadata, then diffs that snapshot against a persisted copy from the last time you ran it on the same watchlist. No Instagram account, login, or sessionid cookie is required — the Actor calls Instagram's public web_profile_info endpoint with a Chrome-impersonated HTTP client and falls back to parsing the public profile page if the API call fails. Growth only appears once you re-run it, because Apify runs are stateless by default and this Actor is what adds the memory layer on top.
- Bulk lookup of follower/following/post counts for any number of accounts in one run
- Cross-run growth deltas (
followersDelta,followersDeltaPct,followersPerDay,followingDelta,postsDelta) computed from a persisted named key-value store snapshot - Baseline detection (
isFirstSnapshot) so a first run never fabricates a delta - Full profile metadata alongside the counts:
isVerified,isPrivate,isBusinessAccount,biography,bioLinks,categoryName, and the profile's latest timeline posts - Optional diff source override via
previousSnapshotDatasetIdto compare against any prior run's dataset instead of the persistent store - Alert-style output filtering (
minGrowthPercent,onlyChanged) that trims the emitted rows without ever discarding the underlying snapshot history
⚡ Features & Capabilities
The Actor's capabilities split into three areas: what it extracts per profile, how the growth math works across runs, and where it sits relative to Scrapio's other Instagram scrapers.
Core features
- Multi-account bulk lookup — pass any number of usernames,
@handles, or full profile URLs inwatchlistAccounts; each is scraped sequentially with a randomized 2–4 second delay between requests - Cross-run growth math —
followersDelta,followersDeltaPct,followersPerDay,followingDelta,postsDeltaare computed only when a real prior snapshot exists;followersPerDayuses the actual elapsed time between the two snapshots, not a fixed daily assumption - Persistent named snapshot store —
watchlistNameselects a key-value store that survives across runs on your account, storingfollowersCount,followsCount,postsCount,runAt,snapshotCountand a boundedhistory[]array (capped bymaxHistory) per profile - Verified/business status fields —
isVerified,isPrivate,isBusinessAccount,isProfessionalAccount,businessCategoryName,categoryNamecome straight from Instagram's own API response, not inferred - Alert-style filtering —
minGrowthPercentandonlyChangedshrink the output to the profiles that actually moved, while every profile's snapshot is still saved so the next run's diff stays accurate - Resilient extraction — API-first (
web_profile_info) with a three-stage HTML/meta-tag fallback if Instagram serves a different page shape, plus retry-with-backoff on transient failures - Residential proxy support —
proxyConfigurationis wired for Apify's residential proxy groups for higher reliability at scale
Instagram Followers Count Scraper within the Scrapio data stack
Instagram Followers Count: Multiple Accounts Follower Counts covers growth-over-time tracking of follower, following and post counts for a watchlist of accounts. It does not cover the follower list itself or a network graph — for that, use Instagram Followers Scraper: Multi-Profile Analysis (follower lists plus shared-follower overlap) or Instagram Followers With Mutual Connections Profile (followers/following expansion with mutual-connection diffing). If you need to know who someone stopped following day to day rather than aggregate counts, use Instagram Following Scraper With Daily Unfollowers Report. For bio, email and contact-link mining instead of growth, use Instagram Profile Scraper With Bio Link & Email Extraction.
Why do developers and data teams scrape Instagram?
Instagram exposes follower counts, verification status and business metadata on every public profile, but the platform gives no built-in way to track how those numbers move over time across a list of accounts. Teams scrape it to fill that gap.
🏢 Influencer vetting and rate-card validation
Brand and agency teams pull followersCount, followersDelta and followersDeltaPct for a roster of creators before negotiating a sponsorship rate, since a creator's rate of growth — not just their current count — signals whether an audience is organic or recently inflated. A watchlist of prospective partners re-run weekly turns followersPerDay into an early warning for sudden, suspicious spikes (a common sign of purchased followers) versus steady organic growth. isVerified and isBusinessAccount are pulled into the same vetting sheet to confirm account legitimacy before a contract is signed, and bioLinks surfaces the creator's existing sponsor links for conflict-of-interest checks.
📊 AI training data and RAG indexing
biography, categoryName, businessCategoryName and latestPosts[].caption are the high-information text fields worth indexing — they describe what an account is and does in the account owner's own words, which generic follower-count APIs never expose. For RAG, indexing biography and recent latestPosts[].caption text alongside userName gives an agent groundable, current context when asked about a specific brand or creator account. For training data, the numeric fields (followersCount, followersDelta, postsCount) return as consistent typed primitives across every profile, so a model can be trained on growth patterns without a normalization pass.
📱 Competitive and market intelligence
Track a competitor's or category's official accounts on the same watchlist and re-run on a schedule to see followersDelta and postsDelta move in response to campaigns, product launches or PR events. postsCount and the latestPosts[] array show whether a competitor is shipping more content around a launch window, correlating posting cadence with the growth curve you're already capturing in the same row.
🔬 Research and academic use
Researchers studying public-figure or brand account growth, platform dynamics, or influencer economy trends can build a longitudinal dataset by re-running the same watchlist on a schedule and letting history[] and snapshotCount accumulate. Because every profile scraped here is public by definition — no login is used — the dataset stays within public-data research scope rather than requiring platform API access grants.
🎥 Product and SaaS development
The delta fields (followersDelta, followersDeltaPct, followersPerDay) are exactly the shape a growth-tracking dashboard, influencer-discovery tool, or creator-monitoring SaaS product needs as its backend data source, without building and maintaining the snapshot-diffing logic in-house.
🍚 Input Parameters
No parameter is marked required in the input schema, but the Actor raises a validation error at start if watchlistAccounts (or its alias urls) is empty — at least one account must be supplied.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
watchlistAccounts | No | array | Instagram profiles to monitor for growth. Accepts full URLs, plain usernames, and @handles. Also accepts the base key urls. | ["natgeo", "https://instagram.com/nasa", "@cristiano"] |
watchlistName | No | string | Name of the persistent (named) key-value store holding each profile's last snapshot. Keep it identical across runs of the same watchlist so growth accumulates; a different name starts a fresh baseline. Default: "instagram-growth-watchlist". | "instagram-growth-watchlist" |
minGrowthPercent | No | integer | Only emit a profile whose absolute follower change since the last snapshot is at least this percent. 0 emits all. Ignored on baseline runs. Default: 0. | 5 |
onlyChanged | No | boolean | When true, skip profiles whose followers, following AND posts are all unchanged since the last snapshot. Baseline runs always emit. Default: false. | true |
previousSnapshotDatasetId | No | string | Dataset ID of a previous run's output. When a profile appears in it, deltas are computed against that dataset instead of the named store. | "aBcD1234EfGh5678" |
maxHistory | No | integer | How many past snapshot points to retain per profile in the persistent store and mirror in the output history field. Default: 30. | 30 |
proxyConfiguration | No | object | Apify Proxy configuration. Residential proxy is recommended for reliable Instagram access at scale. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
{"watchlistAccounts": ["natgeo", "https://instagram.com/nasa", "@cristiano"],"watchlistName": "instagram-growth-watchlist","minGrowthPercent": 0,"onlyChanged": false,"previousSnapshotDatasetId": "","maxHistory": 30,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Supported URL types and input formats
watchlistAccounts accepts three interchangeable formats, validated against Instagram's [a-zA-Z0-9._]{1,30} username pattern:
- Plain username —
"natgeo" - Full profile URL —
"https://instagram.com/nasa"or"https://www.instagram.com/nasa/" - @handle —
"@cristiano"
Mix and match freely in the same list, e.g. ["natgeo", "https://instagram.com/nasa", "@cristiano"]. A legacy input shaped like a base Instagram-profile-scraper JSON (using the key urls instead of watchlistAccounts) still runs unchanged, since the Actor checks both keys.
📦 Output Format
Every run pushes one JSON row per successfully scraped, filter-passing profile to the default dataset, charged under the row_result pay-per-event. Profiles that fail to scrape, or that are excluded by minGrowthPercent/onlyChanged, are not pushed and are not charged — but their snapshot is still saved to the named store so the next run's diff stays accurate.
Output for the growth snapshot row
{"userId": "787132","userName": "natgeo","userFullName": "National Geographic","profilePic": "https://scontent.cdninstagram.com/v/t51.2885-19/44884218_345707922882714_2446069589734326272_n.jpg","biography": "Experience the world through the eyes of National Geographic photographers.","externalUrl": "https://on.natgeo.com/2FGdxbY","externalUrlShimmed": "https://l.instagram.com/?u=https%3A%2F%2Fon.natgeo.com%2F2FGdxbY","bioLinks": [{ "title": "Watch Now", "url": "https://on.natgeo.com/2FGdxbY", "linkType": "external" }],"isVerified": true,"isPrivate": false,"isBusinessAccount": true,"isProfessionalAccount": true,"businessCategoryName": "Media/News Company","categoryName": "Media/News Company","profilePicUrlHD": "https://scontent.cdninstagram.com/v/t51.2885-19/44884218_345707922882714_2446069589734326272_n.jpg?_nc_hd=1","followersCount": 279456123,"followsCount": 148,"postsCount": 175214,"userUrl": "https://www.instagram.com/natgeo","highlightReelCount": 22,"igtvVideoCount": 312,"hasClips": true,"hasChannel": false,"isJoinedRecently": false,"pronouns": [],"latestPosts": [{"shortCode": "C8x9QYzNBqk","url": "https://www.instagram.com/p/C8x9QYzNBqk/","type": "Video","caption": "A rare glimpse of the aurora borealis over Iceland's glaciers.","likesCount": 812340,"commentsCount": 4211,"timestamp": "2026-07-20T14:32:00.000Z","isVideo": true,"videoViewCount": 5432210,"displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/example.jpg"}],"dataSource": "web_profile_info","timestamp": "2026-07-25 - 09:14","scrapedAt": "2026-07-25T09:14:02Z","watchlistName": "instagram-growth-watchlist","isFirstSnapshot": false,"previousSnapshotAt": "2026-07-18T09:10:47Z","snapshotCount": 4,"followersDelta": 18342,"followersDeltaPct": 0.0066,"followersPerDay": 2619.61,"followingDelta": 2,"postsDelta": 11,"history": [{ "followersCount": 279437781, "followsCount": 146, "postsCount": 175203, "runAt": "2026-07-18T09:10:47Z" },{ "followersCount": 279401220, "followsCount": 146, "postsCount": 175189, "runAt": "2026-07-11T09:05:12Z" }]}
On a profile's very first run for a given watchlistName, the shape is identical but isFirstSnapshot is true, previousSnapshotAt is null, snapshotCount is 1, history is empty, and every delta field (followersDelta, followersDeltaPct, followersPerDay, followingDelta, postsDelta) is null rather than a fabricated zero — there is no prior data to subtract from.
The default dataset view surfaces 16 of the above fields as table columns: userName, userFullName, isVerified, followersCount, followersDelta, followersDeltaPct, followersPerDay, followsCount, followingDelta, postsCount, postsDelta, isFirstSnapshot, previousSnapshotAt, snapshotCount, userUrl, scrapedAt. Every other field above is still present on the underlying dataset item — the view is a display subset, not a schema limit.
Schema stability and export options
Field names are stable across runs and do not change when Instagram updates its front end, since the Actor reads from Instagram's structured web_profile_info API response first and only falls back to page parsing if that API changes shape. New fields may be added in future versions; existing field names are not renamed or removed. Every run's dataset can be exported from the Apify platform in JSON, JSONL, CSV, Excel (XLSX), HTML table, RSS or XML directly from the run's Dataset tab or via the Apify API, with no extra configuration required.
💡 Instagram Followers Count Scraper Strategy Guide
🎯 Strategy 1: Real-time enrichment pipeline
Trigger a run with a single account (or a short batch) whenever your system needs a fresh follower snapshot — a new lead comes in, a creator applies to a program, or a user connects their Instagram handle. Run the Actor via the Apify API, read followersCount, isVerified, followersDelta and biography from the resulting row, and write them straight back into your CRM or database record keyed on userName. Because the first call for any handle is a baseline, schedule a second call for the same watchlistName a few days later if you need a delta on record before your enrichment step completes. Keeping every enrichment call on one shared watchlistName also means the same profile enriched through two different workflows still diffs against a single, consistent snapshot history.
🎯 Strategy 2: Scheduled monitoring and alerting
Set up an Apify Schedule to re-run the same watchlist (same watchlistName) daily or weekly. Use onlyChanged: true to suppress unchanged rows and minGrowthPercent to suppress noise below a threshold you care about, then wire an Apify webhook on the run's completion to forward the diffed rows — filtered down to real movers — into Slack, email, or a monitoring dashboard. followersDeltaPct and followersPerDay are the fields to alert on, since they normalize for account size and time elapsed rather than raw counts.
🎯 Strategy 3: Bulk dataset build
Pass a large watchlistAccounts list in a single run to build a cross-sectional or longitudinal dataset. Profiles are fetched sequentially with a randomized 2–4 second delay between each, so very large lists are best split across multiple runs or scheduled in batches rather than run as one giant list. Export each run's dataset to CSV or JSON and append to your research warehouse; history[] and snapshotCount let you reconstruct a time series per profile without re-querying prior runs. Raise maxHistory beyond the default of 30 if your dataset needs a longer per-profile time series retained inside the snapshot store itself, rather than reassembled from many separate dataset exports.
Strategy comparison at a glance
| Strategy | Best for | Run pattern | Output format |
|---|---|---|---|
| Real-time enrichment | Inbound lead/creator vetting on demand | On-demand run, 1–few accounts, via API | JSON row appended to your record |
| Scheduled monitoring & alerting | Ongoing growth or churn tracking | Recurring Apify Schedule, same watchlistName | Diffed dataset rows, webhook-ready |
| Bulk dataset build | Research or cross-sectional growth datasets | One or more runs across a large account list | CSV/JSON dataset export |
🌴 Related Instagram Scrapers & Tools
| Scraper Name | What it extracts |
|---|---|
| Instagram Followers Scraper: Multi-Profile Analysis | Follower lists across profiles plus a shared-follower overlap matrix |
| Instagram Followers With Mutual Connections Profile | Followers/following expansion with mutual-connection (follows-back) diffing |
| Instagram Following Scraper With Daily Unfollowers Report | Who a profile follows, flagging accounts added/removed between runs |
| Instagram Profile Scraper With Bio Link & Email Extraction | Emails, phone numbers and social handles mined from a profile's bio and link |
| YouTube Channel Finder With Subscriber Counts | Cross-platform analog — subscriber/view/video growth deltas for YouTube channels |
| Twitter Profile Scraper: Sentiment Analyzer | Cross-platform profile scraper with sentiment analysis on a Twitter/X account |
| Instagram Comments Scraper With Engagement Analytics | Post/reel comment threads with per-comment engagement metrics |
| Instagram Hashtag & Engagement Scraper | Posts and reels discovered by hashtag, ranked by engagement metrics |
| Instagram B2B Email Scraper: Business Type Leads | Business or personal emails mined via hashtag/keyword/mentions discovery |
How to integrate Instagram Followers Count Scraper with your stack
Instagram Followers Count: Multiple Accounts Follower Counts works with any language or tool that can make an HTTP request to the Apify API, and has first-class SDKs for Python and Node.js.
Python
import csvfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")watchlist = ["natgeo", "https://instagram.com/nasa", "@cristiano"]run_input = {"watchlistAccounts": watchlist,"watchlistName": "instagram-growth-watchlist","minGrowthPercent": 0,"onlyChanged": False,"maxHistory": 30,"proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"]},}run = client.actor("Scrapio/instagram-followers-count-scraper-multiple-accounts-follower-counts").call(run_input=run_input)rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())with open("instagram_growth.csv", "w", newline="", encoding="utf-8") as f:writer = csv.DictWriter(f, fieldnames=["userName", "followersCount", "followersDelta", "followersDeltaPct","isVerified", "isFirstSnapshot", "scrapedAt",])writer.writeheader()for row in rows:writer.writerow({k: row.get(k) for k in writer.fieldnames})print(f"Wrote {len(rows)} rows to instagram_growth.csv")
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const input = {watchlistAccounts: ['natgeo', 'https://instagram.com/nasa', '@cristiano'],watchlistName: 'instagram-growth-watchlist',onlyChanged: true,minGrowthPercent: 5,};const run = await client.actor('Scrapio/instagram-followers-count-scraper-multiple-accounts-follower-counts').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const row of items) {console.log(`${row.userName}: ${row.followersCount} followers (Δ${row.followersDelta ?? 'baseline'})`);}
Async and scheduled pipelines
There is no webhook-only or fire-and-forget mode built into the Actor itself, but the standard Apify patterns apply directly: call client.actor(...).call() for a synchronous run, or .start() if you want to poll or use an Apify webhook on run completion instead of blocking. For recurring growth tracking, configure an Apify Schedule against the same watchlistName so every scheduled run diffs against the last — this is the mechanism Strategy 2 above depends on.
🎯 Who Needs Instagram Followers Count Scraper? (Use Cases & Industries)
🏢 Influencer marketing and brand partnership teams
An agency vetting 50 creator candidates for a campaign loads all 50 handles into watchlistAccounts, re-runs weekly, and filters the resulting sheet on followersDeltaPct and followersPerDay to flag accounts with organic, sustainable growth versus a sudden spike that suggests purchased followers — before a contract is signed.
📊 AI/RAG engineering teams
A team building a brand or creator research assistant indexes biography, categoryName and latestPosts[].caption into a vector store per account, and pulls followersCount/followersDelta as structured context so the assistant can answer "how is this account trending" with real numbers instead of a guess.
📱 Competitive intelligence analysts
A marketing analyst tracks five competitor brand accounts on one watchlist, scheduled daily, and correlates postsDelta spikes with followersDelta moves to see which content pushes actually grew the competitor's audience.
🔬 Researchers
Academic and market researchers studying influencer economy dynamics or platform growth patterns build a longitudinal, public-data-only dataset by re-running the same watchlist on a schedule and letting history[] accumulate snapshot points per account over time.
🎥 Product and SaaS builders
A team shipping a creator-monitoring or influencer-discovery product uses the Actor as the backend growth-data source, reading followersDelta, followersDeltaPct and followersPerDay directly into their own dashboard rather than building and maintaining snapshot-diffing logic in-house.
Is it legal to scrape Instagram?
Scraping publicly accessible web data is generally lawful in the United States — hiQ Labs, Inc. v. LinkedIn Corp., 9th Circuit, 2019, held that scraping data a website makes publicly available does not violate the Computer Fraud and Abuse Act. That precedent addresses criminal/unauthorized-access liability, not Instagram's own Terms of Service: automating access to Instagram is a breach of Meta's ToS, which is a civil contract matter between the account holder and Meta, not a criminal one. Separately, this Actor returns personal data — full names, bios, profile pictures and bio links belonging to real people — so data protection law (GDPR, CCPA, etc.) applies to what you do with it after collection. Instagram Followers Count: Multiple Accounts Follower Counts returns only publicly accessible data. What you do with that data is your responsibility — consult legal counsel for commercial applications involving personal data.
❓ Frequently asked questions
Does Instagram Followers Count Scraper work without an Instagram account?
Yes. The Actor calls Instagram's public web_profile_info endpoint (with an HTML fallback) and does not require a login, session cookie, or sessionid — only publicly visible profiles are scraped.
How does it handle Instagram's anti-scraping measures?
The HTTP client impersonates Chrome's TLS/HTTP2 fingerprint (via impit), retries with increasing backoff on failed requests, falls back through three additional extraction methods if the primary API call fails, and adds a randomized 2–4 second delay between profiles in the same run. Residential proxy support is wired in via proxyConfiguration.
Can I run it at scale without getting blocked?
Profiles in a watchlistAccounts list are fetched sequentially with a randomized delay between each, and a residential proxy group is recommended for higher reliability at volume. No uptime, success-rate or throughput figures are published for this Actor, so plan capacity by testing your own watchlist size rather than assuming a fixed number.
How fresh is the data it returns?
Every run performs a live fetch against Instagram — nothing is cached or replayed from a prior run for the row's profile fields. The delta fields, however, are only as fresh as your last run: followersDelta compares against whatever snapshot was persisted the previous time you ran the same watchlistName.
Is scraping Instagram legal?
hiQ Labs, Inc. v. LinkedIn Corp. (9th Circuit, 2019) is the most-cited U.S. precedent supporting the legality of scraping publicly available web data; see the "Is it legal to scrape Instagram?" section above for the full picture, including the separate ToS and data-protection questions.
Which fields work best for AI training and RAG indexing?
For RAG: index biography and latestPosts[].caption — the free-text fields that describe an account in its own words. For training data: followersCount, followersDelta, followersDeltaPct and postsCount return as consistent typed integers/floats across every profile, requiring no normalization pass before use.
Does the Actor return personal data, and who is responsible for it?
Yes — userFullName, biography, profilePic, bioLinks and pronouns can identify or describe a real person, which is personal data under GDPR and CCPA. The Actor returns only publicly available data; the lawful basis for storing, processing or otherwise using it sits with the person running the Actor.
What happens on the very first run for a new watchlist?
Every profile comes back as a baseline: isFirstSnapshot is true, all delta fields (followersDelta, followersDeltaPct, followersPerDay, followingDelta, postsDelta) are null, and previousSnapshotAt is null. Growth only appears starting from the second run against the same watchlistName.
Does it work with Claude, ChatGPT and other AI agent tools?
There is no dedicated MCP server for this Actor. It's callable as a standard HTTP/Apify API endpoint by any agent framework, and every response is typed JSON — ready to drop into an LLM context window without parsing.
ℹ️ Disclaimer
Instagram Followers Count: Multiple Accounts Follower Counts extracts only publicly available data from Instagram. This tool is intended for lawful use cases only. Users are responsible for complying with Instagram's terms of service and applicable data protection laws in their jurisdiction.