Instagram's own API only serves professional accounts, and the Basic Display API that once covered personal ones was switched off on December 4, 2024. So most teams that need public Instagram data, for creator vetting, brand monitoring or research, end up comparing third-party scraper APIs. They differ more than their pricing pages suggest: one bills per call, one per result, one per record, one by a daily quota, and a "profile" means something different on each.
This guide compares seven options: ScrapingBot, ScrapeCreators, EnsembleData, Apify's Instagram actors, Bright Data's Instagram Scraper API, Meta's own Instagram API and the open-source Instaloader. Every price and limit comes from the provider's own pricing page, documentation or API spec, checked on October 13, 2026, and each section links its sources. Where we couldn't verify something, we say so.
Disclosure
ScrapingBot is our product. We have tried to be as specific about its limits as about anyone else's, including where a competitor is cheaper for a job. Every number here can be checked against the linked pages. Run your own test before you decide; the last section explains how.
Key takeaways
- Compare the billing unit first. A call that returns a page of 12 to 50 posts, a result, a record and a daily unit are not the same thing.
- Lowest price per profile lookup on entry plans: ScrapingBot, $0.91 per 1,000. Bright Data is $1.50, ScrapeCreators $1.88, Apify $2.30 on Starter, EnsembleData $6.67 on its $100 plan.
- For posts, per-call APIs win by a wide margin. 1,000 posts from profile feeds cost about $0.03 to $0.08 on ScrapingBot and $0.16 on ScrapeCreators, against $1.50 or more per 1,000 results or records.
- For a quick engagement check, a profile that includes recent posts saves a call. ScrapeCreators and Apify return them with the profile; ScrapingBot needs a second call.
- Widest coverage: ScrapeCreators (transcripts, highlights, post counts). No code: Apify. Official, professional accounts only: Meta's API.
Instagram scraper APIs at a glance
| Provider | Billing | Entry price | Free option | Best for |
|---|---|---|---|---|
| ScrapingBot | Monthly credits, 5 per Instagram call | $49.99 for 275,000 credits | 100 credits once, no card | High-volume profile and post lookups, plus TikTok, Google and Amazon on one key |
| ScrapeCreators | Prepaid credits that never expire, 1 per call for most endpoints | $47 for 25,000 credits | 100 credits, plus up to 7,000 bonus credits | The widest Instagram coverage, occasional or spiky use |
| EnsembleData | Daily units, reset at 00:00 UTC | $100 a month for 1,500 units a day | 50 units a day on a trial | Steady daily volume across several networks, official SDKs |
| Apify Instagram actors | Per result, plus platform plan | $19 a month platform plan | $5 of usage a month | No-code runs, schedules, hashtags and places |
| Bright Data Instagram Scraper API | Per record | $1.50 per 1,000 records, pay as you go | 5,000 records a month | Enterprise pipelines and ready-made datasets |
| Meta Instagram API | No per-call price; rate limits | An app, and App Review to serve other accounts | Yes | Professional accounts you or your clients manage |
| Instaloader | Free, open source (MIT) | None | Yes | Small jobs and media downloads on your own machine |
Price per 1,000 profiles and posts
Two jobs cover most Instagram work: looking up profiles (followers, bio, verification) and reading posts (likes, comments, captions). They price very differently, because a per-call API returns a whole page of posts for one call while per-result and per-record pricing charges for each post.
| Provider (plan) | 1,000 profile lookups | How it's derived |
|---|---|---|
| ScrapingBot (Starter, $49.99) | $0.91 | $49.99 ÷ 275,000 credits × 5 credits per lookup; $0.45 on Startup ($99.99 for 1.1 million) |
| Bright Data (pay as you go) | $1.50 | One record per profile; $1.30 on the $499 Scale plan |
| ScrapeCreators ($47 pack) | $1.88 | $47 ÷ 25,000 credits, 1 credit per profile; $0.99 on the $497 pack |
| EnsembleData (Wood, $100) | $6.67 | 1,500 units × 30 days = 45,000 units; user info is 3 units |
| Apify Instagram Profile Scraper (Starter) | $2.30 | Per profile; $2.60 on the free plan, $1.60 on Business |
| Provider (plan) | 1,000 posts from profile feeds | How it's derived |
|---|---|---|
| ScrapingBot (Starter) | $0.03 to $0.08 | 5 credits per page of up to 50 posts. Pages are 12 by default, and Instagram sets the final size: asking NASA's feed for 50 returned 33 |
| ScrapeCreators ($47 pack) | About $0.16 | 1 credit per page; the example page in its spec has 12 posts, so about 84 pages |
| EnsembleData (Wood) | $2.22 | 1 unit per returned post |
| Bright Data (pay as you go) | $1.50 | One record per post |
| Apify Instagram Post Scraper (Starter) | $1.50, or $2.30 with post details | $1.50 per 1,000 posts, plus $0.80 per 1,000 for the "post details" event |
Profiles are not the whole story, though. Take an engagement check on 1,000 creators: followers plus about a dozen recent posts each. On ScrapingBot that is two calls per creator, 10,000 credits, or $1.82 on Starter. ScrapeCreators' profile endpoint also returns recent posts with their likes and comments, so it is one call: $1.88 on the $47 pack. Apify's Profile Scraper includes each account's latest 12 posts in the result, $2.30 on Starter. For that job the three are close; for post-heavy jobs the gap opens up.
Instagram coverage compared
| Provider | Posts and reels | Comments | Stories, highlights | Follower lists | Search | MCP |
|---|---|---|---|---|---|---|
| ScrapingBot | Both, plus tagged posts | With replies | Live stories; no highlights | Yes; about 50 recent on very large accounts | Users, hashtags, places, posts | Hosted |
| ScrapeCreators | Both, plus tagged, trending and by audio | With replies | Highlights | Not in its spec | Users, hashtag and reel posts | Hosted |
| EnsembleData | Both, plus tagged and by music | Yes | Not in its spec | Count only | Users, hashtags, places | Not found |
| Apify actors | Both, with add-ons | Comment Scraper | Not checked | Not checked | Hashtags, places, profiles | Hosted |
| Bright Data | Posts and reels scrapers | Comments scraper | Not checked | Not checked | Not checked | MCP server |
| Meta Instagram API | Professional accounts only | On your own posts | Your own account's | No | Hashtags, 30 a week | No |
| Instaloader | Both, plus tagged | With login | With login | Followees, with login | Hashtags and locations, with login | No |
Official SDKs: EnsembleData (Python, Node), Apify (Python, JavaScript) and Bright Data (Python). ScrapeCreators offers a CLI. ScrapingBot has none; every endpoint is a plain HTTPS POST.
ScrapingBot
ScrapingBot's Instagram API has 20 endpoints: profiles by username or ID, an account's posts, reels and tagged posts, live stories, followers and following (with a name search), single posts by shortcode or URL, comments and replies, search for users, hashtags, places and posts, and shortcode conversion. Every call costs 5 credits, failed calls are refunded, and no Instagram login is involved. The same credits buy TikTok (1 per call), Google and Amazon (10) and website scraping. Plans run from Starter ($49.99, 275,000 credits, 10 concurrent requests) to Business+ ($999.99, 15.5 million, 200 concurrent), and a hosted MCP server exposes the endpoints to agents.
Limits, stated plainly:
- No post count.
media_countcomes backnull; ScrapeCreators has a dedicated post-count endpoint. - View counts are often empty.
view_countwasnullon all 72 posts we read for our engagement rate guide, including 40 reels. Don't build on reel play counts. - Follower lists stop at about 50 for very large accounts, because that is all Instagram lists for them. Smaller accounts page normally.
- Hashtag search returns hashtags, not their posts, and post search returns one page (9 results in our test) with no paging.
- No highlights or transcripts. Credits refresh monthly and don't carry over, and the free tier is 100 credits once.
Sources: Instagram API docs, pricing. Walkthroughs: follower counts in bulk, engagement rate for a list of creators, a profile and its reels.
ScrapeCreators
ScrapeCreators is a pay-as-you-go social data API with prepaid credits that never expire: $47 buys 25,000 and $497 buys 500,000. Its OpenAPI spec lists 20 Instagram endpoints, almost all at 1 credit: profiles (with recent posts and related profiles in the same call), a post-count endpoint, posts, reels, tagged posts, single posts, comments and replies, story highlights, transcripts, search for profiles, hashtag posts and reels, reels using an audio track and trending reels. Its posts feed documents play counts for reels. It has no account-level rate or concurrency caps, a hosted MCP server and a CLI, and a cached response costs nothing.
Watch out for: $1.88 per 1,000 calls on the $47 pack is about twice ScrapingBot's per-profile price on Starter. Fetching replies with comments always costs 15 credits, and downloading media with a post costs 10. Hashtag and reel search come from Google's index and are best-effort, not Instagram's own feed. We found no follower list or live stories in the spec, and no blanket failed-request policy on the pricing page, though some endpoints say failures aren't charged. ScrapingBot vs ScrapeCreators goes deeper.
Sources: homepage and pricing, OpenAPI spec.
EnsembleData
EnsembleData sells monthly plans with a daily unit allowance that resets at 00:00 UTC: Wood ($100, 1,500 units a day) through Platinum ($1,400, 50,000 a day). Its Instagram endpoints cover user info at three levels of detail, posts, reels, tagged posts, post details with comments, comments, posts using a music track, a follower count and search for users, places and hashtags. It publishes official Python and Node SDKs, says it doesn't enforce rate limits, and charges no units for failed requests caused by its own errors.
Watch out for: user info costs 3 units and posts 1 unit each, so on Wood that is $6.67 per 1,000 profile lookups, the highest per-profile price here, and $2.22 per 1,000 posts. A daily allowance can't absorb bursts: Wood allows about 500 profile lookups a day, and unused units are gone at midnight UTC. Its pricing page lists hashtag posts, which we couldn't find in its published API spec. ScrapingBot vs EnsembleData works through a bursty example.
Sources: pricing, API docs, OpenAPI spec.
Apify Instagram actors
On Apify, Instagram data comes from "actors" run on its platform, the main ones maintained by Apify itself. Prices per 1,000 on the free, Starter, Scale and Business plans:
| Actor | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Instagram Scraper (posts, profiles, places, hashtags, comments) | $2.70 | $2.30 | $1.90 | $1.50 |
| Instagram Profile Scraper | $2.60 | $2.30 | $2.00 | $1.60 |
| Instagram Post Scraper, plus post details | $1.70 + $1.00 | $1.50 + $0.80 | $1.30 + $0.70 | $1.00 + $0.60 |
| Instagram Reel Scraper | $2.60 | $2.30 | $1.40 | $1.00 |
| Instagram Comment Scraper | $2.60 | $2.30 | $2.10 | $1.90 |
| Instagram Hashtag Scraper | $2.60 | $2.30 | $2.10 | $1.90 |
Platform plans are free ($5 of usage a month), Starter ($19), Scale ($199) and Business ($999). Apify adds what a plain API doesn't: schedules, hosted datasets, webhooks, a console, place and hashtag scraping, paid add-ons such as reel transcripts and video downloads, official SDKs and a hosted MCP server. A Profile Scraper result includes the account's latest 12 posts.
Watch out for: per-result pricing adds up on list-heavy jobs: 1,000 posts cost $1.50 to $2.30 on Starter, against cents on per-call APIs. Add-ons are priced separately. ScrapingBot vs Apify compares the two models on TikTok.
Sources: Apify pricing, Instagram Scraper, Instagram Profile Scraper, Instagram Post Scraper, Apify MCP.
Bright Data Instagram Scraper API
Bright Data's Instagram Scraper API has documented scrapers for profiles, posts, reels and comments, priced per record: $1.50 per 1,000 pay-as-you-go, or $499 a month for 384,000 records with more at $1.30 per 1,000. It includes 5,000 free records a month without a card, proxies and unblocking are included, and it can deliver large asynchronous jobs straight to cloud storage. Bright Data also sells ready-made Instagram datasets.
Watch out for: the product page promises no charges for failed deliveries, but its scraper FAQ says records that fail because the input was incorrect are still billed, so clean your handle list first. Per-record pricing has the same arithmetic on post-heavy jobs as Apify's, and we didn't compare its fields endpoint by endpoint.
Sources: Instagram Scraper API, scraper FAQ.
Meta's Instagram API
Meta's Instagram Platform is the official route, and its limits shape everything else on this page. Your app's users must have professional (business or creator) accounts; personal accounts are not supported. Its Business Discovery feature lets one professional account read basic data about another, including follower and media counts and its posts' likes, comments and views, but not age-gated accounts. Hashtag Search allows 30 unique hashtags per account in any 7 days, needs the Instagram Public Content Access feature and a Facebook Page, and doesn't cover stories. Serving accounts you don't own or manage requires Meta App Review.
Watch out for: Business Discovery and Hashtag Search fall under Meta's platform rate limit of 200 calls an hour per app user, so bulk research on accounts you don't manage doesn't fit. The Basic Display API, which read personal accounts that logged in to your app, stopped working on December 4, 2024; our migration guide covers the replacement for a "latest posts" feed.
Instaloader
Instaloader is a free, MIT-licensed Python tool and library that downloads Instagram profiles, posts, reels and their media files to your machine. Public profiles work without logging in; hashtags, locations, stories, highlights, comments, geotags and followee lists need an Instagram login, which you supply. It is the right choice for a one-off download of a few accounts.
Watch out for: rate limits are yours to manage. Its troubleshooting page explains its retries after 429 errors and warns that cloud, VPN and public proxy IPs can face "significantly stricter limits for anonymous access". There is no service behind it: when Instagram changes, you wait for a new release.
What engagement numbers leave out
Whichever provider you choose, the posts feed it returns is the account's grid, and the grid is not all the account's own recent work. In 72 recent posts from six accounts, 10 were pinned (one from nine months earlier) and 21 were collabs whose likes come from several audiences. Including them made two accounts' engagement rates look about three times higher and reordered the ranking. Our engagement rate guide shows the numbers and a script that sets those posts aside.
How to choose
- You look up many profiles or read many posts: a per-call API. ScrapingBot is the cheapest per lookup on entry plans; ScrapeCreators if you also need transcripts, highlights or post counts.
- Your usage is occasional: ScrapeCreators' non-expiring credits or Apify's $5 a month of free usage waste the least.
- You want no code, schedules, hashtags or places: Apify.
- You need datasets, cloud delivery or enterprise contracts: Bright Data.
- The accounts are yours or your clients' professional accounts: Meta's Instagram API, which also gives private insights no scraper can.
- You need a few accounts' media on your laptop: Instaloader.
How to test an Instagram API before you buy
Every option here has a free tier or trial. Spend an afternoon on the same tasks with each:
- Look up the same 20 accounts at the same time and compare follower counts with the app.
- Read 100 posts from one feed: count pages, duplicates and gaps, and see what ends the list.
- Check the fields you depend on: post counts, reel views, pinned and collab markers.
- Force failures: a misspelled handle and a private account, and see what you are billed.
- Price your real month, including endpoints that cost more than one unit or credit.
For ScrapingBot, open the playground with a profile lookup filled in; the 100 free credits cover 20 lookups.
Frequently asked questions
What is the best Instagram scraper API in 2026?
It depends on the job. For the lowest price per profile lookup, with TikTok, Google and Amazon on the same key, ScrapingBot. For the widest Instagram coverage (transcripts, highlights, post counts) and credits that never expire, ScrapeCreators. For no-code runs, hashtags and places, Apify. For enterprise pipelines and ready-made datasets, Bright Data. For professional accounts you manage, Meta's own Instagram API. For small jobs on your own machine, Instaloader.
Is there an official Instagram API for public data?
Only for professional accounts. Meta's Instagram API requires your app's users to have business or creator accounts, and its Business Discovery feature returns other professional accounts' follower and media counts and their posts' likes and comments. Personal accounts are not covered, hashtag search is capped at 30 hashtags per 7 days, and serving other businesses needs Meta App Review. The Basic Display API stopped working on December 4, 2024.
What is the cheapest Instagram scraper API?
Per profile lookup on entry plans: ScrapingBot at $0.91 per 1,000 (Starter, $49.99 for 275,000 credits at 5 credits a call), Bright Data at $1.50, ScrapeCreators at $1.88, Apify at $2.30 and EnsembleData at $6.67. For posts, APIs that charge per call are far cheaper than per-result pricing, because one call returns a page of posts. Instaloader is free but runs on your own machine. Prices checked October 2026.
Can I get Instagram reel view counts from an API?
Not reliably. On ScrapingBot, view_count was empty on all 72 recent posts we read for our engagement guide, reels included, and reel play counts are often empty. ScrapeCreators documents play counts in its posts feed, and Meta's Business Discovery lists view_count for professional accounts. Test with your own accounts before you depend on views.
Do I need an Instagram account to use these APIs?
Not for ScrapingBot, ScrapeCreators, EnsembleData, Apify or Bright Data: you send a handle or URL and they return public data. Meta's API needs your own professional account, an app and, to serve accounts you don't manage, App Review. Instaloader needs you to log in for stories, highlights, comments, hashtags and locations.
Which Instagram APIs can list an account's followers?
ScrapingBot has /followers/by_user_id and /following/by_user_id, with a search parameter; for very large accounts Instagram lists only about 50 recent followers. EnsembleData's published API spec has a follower count but no list. We found no follower list in ScrapeCreators' spec. Instaloader can list the accounts a profile follows, with a login.