Instagram Profile Stats Scraper (Followers, Bio, Posts)
Pricing
from $1.05 / 1,000 profile scrapeds
Instagram Profile Stats Scraper (Followers, Bio, Posts)
Get public Instagram profile data in bulk without login: followers, following, posts count, bio, external link, category, verified and business status, plus the latest posts with likes and comments.
Pricing
from $1.05 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Instagram Profile Stats Scraper gets public data for any list of Instagram accounts in bulk, without logging in: followers, following, number of posts, bio, external link, category, verified and business status, plus the 12 latest posts with likes and comments and an engagement rate. It is an Instagram profile scraper for agencies, brands and analysts who vet influencers or track accounts over time. Use it as an Instagram follower count checker or to export Instagram profile data to Excel, CSV or JSON.
What does Instagram Profile Stats Scraper do?
You give it a list of Instagram accounts. For each one, the scraper loads the public profile data that Instagram shows to a logged-out visitor and saves one row per profile in a dataset.
It accepts any of these forms, mixed in the same list:
| Input form | Example |
|---|---|
| Username | nasa |
| Username with @ | @nike |
| Profile URL | https://www.instagram.com/nasa/ |
Every line is turned into a lowercase username and duplicates are removed, so NASA, @nasa and https://www.instagram.com/nasa/ count as one profile.
Each row holds the account's numbers (followers, following, posts), its identity (username, full name, user ID, profile picture), its bio, external link and category, and flags for verified, business, professional and private accounts. By default it also includes the latest posts shown on the profile, each with caption, likes, comments, video views, date and image, and an engagement rate computed from them. You do not need an Instagram account, cookies or an API key.
What data can you extract?
| Field | What it means | Example |
|---|---|---|
input | The username the scraper read from your line | nasa |
username | Instagram handle | nasa |
fullName | Display name | NASA |
userId | Instagram's numeric user ID | 528817151 |
url | Profile link | https://www.instagram.com/nasa/ |
followers | Number of followers | 104261826 |
following | Number of accounts the profile follows | 90 |
posts | Total number of posts on the profile | 4958 |
biography | Bio text | Making the seemingly impossible, possible. ✨ |
externalUrl | Link in the bio, if any | https://www.nasa.gov/ |
category | Category shown on professional accounts | Government Agencies |
isVerified | Has the verified badge | true |
isBusiness | Is a business account | true |
isProfessional | Is a professional (business or creator) account | true |
isPrivate | The account is private | false |
profilePic | Profile picture link (HD when available) | https://scontent-ord5-1.cdninstagram.com/v/… |
engagementRate | Average likes plus comments per latest post, divided by followers, in percent | 0.16 |
latestPosts | List of the latest posts (see the fields below) | [{…}] |
latestPosts.shortcode | Short code of the post | DeJ28eTxo4s |
latestPosts.url | Link to the post | https://www.instagram.com/p/DeJ28eTxo4s/ |
latestPosts.type | GraphImage (photo), GraphVideo (video or reel) or GraphSidecar (carousel) | GraphImage |
latestPosts.caption | Caption text | Brewing up new stars 🪄… |
latestPosts.likes | Number of likes | 195309 |
latestPosts.comments | Number of comments | 477 |
latestPosts.views | Video views (videos only) | 1232330 |
latestPosts.takenAt | When the post was published (ISO 8601) | 2026-10-06T13:10:11.000Z |
latestPosts.displayUrl | Image link of the post | https://scontent-ord5-1.cdninstagram.com/v/… |
scrapedAt | When the row was collected | 2026-10-08T20:13:05.389Z |
error | Only on error rows: why the profile was not returned | Profile not found |
All counts are real numbers (for example 104261826, not "104M"), so you can sort, filter and compute ratios directly in Excel or Google Sheets. Empty values come as null.
How to use Instagram Profile Stats Scraper
- Open Instagram Profile Stats Scraper in Apify Console (sign in or create a free Apify account).
- In Profiles, paste usernames (with or without @) or profile URLs, one per line. Hundreds of lines are fine.
- Keep Include latest posts on to get the 12 latest posts and the engagement rate data, or turn it off for a lighter table.
- Leave Proxy on the default Apify Proxy unless you have a reason to change it.
- Click Start. The log shows how many profiles were returned.
- Open the Output tab to see the table, then click Export to download the data as JSON, CSV, Excel or HTML.
- Optional: save the input as a task and add a schedule (for example weekly) to track how the same profiles grow.
Input
| Field | Type | Default | Description |
|---|---|---|---|
profiles | array of strings | ["@nike", "https://www.instagram.com/nasa/"] | Instagram usernames (with or without @) or profile URLs. |
includeLatestPosts | boolean | true | Adds the latest posts (up to 12) with likes, comments and captions. |
proxy | object | {"useApifyProxy": true} | Apify Proxy settings. |
There is no "max results" setting: each profile in the list returns exactly one row (the profile, or an error row). A plain username can be up to 30 characters of letters, numbers, underscores and dots. Lines that are not a username or an instagram.com/ link produce no row.
Example input:
{"profiles": ["@nike","natgeo","https://www.instagram.com/nasa/"],"includeLatestPosts": true,"proxy": {"useApifyProxy": true}}
Output example
A real row from the latest run (links and the caption are shortened, and only 2 of the 12 latest posts are shown):
{"input": "nasa","username": "nasa","fullName": "NASA","userId": "528817151","url": "https://www.instagram.com/nasa/","followers": 104261826,"following": 90,"posts": 4958,"biography": "Making the seemingly impossible, possible. ✨","externalUrl": "https://www.nasa.gov/","category": "Government Agencies","isVerified": true,"isBusiness": true,"isProfessional": true,"isPrivate": false,"profilePic": "https://scontent-ord5-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?…","engagementRate": 0.16,"latestPosts": [{"shortcode": "DeJ28eTxo4s","url": "https://www.instagram.com/p/DeJ28eTxo4s/","type": "GraphImage","caption": "Brewing up new stars 🪄\n \n@NASAWebb’s unique view of the stellar nursery known as NGC 7129 reveals numerous stars…","likes": 195309,"comments": 477,"views": null,"takenAt": "2026-10-06T13:10:11.000Z","displayUrl": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-15/838879752_18633093571001809_7013098794556155636_n.jpg?…"},{"shortcode": "DeCPVhERA8e","url": "https://www.instagram.com/p/DeCPVhERA8e/","type": "GraphVideo","caption": "Room with a view. Check out my new digs as I camp out in Dragon until our departure…","likes": 190759,"comments": 1957,"views": 1232330,"takenAt": "2026-10-03T14:10:18.000Z","displayUrl": "https://scontent-ord5-1.cdninstagram.com/v/…"}],"scrapedAt": "2026-10-08T20:13:05.389Z"}
An error row looks like this and is not charged:
{"input": "this.profile.does.not.exist","error": "Profile not found","scrapedAt": "2026-10-08T20:13:10.000Z"}
How much does it cost?
Instagram Profile Stats Scraper uses pay per event pricing. You pay $1.50 per 1,000 profiles returned ($0.0015 per profile, latest posts included) on the Free plan. Platform usage (compute and proxy) is included in that price.
| Apify plan | Price per 1,000 profiles |
|---|---|
| Free | $1.50 |
| Bronze (10% off) | $1.35 |
| Silver (20% off) | $1.20 |
| Gold and higher (30% off) | $1.05 |
Worked examples on the Free plan:
- 200 influencer profiles to vet for a campaign = $0.30
- 10,000 profiles from a creator database = $15.00
- 500 profiles tracked every week for a year = 26,000 profiles = $39.00 ($27.30 on Gold)
What you are not charged for:
- Error rows ("Profile not found" or "Could not load profile").
- Retries. A profile that needs several tries is charged once, only if it is returned.
- Duplicate lines and lines that are not valid usernames or profile URLs.
- The latest posts. They come inside the profile row at no extra cost.
Use cases
- Influencer vetting. Check followers, the verified badge and the engagement rate before you contact a creator. Low engagement on a big audience is a warning sign.
- Growth tracking. Run the same list on a schedule and chart followers and posts over time using
scrapedAt. - Competitor benchmarking. Compare brand accounts in your niche by audience size, posting volume and engagement on their latest posts.
- Lead list enrichment. Add Instagram audience size, bio link and category to a list of brands or creators you already have.
- Business account checks. See which accounts are business or professional accounts and which category they chose.
- List cleaning. Find usernames that no longer exist; they come back as "Profile not found".
- Content snapshot. Get the captions, dates and numbers of each account's latest posts in the same run.
Tips and limits
- One row per profile. The latest posts are capped at what the profile page shows (up to 12). For more posts per profile, with date filter and reels views, use Instagram Posts Scraper.
- Pinned posts count. The latest posts are the first posts Instagram shows on the profile, pinned posts included, so
engagementRateincludes them too. - How engagement rate works. It is the sum of likes and comments of the latest posts, divided by the number of those posts, divided by followers, times 100, rounded to 2 decimals. It is
nullwhen there are no posts or no followers. It is still filled whenincludeLatestPostsis off. - Private profiles. A private account is not an error: you get the public header data (counts, bio) with
isPrivateset totrue. Instagram does not show its posts to logged-out visitors, so expectlatestPoststo be empty andengagementRateto benull. - Retries. Each profile gets up to 8 tries with a 30-second timeout. Instagram refuses some profiles from datacenter IPs, so after a few fresh IPs the scraper switches to residential IPs when they are available. "Could not load profile" means all tries failed; run those usernames again later.
- Profiles are processed one at a time. A long list simply takes longer. You can split a very large list into several runs.
- Image links expire.
profilePicanddisplayUrlare temporary Instagram CDN links. Download the pictures soon if you need to keep them. - No emails or phone numbers. There are no contact fields. If a creator wrote an email in the bio, you will see it in
biography.
Use it from the API, Python or JavaScript
JavaScript (Node.js) with the official apify-client package:
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = { profiles: ['@nike', 'https://www.instagram.com/nasa/'], includeLatestPosts: true };(async () => {const run = await client.actor('juliob.rangel/instagram-profile-stats').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);})();
Python with the official apify-client package:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run_input = {'profiles': ['nasa', 'natgeo'], 'includeLatestPosts': False}run = client.actor('juliob.rangel/instagram-profile-stats').call(run_input=run_input)items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in items:print(item.get('username'), item.get('followers'), item.get('engagementRate'))
The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.
FAQ
Do I need an Instagram login, cookies or an API key?
No. The scraper reads public profile data without logging in. You only need an Apify account to run it.
Can I export Instagram profile stats to Excel or CSV?
Yes. After the run, open the Output tab and export the dataset as Excel, CSV, JSON or HTML, or read it through the API.
How many profiles can I scrape in one run?
There is no fixed cap in the scraper. Each line in profiles returns one row, and profiles are fetched one after another, so bigger lists take longer.
Is it legal to scrape Instagram profiles?
The scraper only collects publicly available data. You are responsible for complying with Instagram's terms and with privacy laws such as GDPR and LGPD. Profiles of private individuals are personal data, so you need a legitimate reason to collect and use them.
Why did I get a row with an error field?
"Profile not found" means Instagram reported that the account does not exist (deleted, renamed or misspelled). "Could not load profile" means Instagram did not return the profile after 8 tries. Error rows are not charged.
How is the engagement rate calculated?
Average of likes plus comments over the latest posts, divided by followers, in percent. For example, 0.16 means each recent post gets interactions equal to 0.16% of the follower count.
Can I get followers lists or stories?
No. The scraper returns profile stats and the latest posts only. It does not list followers, following accounts, stories or highlights.
Related scrapers
- Instagram Posts Scraper (Reels, Likes, Views, Captions)
- TikTok Profile Stats Scraper (Followers, Likes, Bio)
- YouTube Channel Info Scraper (Subscribers, Views, Links)
- Snapchat Profile Scraper (Subscribers, Spotlight Views, Bio)
- Threads Scraper (Profiles, Posts, Search)
- Twitch Channel Scraper (Followers, Viewers, Emails)
Estatísticas de Perfis do Instagram
Seguidores, posts, bio, link, categoria, selo de verificado e os 12 últimos posts com curtidas e comentários, além da taxa de engajamento, de perfis públicos e sem login. Para avaliar influenciadores e acompanhar concorrentes.