Instagram Profile Statistics Scraper avatar

Instagram Profile Statistics Scraper

Pricing

from $1.01 / 1,000 profile extracteds

Go to Apify Store
Instagram Profile Statistics Scraper

Instagram Profile Statistics Scraper

Check batches of public Instagram profiles and export identity, follower, following, post, verification, business, and recent engagement-summary metrics for creator qualification and monitoring.

Pricing

from $1.01 / 1,000 profile extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

12 hours ago

Last modified

Categories

Share

Check batches of public Instagram accounts and export useful Instagram profile statistics without collecting full post histories. The Actor returns identity, followers, following, post count, verification, business status, and optional engagement summaries calculated from recent public post samples.

Use it to qualify creators, enrich lead lists, create account snapshots, or feed recurring profile-monitoring workflows. Inputs can be usernames, profile URLs, or both.

What does this Instagram profile statistics scraper do?

For every successfully resolved public profile, the Actor:

  1. normalizes usernames and instagram.com profile URLs;
  2. removes duplicate profiles;
  3. retrieves public profile identity and account counts;
  4. optionally calculates average and median likes and comments;
  5. calculates a sampled engagement rate and follower/following ratio;
  6. evaluates optional creator-qualification filters;
  7. saves a typed record to the default Apify dataset.

It does not download media, scrape comments, or require users to supply Instagram login cookies.

Who is it for?

  • Influencer marketers qualifying creators by audience, verification, and engagement.
  • Sales and partnerships teams enriching Instagram lead lists.
  • Analysts comparing account-level audience statistics.
  • Agencies preparing repeatable profile snapshots for clients.
  • Developers and data teams sending normalized profile records to spreadsheets, warehouses, or automation tools.

Why use this focused Actor?

This Actor is intentionally narrower than a full Instagram content scraper.

  • Batch usernames and profile URLs in one run.
  • Get account statistics without collecting an entire post feed.
  • Calculate engagement summaries from the recent post sample already returned with the profile.
  • Apply the same qualification rules to username and URL inputs.
  • Pay only for profiles that are successfully fetched and saved.
  • Continue useful batch work when an individual profile is unavailable.

What data can you extract?

FieldMeaning
profileIdInstagram profile ID
username, fullNameCurrent handle and display name
profileUrlCanonical public profile URL
biography, externalUrlPublic bio and external link
followersCountCurrent follower count
followingCountCurrent following count
postsCountProfile post count reported by Instagram, or null when that count is temporarily unavailable
isVerifiedVerification status
isPrivateWhether the account is private
isBusinessAccountPublic business-account indicator
businessCategoryNamePublic business/creator category when available
profilePicUrlPublic profile-picture URL when available
recentPostsAnalyzedRecent post samples used for engagement calculations
averageLikes, averageCommentsMean engagement on the sample
medianLikes, medianCommentsMedian engagement on the sample
engagementRateAverage likes plus comments divided by followers, as a percentage
followerFollowingRatioFollowers divided by following count
matchedFiltersWhether all configured qualification filters matched
scrapedAtUTC collection timestamp

Getting started

  1. Open the Actor input page.
  2. Add one or more values under Instagram usernames, or paste public profile URLs.
  3. Keep Calculate engagement summaries enabled if you need engagement fields.
  4. Optionally set follower, verification, or engagement filters.
  5. Enable Output matching profiles only to save only qualified profiles.
  6. Click Start.
  7. Open the Profile statistics dataset view or export the dataset as JSON, CSV, Excel, XML, or RSS.

A useful first input is:

{
"usernames": ["instagram", "nasa", "nike"],
"includeEngagementMetrics": true,
"maxProfiles": 3
}

Input parameters

InputTypeDefaultDescription
usernamesstring arrayinstagram, nasaUsernames with or without @
profileUrlsrequest listemptyPublic instagram.com/<username>/ URLs
maxProfilesinteger100Maximum unique profiles, from 1 to 1,000
includeEngagementMetricsbooleantrueCalculate sampled engagement summaries
onlyVerifiedbooleanfalseRequire verification for a filter match
minFollowersintegeremptyMinimum followers for a filter match
maxFollowersintegeremptyMaximum followers for a filter match
minEngagementRatenumberemptyMinimum sampled engagement percentage
filterMatchedOnlybooleanfalseSave only records that match every filter
maxRetriesinteger2Bounded attempts for transient upstream errors

When minEngagementRate is set, keep includeEngagementMetrics enabled. Duplicate usernames across both input lists are processed once.

Output example

The values below illustrate the current output shape; public account statistics change over time.

{
"profileId": "528817151",
"username": "nasa",
"fullName": "NASA",
"profileUrl": "https://www.instagram.com/nasa/",
"biography": "Public profile biography",
"externalUrl": "https://www.nasa.gov/",
"followersCount": 104262117,
"followingCount": 92,
"postsCount": 4873,
"isVerified": true,
"isPrivate": false,
"isBusinessAccount": true,
"businessCategoryName": "Government organization",
"profilePicUrl": "https://scontent.example/profile.jpg",
"recentPostsAnalyzed": 12,
"averageLikes": 244654.58,
"averageComments": 1351.25,
"medianLikes": 219560,
"medianComments": 1268.5,
"engagementRate": 0.236,
"followerFollowingRatio": 1133283.88,
"matchedFilters": true,
"scrapedAt": "2026-08-10T14:20:00.000Z"
}

Engagement fields are null and recentPostsAnalyzed is 0 when engagement summaries are disabled or no public recent-post sample is available. postsCount is null when Instagram's rate-limit fallback provides current profile statistics without a post total.

Creator qualification workflow

Use filters to turn a mixed profile list into an immediately usable shortlist:

{
"usernames": ["instagram", "nasa"],
"includeEngagementMetrics": true,
"onlyVerified": true,
"minFollowers": 1000000,
"minEngagementRate": 0.01,
"filterMatchedOnly": true
}

With filterMatchedOnly: false, every successfully fetched profile is saved and matchedFilters explains qualification. With it enabled, nonmatching profiles are omitted and not charged as profile results.

Monitoring and integrations

A profile record is a current snapshot, not historical storage. For monitoring:

  1. save this Actor as an Apify Task;
  2. schedule the Task daily, weekly, or monthly;
  3. send each dataset to your warehouse, Google Sheets, Make, Zapier, or a webhook;
  4. compare followersCount, postsCount, and engagement fields with the preceding snapshot.

Apify integrations can also trigger downstream Actors after a successful run. Use username as the stable comparison key, while retaining profileId for account identity checks.

How much does it cost to check Instagram profile statistics?

The Actor uses pay-per-event pricing:

  • a one-time $0.0001 run-start fee;
  • profile-result pricing with a $0.00168 BRONZE price per successfully saved profile, decreasing at higher platform tiers.

At the BRONZE tier, illustrative Actor charges are:

Successfully saved profilesBRONZE charge (USD)
10.00178
100.01690
1000.16810

Failed profiles and profiles omitted by filterMatchedOnly are not charged as profile results. Apify applies your active pricing tier and displays the maximum charge before a run. These examples will vary by tier.

Run through the Apify API

Set APIFY_TOKEN in your environment.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~instagram-profile-stats-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames":["instagram","nasa"],"includeEngagementMetrics":true}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/instagram-profile-stats-scraper').call({
usernames: ['instagram', 'nasa'],
includeEngagementMetrics: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/instagram-profile-stats-scraper').call(
run_input={
'usernames': ['instagram', 'nasa'],
'includeEngagementMetrics': True,
}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/instagram-profile-stats-scraper"

Claude Desktop

Add this server in Claude Desktop settings:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/instagram-profile-stats-scraper"
}
}
}

Cursor

Use the same mcpServers JSON in Cursor's MCP settings.

VS Code

Add the same Apify MCP URL through VS Code's MCP server configuration.

Example prompts:

  • “Check these Instagram usernames and return follower and engagement statistics.”
  • “Keep only verified profiles above one million followers.”
  • “Export these Instagram profile URLs as a creator qualification table.”

Limits and failure behavior

  • Only public Instagram profile data is supported.
  • Instagram can restrict or change public data surfaces without notice.
  • Some profiles can fail because they are unavailable, renamed, region-restricted, or affected by an upstream profile-schema error.
  • A partial batch continues and preserves successful profiles. Failed profiles are logged and not charged as results.
  • A run fails when none of the requested profiles returns usable data.
  • Engagement is calculated from the recent posts included in the public profile response, not the account's complete history.
  • Hidden likes, private profiles, or sparse recent samples can produce null or less representative engagement values.
  • The Actor does not bypass login, private-account controls, or Instagram permissions.

For reliable batches, avoid repeatedly checking the same very large list within a short period. Use schedules appropriate to how often account-level metrics actually need to change.

Responsible use and legality

Use this Actor only for lawful purposes and public data you are entitled to process. Follow Instagram's terms, privacy requirements, applicable data-protection laws, and your organization's retention policies. Do not use public account statistics for harassment, discrimination, invasive profiling, or attempts to access private content.

You are responsible for your inputs, downstream decisions, and compliance obligations. Consider aggregation and limited retention when individual-level data is unnecessary.

Troubleshooting

Why is a requested username missing from the dataset?

Check the run log. The profile may not exist, may have been renamed, may be temporarily restricted, or may have returned an upstream schema error. Missing/failed profiles are not charged as profile results.

Why are engagement fields null?

Confirm includeEngagementMetrics is true. A private profile or a profile without a usable recent-post sample can still have account counts while engagement fields remain unavailable.

Why did filtering return zero rows?

Run once with filterMatchedOnly: false. Inspect matchedFilters, follower counts, verification, and engagement values, then adjust the thresholds. Zero rows can be a valid result when no fetched profile matches.

Can I scrape private profiles or provide login cookies?

No. This Actor is designed for autonomous public-profile statistics and does not accept Instagram credentials or session cookies.

FAQ

Does it accept both usernames and URLs?

Yes. Combine usernames and profileUrls; duplicates are removed before processing.

Does it scrape all Instagram posts?

No. It returns profile-level data and uses only the recent public post sample for engagement summaries. Choose a dedicated Instagram posts Actor when you need post records.

Can I export results to a spreadsheet?

Yes. Download the default dataset as CSV or Excel, or connect an Apify integration to Google Sheets, Make, Zapier, or your own webhook.

Can I schedule recurring checks?

Yes. Save a Task and add a schedule. Store each run's dataset externally if you need historical comparisons.

Are counts guaranteed to stay identical?

No. Public profile metrics change continuously, and Instagram may round, hide, or temporarily withhold fields.

Use this Actor when the buyer job is a focused, low-overhead profile-statistics snapshot rather than media or comment extraction.