Instagram Followers Count Scraper With Engagement Quality Score
Pricing
$19.99/month + usage
Instagram Followers Count Scraper With Engagement Quality Score
Get accurate follower statistics with the Instagram Followers Count Scraper. This Apify actor extracts real-time follower counts, usernames, bios, and profile data from public Instagram accounts—perfect for tracking growth, monitoring competitors, and analyzing influencer performance.
Pricing
$19.99/month + usage
Rating
5.0
(2)
Developer
Scraper Engine
Maintained by CommunityActor stats
1
Bookmarked
57
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Follower Scraper — Engagement Rate & Quality Score
Instagram Follower Scraper — Engagement Rate & Quality Score returns followersCount, engagementRatePct, avgLikes, avgComments and a weighted 0-100 audienceQualityScore for any public Instagram profile, delivered as structured JSON. It vets creators from a single request per profile — no follower list, no login. Filter results by minimum followers, following ratio or engagement rate before they reach your dataset. Add a list of usernames and start a run to see it in action.
What is Instagram Followers Count Scraper With Engagement Quality Score?
Instagram Followers Count Scraper With Engagement Quality Score is an Apify Actor that takes a list of Instagram usernames, handles or profile URLs and returns each account's public stats plus derived engagement analytics — average likes/comments, posting cadence, and a composite audience-quality score and band — in one request per profile. It does not require an Instagram account, session cookie or login; it reads Instagram's own public web_profile_info endpoint with browser-fingerprint impersonation, falling back to HTML parsing when needed. It's built for marketers, growth teams and developers who need to vet creator or brand accounts at scale without manually opening each profile.
What Instagram follower count data is publicly available to scrape?
Instagram exposes a public profile's core stats and bio to any visitor without logging in; the full follower/following list and anything inside Stories or DMs stay behind a login wall.
| Data Category | Public | Restricted (login) |
|---|---|---|
| Username, full name, bio | Yes | — |
| Follower / following counts | Yes | — |
| Latest posts (up to 12) | Yes | — |
| Verified & business flags | Yes | — |
| Full follower/following list | — | Yes |
| Stories, Highlights, DMs | — | Yes |
| Likes hidden by the creator | — | Nobody sees these |
This Actor only returns public data — what any visitor sees, nothing behind a login wall.
What data can I extract with Instagram Followers Count Scraper With Engagement Quality Score?
Each row combines the profile's public identity fields, its follower/engagement metrics, and the derived audience-quality analytics computed from up to 12 of its latest posts.
| Field Name | Description |
|---|---|
userId | Instagram's internal numeric user ID |
userName | Handle, e.g. natgeo |
userFullName | Display name |
profilePic / profilePicUrlHD | Profile picture URL (HD variant when available) |
userUrl | Canonical instagram.com/<username> link |
biography | Bio text |
externalUrl / externalUrlShimmed | Link-in-bio URL (raw and Instagram-shimmed) |
bioLinks | Array of {title, url, linkType} for multi-link bios |
businessCategoryName / categoryName | Self-set business/creator category |
pronouns | Account's listed pronouns, if any |
dataSource | web_profile_info (full data) or meta-fallback (limited) |
isVerified / isPrivate | Verification and privacy flags |
isBusinessAccount / isProfessionalAccount | Account type flags |
isJoinedRecently | Instagram's own "new account" flag |
hasClips / hasChannel | Reels/channel feature flags |
highlightReelCount / igtvVideoCount | Highlight and IGTV counts |
followersCount / followsCount / postsCount | Core public counters |
followingRatio | followsCount ÷ followersCount, rounded to 4 decimals |
postsAnalyzed | How many of the latest posts (max 12) fed the engagement math |
avgLikes / medianLikes / avgComments / avgVideoViews | Post-level engagement averages |
engagementRatePct | (avgLikes + avgComments) ÷ followersCount × 100 |
postsPerWeek | Posting cadence derived from the sampled posts' timestamps |
lastPostAt / daysSinceLastPost | Recency of the latest sampled post |
likesHidden | True when every sampled post has creator-hidden like counts |
audienceQualityScore / qualityBand | Composite 0-100 score and its High/Medium/Low/Very Low band |
latestPosts | Up to 12 post objects (shortcode, url, type, caption, likes, comments, timestamp, video views) — only populated when includeLatestPosts is on |
scrapedAt / timestamp | Scrape time (ISO-8601 and a legacy display string) |
🤖 Add-on: Need additional Instagram data?
This actor vets profiles you already know about — it doesn't pull a seed account's follower list. If you need the actual list of followers behind a profile, pair it with Instagram Followers Scraper With Bio Contact Enrichment (adds public email/phone per follower) or Instagram Followers — New Followers & Unfollows Checker to track who joined or left across runs. For mining comment sections for warm leads instead of profiles, see Instagram Comments Scraper With Lead Enrichment.
How does Instagram Followers Count Scraper With Engagement Quality Score differ from the official Instagram API?
Meta's Instagram Graph API serves your own connected accounts, not arbitrary public profiles: its overview states it "allows your app to access data for Instagram professional accounts," and reaching accounts "you do not own or manage" needs Advanced Access after Meta's App Review — Standard Access "limits the data your app can get" (Meta developer docs). This Actor reads whatever is publicly visible on any profile page, no account linking or review required.
| Feature | Instagram Graph API | This Actor |
|---|---|---|
| Arbitrary public profiles | Only with Advanced Access after App Review | Yes, by username or URL |
| Account requirements | Professional account, sometimes a linked Facebook Page | None |
| Approval process | App Review for Advanced Access | None |
| Engagement/quality scoring | Not provided | Built-in engagementRatePct, audienceQualityScore |
| Output shape | Raw Graph JSON per endpoint | One flat JSON row per profile |
| Scope | Accounts you're authorized to manage | Any public profile |
Use the Graph API when you manage the account and need write access or your own Insights. Use this Actor to vet public profiles you don't manage, without an app review cycle.
How to use Instagram Followers Count Scraper With Engagement Quality Score
The Actor runs on Apify's platform — no separate signup or API key is needed beyond an Apify account.
- Open the Actor's page on Apify and start a new run.
- Add at least one Instagram username,
@handleor profile URL to theprofilesfield (the run needs at least one entry to do anything, even though the input schema doesn't mark any field as strictly required). - Optionally set
minFollowers,maxFollowingRatio,minEngagementRate,verifiedOnlyorexcludePrivateAccountsto pre-filter the output. - Start the run.
- Download results as JSON, CSV or Excel from the run's dataset tab, or stream them via the Apify API.
How to scale to bulk Instagram follower-count extraction
profiles is an array (stringList editor) — add as many usernames, handles or URLs as you want in one run; there's no separate bulk-input mode or file upload. Each profile gets its own proxy session and a randomized 2-4 second delay is inserted between profiles, so larger lists simply take longer rather than requiring multiple runs. For very large lists, split them across a few runs to keep any single run shorter and easier to monitor.
What can you do with Instagram follower count data?
- An influencer-marketing manager vetting creators for a campaign uses
engagementRatePctandaudienceQualityScoreto screen out accounts with inflated followers but weak interaction before reaching out. - A brand-partnerships lead sourcing collaborators uses
followingRatioandqualityBandto filter out spam-pattern accounts (following far more than they're followed by) before a shortlist review. - A growth analyst assessing an existing audience uses
postsPerWeekanddaysSinceLastPostto flag creators who've gone inactive despite a largefollowersCount. - A talent agency auditing its roster uses
isVerified,isBusinessAccountandbusinessCategoryNameto keep its creator database current between campaigns. - An AI agent building an automated creator-vetting pipeline pulls
avgLikes,avgComments,engagementRatePctandaudienceQualityScoreas structured JSON input to auto-rank a candidate list before a human reviews the shortlist.
How does Instagram Followers Count Scraper With Engagement Quality Score handle rate limits and blocking?
The Actor impersonates Chrome's TLS/HTTP2 fingerprint for every request (via impit) rather than using a plain HTTP client, and calls Instagram's own web_profile_info endpoint first — the same one Instagram's website uses — before falling back through three separate HTML-parsing methods if the API call is blocked or returns nothing. Each profile gets a fresh proxy session when proxyConfiguration is set (residential proxy groups are prefilled by default), and a randomized 2-4 second delay is inserted between profiles to avoid firing requests in a tight burst. If a page fetch fails, it retries up to 3 times with an increasing delay before giving up on that profile. A profile that ultimately fails to scrape is logged and skipped — it is not pushed to the dataset and not charged; the run continues with the remaining profiles rather than stopping.
⬇️ Input
All fields are optional at the schema level, but the run needs at least one entry in profiles to produce any output.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
profiles | No | array | Instagram profile URLs, usernames or @handles to analyse (legacy urls key also accepted) | ["natgeo", "https://instagram.com/nike", "@cristiano"] |
includeLatestPosts | No | boolean | Include the up-to-12 latest posts array (shortcode, url, likes, comments, timestamp, video views) per row. Default: false | false |
excludePrivateAccounts | No | boolean | Drop private profiles from the output. Default: false | true |
verifiedOnly | No | boolean | Keep only blue-check verified profiles. Default: false | false |
minFollowers | No | integer | Minimum follower count to keep a profile; 0 = no minimum. Default: 0 | 10000 |
maxFollowingRatio | No | number | Max follows÷followers ratio to keep a profile; 0 = no limit. Default: 0 | 1.5 |
minEngagementRate | No | number | Minimum engagement rate (%) to keep a profile; 0 = no minimum. Default: 0 | 1.5 |
proxyConfiguration | No | object | Proxy settings; residential proxies give the most reliable Instagram results | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
Example input
{"profiles": ["natgeo", "https://instagram.com/nike", "@cristiano"],"includeLatestPosts": false,"excludePrivateAccounts": true,"verifiedOnly": false,"minFollowers": 10000,"maxFollowingRatio": 1.5,"minEngagementRate": 1.5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
⬆️ Output
Every run writes one typed JSON row per profile that passed the filters to the default Apify dataset, with a consistent field set across runs. Export it as JSON, CSV, Excel, HTML table or XML directly from the dataset tab, or pull it through the Apify API.
Example output
{"userId": "48412037561","userName": "urban.roastery","userFullName": "Urban Roastery Coffee Co.","profilePic": "https://scontent.cdninstagram.com/v/t51.2885-19/urbanroastery_profile.jpg","followersCount": 283000,"followsCount": 612,"postsCount": 1240,"userUrl": "https://www.instagram.com/urban.roastery","biography": "Small-batch coffee roasted in-house. Order online or visit us in person.","externalUrl": "https://urbanroastery.com","externalUrlShimmed": "https://l.instagram.com/?u=https%3A%2F%2Furbanroastery.com","bioLinks": [{ "title": "Shop online", "url": "https://urbanroastery.com/shop", "linkType": "external" }],"isVerified": false,"isPrivate": false,"isBusinessAccount": true,"isProfessionalAccount": true,"businessCategoryName": "Coffee Shop","categoryName": "Coffee Shop","profilePicUrlHD": "https://scontent.cdninstagram.com/v/t51.2885-19/urbanroastery_hd.jpg","highlightReelCount": 8,"igtvVideoCount": 14,"hasClips": true,"hasChannel": false,"isJoinedRecently": false,"pronouns": [],"followingRatio": 0.0022,"postsAnalyzed": 12,"avgLikes": 9821.4,"medianLikes": 9540.0,"avgComments": 214.6,"avgVideoViews": 48210.0,"engagementRatePct": 3.546,"postsPerWeek": 4.5,"lastPostAt": "2026-07-24T18:32:00.000Z","daysSinceLastPost": 0.6,"likesHidden": false,"audienceQualityScore": 91.8,"qualityBand": "High","latestPosts": [],"timestamp": "2026-07-25 - 09:14","scrapedAt": "2026-07-25T09:14:00.000Z","dataSource": "web_profile_info"}
How does it work?
The Actor opens each profile page using an HTTP client that impersonates Chrome's TLS/HTTP2 fingerprint, then extracts the app_id and CSRF token embedded in the page to call Instagram's own web_profile_info API — the same internal endpoint Instagram's website uses to render a profile. If that call is blocked, it falls back through inline-script JSON, the legacy window._sharedData object, and finally public meta tags, so a profile can still return limited data even under stricter conditions. Proxy sessions rotate per profile when configured. Only what's publicly visible on the profile page is ever read — no login, no private endpoints. Engagement and quality-score fields are computed from the up-to-12 latest posts already present in that same response, at zero extra requests, and the output field set stays the same regardless of how Instagram's front-end layout changes.
Integrations
Instagram Followers Count Scraper With Engagement Quality Score runs on Apify, so it works with anything that can call the Apify API, plus Apify's no-code and AI-agent integrations.
Calling Instagram Followers Count Scraper With Engagement Quality Score programmatically
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"profiles": ["natgeo", "@cristiano"],"minEngagementRate": 1.5,}run = client.actor("scraper-engine/instagram-followers-count-scraper-with-engagement-quality-score").call(run_input=run_input)for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["userName"], row["engagementRatePct"], row["audienceQualityScore"])
Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.
MCP integration for AI agents
Instagram Followers Count Scraper With Engagement Quality Score is reachable through Apify's hosted Actors MCP Server at https://mcp.apify.com. Add it as a remote MCP connector in Claude, Cursor, or another MCP-compatible client, authenticate with your Apify account, and select this Actor as an available tool so an agent can request a profile vetting pass and read the scored rows directly inside the conversation.
No-code tools (n8n, Make, LangChain)
In n8n, use the Apify node (or an HTTP Request node against the Apify API) pointed at this Actor to trigger vetting runs from a workflow. In Make, the Apify app's "Run an Actor" module accepts the same input JSON shown above. In LangChain or LlamaIndex, wrap the Apify API call in a custom tool so an agent can request audience-quality data for a list of handles and use the returned rows as context.
Is it legal to scrape Instagram follower counts?
Scraping publicly available Instagram profile data — the kind visible to any logged-out visitor — is generally permissible, though legality depends on your jurisdiction and how you use the data. Instagram Followers Count Scraper With Engagement Quality Score returns only publicly visible profile data, never anything behind a login wall. Because usernames, bios and follower counts are personal data about identifiable individuals or businesses, storage and downstream use fall under GDPR and CCPA-style regimes if you retain or process it, so you'll need a lawful basis for that storage. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What Instagram profile fields does Instagram Followers Count Scraper With Engagement Quality Score return?
It returns followersCount, engagementRatePct, avgLikes, avgComments and audienceQualityScore among its full field set — see What data can I extract above for the complete list.
Does it require an Instagram account or login?
No. The input schema has no session-cookie field; the Actor reads Instagram's public web_profile_info endpoint and public HTML/meta tags with a Chrome-impersonating client, so it never authenticates as an Instagram user.
How many Instagram profiles can I extract in one run?
As many as fit in the profiles array — there's no fixed cap in the input schema. Profiles are processed one at a time with a per-profile proxy session and a randomized 2-4 second delay between them, so run time scales with list length rather than being capped outright.
What happens if a profile is private or doesn't exist?
Private profiles still return their basic public fields, but engagementRatePct and audienceQualityScore come back null because there are no visible posts to derive them from — use excludePrivateAccounts to drop these rows entirely. A profile that can't be resolved at all (deleted, typo'd, or fully blocked) is logged as failed and skipped; it never reaches the dataset and is never charged.
Can I scrape multiple Instagram profiles at once?
Yes. profiles accepts an array, so a single run can vet any number of usernames, handles or URLs together — there's no need to start a separate run per profile.
How is the engagement quality score actually calculated?
audienceQualityScore is a real weighted formula, not just a label: up to 40 points from engagementRatePct (benchmarked against Instagram-typical engagement bands), up to 25 points from followingRatio (a low follows÷followers ratio scores higher; a high one signals spam-like behavior), up to 20 points from postsPerWeek posting cadence, and up to 15 points from how recently the account last posted, then a 10-point deduction if Instagram flags the account as newly joined. The four components are summed and clamped to 0-100. If there's no computable engagement rate — private account, no posts, or every sampled post has creator-hidden like counts — the score and its qualityBand both return null rather than a fabricated value.
Does it work with Claude, ChatGPT, and other AI agent tools?
Yes. It's reachable through Apify's hosted Actors MCP Server (https://mcp.apify.com) for MCP-compatible clients, and it's callable as a plain HTTP endpoint via the Apify API by any agent framework that can make a request.
How does it compare to other Instagram engagement/audience-quality scrapers?
As observed on their own Apify listings on 2026-07-25: the Instagram Engagement Scorer (mraxes/instagram-engagement-scorer) returns a single engagement_rate_pct per profile with no following-ratio, cadence or composite quality banding, and its listing states a separate monthly rental fee on top of usage. The Instagram Profile Scraper (afanasenko/instagram-profile-scraper) computes a median engagement rate and a categorical quality label (Excellent/Good/Average/Poor) alongside bio/contact enrichment and multi-mode discovery, but its listing doesn't describe a single numeric composite score. This Actor combines engagement rate, following ratio, posting cadence and recency into one transparent 0-100 audienceQualityScore, plus built-in filter parameters (minEngagementRate, maxFollowingRatio, verifiedOnly) for vetting workflows.
Does it return data in a format LLMs can use directly?
Yes. Every row is typed, normalized JSON with the same field names across runs — no HTML parsing or CSS selectors required. Pass it directly to an LLM prompt, index it into a vector store, or feed it to an agent tool as-is.
What happens when Instagram changes its layout or anti-bot system?
The Actor is maintained, and its multi-method fallback design (API call, then three separate HTML-parsing strategies) is built to absorb front-end changes without shifting the output schema. No specific fix turnaround time is promised.
Can I use it without managing proxies or browser infrastructure?
Yes. Proxy sessions are handled through the proxyConfiguration input using Apify Proxy (residential groups prefilled), and the Chrome-fingerprint impersonation used to reach Instagram is built into the Actor — there's no headless browser or proxy pool to run yourself.
Which fields work best for AI training data and RAG indexing?
For RAG, index biography, userFullName and businessCategoryName — the highest-information free text on a profile. For structured training data or feature engineering, followersCount, engagementRatePct, followingRatio, postsPerWeek and audienceQualityScore return as consistent typed numbers across every row.
Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Instagram Followers Scraper With Bio Contact Enrichment | Followers, enriched with bio and public contact info |
| Instagram Followers — New Followers & Unfollows Checker | Follower/following lists with growth diffs |
| Instagram Profile Scraper | Full profile data, posts, IGTV, related accounts |
| Instagram Comments Scraper With Lead Enrichment | Comments mined for lead-intent and contact clues |
| Following Scraper: Audience Overlap & Segment Breakdown | Following overlap, segmented by activity |
Your feedback
Found a bug or a field that doesn't match what Instagram shows? Let us know through the Actor's Issues tab on Apify or your usual Scraper Engine support channel — reports like this go straight into fixing the scraper.