Public vs official Instagram data: what the Graph API can't do
There are two completely different ways to read Instagram data, and picking the wrong one costs weeks. Meta's official Graph API is built for managing accounts that have authorized your app — it is excellent at that and nothing else. A public-data API like herascrape reads the public web: any public profile, post, hashtag or location, over plain REST. This explains exactly where the line falls so you can choose once and move on.
Create one in the dashboard — $1 free on signup, no card. Pass it as the x-api-key header and start calling.
The two kinds of Instagram data
The first kind is consent-based account data. Someone who owns an Instagram account logs in and grants your app permission to act on their behalf — read their media, post, pull their private insights like impressions and reach. This is what Meta's Graph API delivers, and it is the correct tool when you run accounts or build a tool other people connect their own accounts to.
The second kind is public read. You want the follower count, bio, recent posts or hashtag results for accounts you don't own and that have never heard of your app — competitors, influencers you're evaluating, a trend you're tracking. No one is going to log in for you. This is where a public-data API fits, and it's the gap the Graph API structurally cannot fill.
What the Graph API requires
The Graph API is powerful but front-loaded with setup, because every call is tied to a real, consenting account:
- A Meta developer app, registered and configured.
- OAuth login by the account owner. The person whose data you want must click through a Meta consent screen and authorize your app. There is no path around this step.
- An Instagram Business or Creator account connected to a Facebook Page. Personal accounts are not addressable through the modern Graph API.
- For anything that touches accounts beyond your own — Hashtag Search, public-content endpoints — Meta App Review plus business verification, where Meta vets your company and your use case before granting the permissions. Some products also require additional contracts with Meta.
The old escape hatch is gone: the Instagram Basic Display API was deprecated in December 2024, which removed the only route that let an app read a personal (non-business) account's own media after a user logged in. What remains is squarely aimed at business account management.
What the Graph API cannot do
The hard limit is simple: the Graph API cannot read an arbitrary public profile you don't own or that hasn't authorized your app. Consent is the whole model, so an account that never connected to your app is invisible to it, no matter how public its profile is.
The feature people reach for here is Business Discovery, and it's narrower than it sounds. It only works through your own connected professional account, it returns a limited slice of data, and it returns nothing for age-gated accounts. It was never a general public-lookup tool, and it doesn't become one.
So if your job is competitor benchmarking, influencer vetting or trend research, the Graph API leaves you stuck at the first step — there's no one to grant consent.
What a public-data API does instead
A public-data API treats Instagram's public surface as what it is: data anyone can see. herascrape reads any public profile, post, hashtag or location over REST, with no Meta app, no App Review, no business verification and no OAuth consent. You send an API key header and get JSON back.
It's 37 real-time REST endpoints, billed at a flat $0.0004 per request ($0.40 per 1,000), and only successful 2xx calls are billed. It is public, read-only — there's nothing to post or manage, and nothing private to reach. Resolving a public profile is one request:
curl "https://api.herascrape.com/users/username/nasa" -H "x-api-key: $HERASCRAPE_KEY"No consent screen, no account to connect — just the profile endpoint and a username.
Which to choose
The two APIs don't really compete; they answer different questions.
| | Official Graph API | herascrape |
| --- | --- | --- |
| Reads arbitrary public profiles | No — consent only | Yes |
| Setup | Meta app, App Review, business verification | API key |
| Auth | OAuth login by the account owner | x-api-key header |
| Price | Free, within Meta's limits | Flat $0.0004/request, only 2xx billed |
Choose the official Graph API when you manage accounts that authorize you, or you're building a tool other people connect their own accounts to, and you need owner-only data like impressions, reach and saves. That's genuinely private insight, and only the account owner's consent can unlock it.
Choose a public-data API when you need public data about accounts you don't control — competitor and influencer research, trend and hashtag monitoring, enriching a public profile — and you don't want to run a Meta app or wait on App Review. See the full side-by-side on the comparison page, or the herascrape vs Instagram Graph API breakdown for the detailed fit.
Create one in the dashboard — $1 free on signup, no card. Pass it as the x-api-key header and start calling.