Instagram Profile Scraper: Followers, Engagement, No Login
Pricing
from $0.90 / 1,000 results
Instagram Profile Scraper: Followers, Engagement, No Login
Public Instagram profile data by username or link: exact follower and post counts, name, verified badge, profile picture, up to 6 recent posts and engagement rate. Optional bio, following count and links in bio. No login needed. $1 per 1,000 results, platform usage included.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
One Dollar Store
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
10
Monthly active users
10 hours ago
Last modified
Categories
Features
Share
Instagram Profile Scraper: Followers, Posts and Engagement
$1 per 1,000 profiles. Platform usage included. No rental, no minimum.
Paste Instagram usernames or profile links and get one row per public profile: exact follower and post counts, name, verified badge, engagement rate and up to 6 latest posts with likes, comments, hashtags and mentions. Turn on includeBio to add the bio, the following count and the links in the bio. No login, no cookies.
The four most used Instagram profile actors on the Store charge $1.50 to $5.00 per 1,000. This one charges $1.00, with platform usage included. Store prices checked 11 November 2026.
New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link).How much does Instagram Profile Scraper cost?
| Profiles | This actor | Most used Instagram profile actors |
|---|---|---|
| 1,000 | $1.00 | $1.50 to $5.00 |
| 10,000 | $10.00 | $15.00 to $50.00 |
| 100,000 | $100.00 | $150.00 to $500.00 |
One flat price, platform usage included, so there is no separate compute or proxy bill. Checking 500 profiles once a day costs about $0.50 a day, or about $15 a month. One result is one profile row; the recent posts inside it are not charged separately, and usernames that return nothing are not charged at all.
Why people switch
- Exact counts. Follower and post counts come from Instagram's public profile card, not rounded figures like 1.2M. In the rare row where a count is rounded,
countsRoundedsays so. - Engagement in the same row. The 6 latest posts with likes, comments, captions, hashtags and mentions, plus average likes, average comments and engagement rate.
- Bio and link in bio at the same price.
includeBioadds the bio text, the following count,externalUrland every bio link. It makes a run slower, not dearer. - Same input name. Most Instagram profile actors take
usernames; so does this one. Usernames, @handles and profile links all work, including mobile links and comma separated lists.
How to use Instagram Profile Scraper
- Open the actor and paste usernames or profile links, one per line.
- Turn on Include bio and following count if you need the bio and the links in it.
- Press Start, then download the rows as JSON, CSV or Excel, or read them through the API.
A realistic input for vetting a few accounts:
{"usernames": ["nasa", "@spotify", "https://www.instagram.com/lego/", "instagram.com/303roofer"],"includeBio": true}
Use cases
- Influencer vetting. Check followers, engagement rate and the last post date of a creator list before outreach.
- Competitor tracking. Schedule a daily run on competitor brands and compare follower counts and posting rhythm over time.
- Lead list enrichment. Add follower counts, bios and the website from the bio to a list of Instagram handles from your CRM or a directory.
- AI assistants. Let an assistant look up and compare public profiles while you chat.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~instagram-profile-data-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["nasa", "lego"], "includeBio": true}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("one_dollar_store/instagram-profile-data-scraper").call(run_input={"usernames": ["nasa", "lego", "spotify"], "includeBio": True})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["username"], item["followersCount"], item.get("recentEngagementRatePct"), item.get("externalUrl"))
Use it from an AI assistant
Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:
https://mcp.apify.com?tools=one_dollar_store/instagram-profile-data-scraper
Then ask, for example: "Compare the follower counts, engagement rates and bio links of the Instagram accounts nasa, lego and spotify." A run of a few profiles usually ends in under 20 seconds, and the status line shows progress while it runs.
Switching from another Instagram profile actor
The input is a list called usernames, as in most Instagram profile actors, and it takes usernames, @handles and profile links. Field names that differ from the ones you may know:
| You may know | Here |
|---|---|
followsCount | followingCount (with includeBio) |
verified, private | isVerified, isPrivate |
id | userId |
url | profileUrl |
externalUrl, externalUrls | externalUrl, bioLinks (with includeBio) |
latestPosts | recentPosts (up to 6) |
likesCount, commentsCount, timestamp | likeCount, commentCount, postedAt (inside recentPosts) |
Input
| Field | Type | Default | What it does |
|---|---|---|---|
usernames | list of text | required | natgeo, @natgeo, instagram.com/natgeo or the full profile link. Post and reel links are skipped. |
includeRecentPosts | true or false | true | Put up to 6 recent posts inside each row. |
includeBio | true or false | false | Also read the profile page for the bio, following count and bio links. Slower, same price. |
summaryFallback | true or false | true | For profiles without a profile card (embedding turned off, private or empty), read the basics from the profile page instead. |
proxyConfiguration | proxy | Apify data center | Profile page reads that are refused move, within a cap per run, to Apify residential proxy. Its cost is included. |
What data does Instagram Profile Scraper return?
username, fullName, userId, profileUrl, isVerified, isPrivate, followersCount, followingCount (with bios), postsCount, countsRounded, hasPublicStory, pronouns, biography (with bios), externalUrl and bioLinks (with bios), profilePicUrl, lastPostAt, recentPostsAvgLikes, recentPostsAvgComments, recentEngagementRatePct, recentPosts, source, requestedUsername, scrapedAt. Empty fields are left out of a row.
Each item in recentPosts has shortcode, postId, url, type, caption, hashtags, mentions, coauthors, likeCount, commentCount, videoViewCount (some videos), postedAt, imageUrl, videoUrl (videos), isPaidPartnership, sponsors and location when the post has them.
The engagement rate is (average likes + average comments) / followers x 100, over the recent posts in the row.
Sample results
Real rows from a test run on 11 November 2026 with includeBio on, shortened: profilePicUrl, imageUrl and all but the first recent post are left out here, and nasa's third bio link is cut.
[{"username": "nasa", "fullName": "NASA", "userId": "528817151", "profileUrl": "https://www.instagram.com/nasa/","isVerified": true, "isPrivate": false, "followersCount": 104354321, "postsCount": 5007, "hasPublicStory": true,"lastPostAt": "2026-11-10T18:40:09.000Z", "recentPostsAvgLikes": 71863, "recentPostsAvgComments": 736,"recentEngagementRatePct": 0.0696,"recentPosts": [{"shortcode": "DfkkknjD6vm", "url": "https://www.instagram.com/p/DfkkknjD6vm/", "type": "carousel","caption": "The sounds of Earth have traveled nearly a light-day away. ...", "likeCount": 119585, "commentCount": 664,"postedAt": "2026-11-10T18:40:09.000Z", "postId": "4027504812815789030","hashtags": ["nasa", "voyager", "goldenrecord"], "mentions": [], "coauthors": []}],"requestedUsername": "nasa", "scrapedAt": "2026-11-10T21:31:16.420Z","biography": "Making the seemingly impossible, possible. ✨", "followingCount": 91,"externalUrl": "https://www.nasa.gov","bioLinks": [{"title": "NASA.gov Homepage", "url": "https://www.nasa.gov", "linkType": "external"},{"title": "Artemis II Preliminary Lunar Science Report", "url": "https://science.nasa.gov/feature/artemis-ii-preliminary-lunar-science-report/", "linkType": "external"}],"source": "profile card"},{"username": "sevenmilescoffeeroasters", "fullName": "Seven Miles Coffee Roasters", "userId": "326690903","isVerified": false, "followersCount": 26356, "postsCount": 1748, "lastPostAt": "2026-11-10T05:00:28.000Z","recentPostsAvgLikes": 43, "recentPostsAvgComments": 1, "recentEngagementRatePct": 0.1669,"biography": "Coffee roaster. Sydney-born, since 1968.\nBehind every great coffee is someone slightly obsessed.\nFind us in 700+ cafés across Australia ☕","followingCount": 4166, "externalUrl": "https://linkin.bio/sevenmilescoffeeroasters","bioLinks": [{"url": "https://linkin.bio/sevenmilescoffeeroasters", "linkType": "external"}], "source": "profile card"},{"username": "avenuedental.atx", "fullName": "Avenue Dental", "userId": "49574958159", "followersCount": 51,"postsCount": 19, "lastPostAt": "2024-07-10T17:26:29.000Z", "recentEngagementRatePct": 7.8431,"followingCount": 29, "externalUrl": "https://www.myavenuedental.com/","bioLinks": [{"url": "https://www.myavenuedental.com/", "linkType": "external"},{"title": "Explore Types of Dentures", "url": "https://wv3.io/SwuRcIkU", "linkType": "external"}],"source": "profile card"},{"username": "canbar_pdx", "profileUrl": "https://www.instagram.com/canbar_pdx/", "followersCount": 1312,"followingCount": 638, "postsCount": 355, "countsRounded": false, "source": "page summary","requestedUsername": "canbar_pdx", "scrapedAt": "2026-11-10T21:33:38.701Z"}]
The last row is a profile without a profile card, read from the page summary: counts, no recent posts.
Limits
- Most profiles are read from Instagram's public profile card, the widget Instagram makes for showing a profile on other websites. It has exact counts and the latest posts, but no bio and no following count. Turn on
includeBioto add those from the profile page. - Bio links come from the full profile page. Instagram refuses many data center addresses there, so the actor tries several and then, for a capped share of profiles per run, reads the page summary over residential proxy. Rows read that way have the bio and following count but no
bioLinks. - Some owners turn the card off, and private or empty profiles have none. Those profiles come from the profile page instead (
sourceispage summary). When only the page summary answers, Instagram rounds big counts andcountsRoundedis true. These rows have no recent posts. - Recent posts are the ones the card shows, up to 6. Posts with hidden like counts are left out of the averages. For more posts per profile, use Instagram Post Scraper or Instagram Reels Scraper.
- Instagram shows a logged out visitor no business category, contact buttons, e-mail, phone, account country or related profiles, so this actor does not return them. It does not guess them either.
- Private profiles show only what Instagram shows any visitor: name, bio and counts.
- A run lasts up to 60 minutes by default, which is roughly 2,400 profiles, or about 1,800 with bios, at the speeds we measured. Raise Timeout under Run options for longer lists, or start several runs.
- A run ends early, and says so in its status line, when 8 profiles in a row are refused, when it is about to reach its time limit, or when your maximum cost per run is reached. You are charged only for the profiles delivered.
FAQ
What is the cheapest Instagram profile scraper on Apify? This one costs $1 per 1,000 profiles with platform usage included. The four most used Instagram profile actors on the Store charge $1.50 to $5.00 per 1,000 (Store prices checked 11 November 2026).
How much does it cost to scrape 10,000 Instagram profiles? $10. Recent posts, bios and bio links are part of the profile row and cost nothing extra.
Do I pay for compute or proxy on top? No. Platform usage, including any residential proxy the actor falls back to, is included in the $1 per 1,000 price.
Do I need an Instagram account or cookies? No. The actor only reads pages that anyone can open without logging in, and it never asks for your login.
Can I get the e-mail, phone number or business category?
No. Instagram shows those only to logged in users, and this actor stays logged out. With includeBio you get the bio text and the links in it, which often lead to a website or contact page.
Can I paste profile links instead of usernames?
Yes. natgeo, @natgeo, instagram.com/natgeo, https://www.instagram.com/natgeo/ and mobile links all work, one per line or separated by commas. Post and reel links are skipped with a note in the log.
How fast is it? In our tests on 11 November 2026, 2 profiles took 3 to 5 seconds, 150 profiles with bios took 4.6 minutes (145 rows), and 1,150 usernames from a mixed list of brands, small businesses and private accounts took 25 minutes (1,069 rows, about 0.7 profiles a second). Profiles without a profile card take longer, because the profile page is tried over several addresses. The status line shows how many profiles are done while a run works.
Why is a username missing from my results? It does not exist, it shows a logged out visitor no public data, or Instagram refused every try. Each case is listed by name in the log and in the RUN_SUMMARY record, and none of them is charged.
Can I track follower growth?
Yes. Schedule a run daily or weekly with the same usernames and compare followersCount by username and scrapedAt.
Is it legal? The actor reads public pages that Instagram shows to any visitor, with no login and no cookies, and returns only what the account holder published. Instagram's robots.txt asks automated visitors to stay away from all pages, and Instagram's terms of use restrict automated collection. The actor reads at a polite rate and stops when it is refused, but whether you may use it is for you to judge. Names, bios and links can be personal data under laws such as GDPR or CCPA, and you are responsible for lawful use, including the rules on e-mail and direct marketing.
Is this an official Instagram product? No. It is an independent tool and is not affiliated with or endorsed by Meta or Instagram.
Feedback and support
Found a problem or want a field added? Open an issue on the Issues tab of this actor and it gets read. If the actor saved you time, an honest rating on the Reviews tab helps other people find it.
Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.
More from The One Dollar Store
Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store
Social media
- Threads Scraper: Public Threads posts by keyword or profile.
- TikTok Hashtag Scraper: Videos, views and creators for any hashtag.
- Pinterest Pin Search Scraper: Public pins with images and outbound links.
- Telegram Channel Scraper: Posts, views and media from public channels.
- Xiaohongshu Scraper: RedNote notes from the public explore feeds.
- Facebook Ad Library Scraper: Meta ads by keyword or advertiser page.
- Username Availability Checker: Check if a username is free across sites.
- Podcast Episodes Scraper: Episodes from Apple Podcasts and RSS feeds.
- Threads Profile Scraper: Public posts and follower counts for Threads profiles.
- Threads Hashtag Scraper: Public Threads posts for any hashtag.
Changelog
- 11 November 2026: runs end faster and never hang on a stalled read (every read now has a hard time limit and a quick retry from a fresh address), the status line shows progress while a run works, links without https and mobile links are read correctly, and post links are skipped instead of read as usernames. New fields:
externalUrlandbioLinkswith bios, andpostId,hashtags,mentionsandcoauthorsin each recent post. Bio runs are faster and cheaper to run. Existing fields, inputs, defaults and the price are unchanged. - 26 October 2026: clearer description and headings, field details for AI tools. Price and output unchanged.
- 15 October 2026: runs now end early instead of reading usernames that return nothing, close to the time limit they end with a summary, residential proxy for page reads is capped per run, and the default timeout is 30 minutes. Price and output fields are unchanged.
- October 2026: first release.