Instagram Followers Count: Multiple Accounts Follower Counts avatar

Instagram Followers Count: Multiple Accounts Follower Counts

Pricing

from $1.55 / 1,000 results

Go to Apify Store
Instagram Followers Count: Multiple Accounts Follower Counts

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

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

1

Monthly active users

a day ago

Last modified

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 previousSnapshotDatasetId to 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 in watchlistAccounts; each is scraped sequentially with a randomized 2–4 second delay between requests
  • Cross-run growth mathfollowersDelta, followersDeltaPct, followersPerDay, followingDelta, postsDelta are computed only when a real prior snapshot exists; followersPerDay uses the actual elapsed time between the two snapshots, not a fixed daily assumption
  • Persistent named snapshot storewatchlistName selects a key-value store that survives across runs on your account, storing followersCount, followsCount, postsCount, runAt, snapshotCount and a bounded history[] array (capped by maxHistory) per profile
  • Verified/business status fieldsisVerified, isPrivate, isBusinessAccount, isProfessionalAccount, businessCategoryName, categoryName come straight from Instagram's own API response, not inferred
  • Alert-style filteringminGrowthPercent and onlyChanged shrink 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 supportproxyConfiguration is 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.

ParameterRequiredTypeDescriptionExample Value
watchlistAccountsNoarrayInstagram profiles to monitor for growth. Accepts full URLs, plain usernames, and @handles. Also accepts the base key urls.["natgeo", "https://instagram.com/nasa", "@cristiano"]
watchlistNameNostringName 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"
minGrowthPercentNointegerOnly 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
onlyChangedNobooleanWhen true, skip profiles whose followers, following AND posts are all unchanged since the last snapshot. Baseline runs always emit. Default: false.true
previousSnapshotDatasetIdNostringDataset 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"
maxHistoryNointegerHow many past snapshot points to retain per profile in the persistent store and mirror in the output history field. Default: 30.30
proxyConfigurationNoobjectApify 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

StrategyBest forRun patternOutput format
Real-time enrichmentInbound lead/creator vetting on demandOn-demand run, 1–few accounts, via APIJSON row appended to your record
Scheduled monitoring & alertingOngoing growth or churn trackingRecurring Apify Schedule, same watchlistNameDiffed dataset rows, webhook-ready
Bulk dataset buildResearch or cross-sectional growth datasetsOne or more runs across a large account listCSV/JSON dataset export
Scraper NameWhat it extracts
Instagram Followers Scraper: Multi-Profile AnalysisFollower lists across profiles plus a shared-follower overlap matrix
Instagram Followers With Mutual Connections ProfileFollowers/following expansion with mutual-connection (follows-back) diffing
Instagram Following Scraper With Daily Unfollowers ReportWho a profile follows, flagging accounts added/removed between runs
Instagram Profile Scraper With Bio Link & Email ExtractionEmails, phone numbers and social handles mined from a profile's bio and link
YouTube Channel Finder With Subscriber CountsCross-platform analog — subscriber/view/video growth deltas for YouTube channels
Twitter Profile Scraper: Sentiment AnalyzerCross-platform profile scraper with sentiment analysis on a Twitter/X account
Instagram Comments Scraper With Engagement AnalyticsPost/reel comment threads with per-comment engagement metrics
Instagram Hashtag & Engagement ScraperPosts and reels discovered by hashtag, ranked by engagement metrics
Instagram B2B Email Scraper: Business Type LeadsBusiness 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 csv
from apify_client import ApifyClient
client = 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.

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.

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.