Instagram Profile Scraper
Pricing
from $3.00 / 1,000 results
Instagram Profile Scraper
Scrape Instagram profile information from public accounts. Input usernames, @handles, or profile URLs and get follower counts, biography, verification status, and website in a flat row per profile.
Pricing
from $3.00 / 1,000 results
Rating
1.2
(3)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
173
Total users
19
Monthly active users
0.025 hours
Issues response
3 days ago
Last modified
Categories
Share
Instagram Profile Scraper
Scrape Instagram profile data from any public account, up to a million per run. Get follower counts, biography, verification status, website, and full name. No login or API key. Export to CSV, JSON, Excel, or XML.
Instagram's official API requires a business account, app review, and strict rate limits. This reads public profile pages directly, extracting structured data from any list of usernames, @handles, or profile URLs. You get a clean dataset of profile information without posts, reels, or stories.
| Who uses it | What they scrape Instagram for |
|---|---|
| Influencer marketing managers | Qualifying creator partnerships by audience size and bio keywords |
| Brand analysts | Tracking competitor follower growth and profile changes over time |
| Lead generation specialists | Building prospect lists from Instagram bios that mention specific interests |
| Academic researchers | Studying public figure verification patterns and profile completeness |
What it does
This Actor collects Instagram profile information for a list of usernames and returns each profile as a flat row with follower counts, biography, verification status, and more.
- π₯ Bulk username input: Paste up to a million usernames, @handles, or profile URLs in one run.
- π Core profile metrics: Follower count, following count, post count, full name, and biography.
- β Verification status: See whether each account carries the blue verified badge.
- π Bio links: Every link the profile lists in its bio, not just the first one.
- π Flat row output: Every profile lands as one row in your dataset, ready for spreadsheets.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
Every field in a row
| Field | What it is |
|---|---|
username, fullName, id, fbid, url | The handle, display name, Instagram's numeric profile id, the Meta-wide id, and the profile URL |
followerCount, followsCount, postsCount | Followers and following are exact. The post count is exact up to 9,999 and rounded above that, which is all Instagram publishes logged out; postsCountIsRounded tells you which row is which |
biography, bioLinks, externalUrl, externalUrlShimmed | The bio text and every link listed in it |
isVerified, isPrivate, isMemorialized | Blue badge, private account, memorialized account |
hasClips, highlightReelCount, showTextPostAppBadge | Whether the account posts reels, how many story highlights it keeps, whether it links a Threads profile |
profilePicUrl, pronouns, inputUrl, scrapedAt | Avatar URL, listed pronouns, the input line this row came from, and the capture timestamp |
Those are the fields Instagram serves to a logged-out visitor. Business category, business email and business phone are not among them: Instagram stopped serving them without a login, and this Actor returns no column rather than an always-empty one.
What you can do with Instagram data
π Track competitor growth.
A brand analyst runs a list of 50 competitor usernames weekly to monitor follower count changes and decide when to adjust campaign spend.
π Find influencer partners.
An agency scrapes profiles from a niche hashtag, filters by follower range and bio keywords, and shortlists creators for an outreach campaign.
π§Ή Clean a CRM list.
A sales team feeds Instagram handles from their database through the scraper to enrich records with current follower counts and website URLs.
π Audit verification status.
A researcher collects 10,000 public figure profiles to analyze what share carry the verified badge across different categories.
Why choose this scraper
| What you get | |
|---|---|
| No API registration | Reads public profile pages directly with no app setup or OAuth flow |
| Bulk scraping | Handles up to a million profiles in a single run |
| Flexible input | Accepts plain usernames, @handles, or full instagram.com URLs |
| Fixed schema | Every profile returns the same fields so your pipeline never breaks |
| No empty columns | Only the fields Instagram actually serves logged out, so nothing arrives permanently blank |
How it compares
This Actor focuses exclusively on profile metadata, while the other Instagram scrapers also handle posts, reels, and comments.
| Feature | ParseForge | Instagram Scraper | Instagram Reel Scraper |
|---|---|---|---|
| Profile metadata only | Yes | Not listed | Not listed |
| Bulk username input | Yes, up to 1M per run | Not listed | Not listed |
| Verification status | Yes | Not listed | Not listed |
| Post and reel content | No, profile data only | Yes | Yes |
| Reel video download | No | Not listed | Yes |
Configure the run
Drive the Actor from a list of usernames, @handles, or profile URLs, and set a maximum number of profiles to collect per run. The Input tab lists every parameter.
Instagram stops serving profile data to an IP after a handful of lookups and returns a login wall instead, so the run needs proxies to get through a list of any size. The residential proxy is on by default and you can leave it alone: it is the setting that lets a run finish. Measured on 7 September 2026, the same ten handles returned 10 of 10 profiles through the residential pool and 2 of 10 with the proxy switched off.
A first run with the defaults:
{"usernames": ["instagram","cristiano","leomessi","therock","beyonce","playstation","xbox","ea","fifa","uefa"],"maxItems": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
A larger pull:
{"usernames": ["instagram","cristiano","leomessi","therock","beyonce","playstation","xbox","ea","fifa","uefa"],"maxItems": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Pricing
Pay-per-event, with two events:
| Event | Free plan | Paid plans |
|---|---|---|
| Each profile returned | $0.0035 | from $0.003 |
| Actor start, once per run | $0.40 | from $0.375 |
Rows that could not be resolved are written to your dataset with an error field so you can see what happened to them, and they are never charged. If a run returns no profiles at all, it ends as a failed run with zero result charges; the once-per-run Actor start event is still billed, as it is on any run that starts.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.75 |
| 1,000 results | $3.90 |
| 10,000 results | $35.40 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Instagram Profile Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Instagram through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/instagram-profile-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results for some usernames?
Those rows arrive with an error field telling you which of two things happened. Unavailable means the handle does not resolve to a public profile β check the spelling and confirm it loads in a logged-out browser. Blocked means Instagram refused the request even after retries from fresh IPs; re-run those handles, and make sure the residential proxy is enabled. Either way you are not charged for those rows.
Why is the follower count different from what I see in the app?
Follower counts change constantly. The Actor captures the count at the moment of scraping. A small discrepancy is normal for active accounts.
The run is taking a long time. Is that expected?
A run fetches one page per handle and works ten at a time, so a list of ten profiles finishes in well under a minute. Lists of thousands take proportionally longer. If a run is close to its timeout it stops collecting 25 seconds early and writes what it has, so you get a finished dataset instead of a killed run.
Why do I get an error when I paste profile URLs?
Ensure each URL is on its own line and starts with 'instagram.com/' or 'www.instagram.com/'. The Actor also accepts plain usernames and @handles, which are more reliable.
Can I scrape email addresses from bios?
The Actor captures the full bio text. If a profile includes an email address in its bio, it will appear in the biography field of your output.
FAQ
| Question | Answer |
|---|---|
| Does this scraper collect Instagram posts or reels? | No. This Actor scrapes profile information only: bio, follower counts, verification status, website, and similar metadata. For posts and reels, use the Instagram Scraper or Instagram Reel Scraper actors. |
| Do I need an Instagram account or login? | No login is required. The Actor reads public profile pages directly. Private accounts cannot be scraped. |
| How many profiles can I scrape in one run? | You can set the maximum up to one million profiles per run. The Actor works through your list a few profiles at a time β the pace is deliberately moderate, because hammering Instagram is what gets a run blocked. |
| Do I need to configure proxies? | No. The residential proxy is enabled by default and that is the recommended setting. Instagram rate-limits each exit IP after a handful of lookups, so a run without proxies will not get through a list of any length. |
| What input formats does the username field accept? | Plain usernames like 'nike', @handles like '@nike', and full profile URLs like 'instagram.com/nike' all work. The Actor normalizes them automatically. |
| Can I scrape private Instagram profiles? | No. Only public profiles are accessible. Private accounts will return limited or no data. |
| Does this Actor scrape Instagram Stories? | No. Stories are ephemeral content and are not included. This Actor focuses on static profile information. |
| What export formats are supported? | You can export your dataset as CSV, JSON, Excel, or XML from the Apify platform. |
| Is this Actor compliant with Instagram's terms? | The Actor reads publicly available web pages. You are responsible for using the data in compliance with applicable laws and Instagram's terms of service. |
| Can I schedule this scraper to run automatically? | Yes. Apify supports scheduled runs so you can collect profile data daily, weekly, or on any cron schedule. |
| What is the difference between this and the Instagram Scraper actor? | This Actor scrapes only profile metadata. The Instagram Scraper also collects posts, reels, hashtags, places, and comments. Choose this one when you only need profile information. |
Related actors
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

