Comparisons7 min read
Instagram Data API in 2026: What Meta's API Can and Can't Do
What Meta's Instagram API does for your own account versus other public ones: Business Discovery, hashtag limits, Basic Display shutdown and a REST option.
On this page
You want Instagram data in your app. The first question is whose data it is. Meta's official API is built around accounts that connect to your app. Public data from accounts that never heard of your app is a different job. This article draws the line using Meta's current documentation, and shows what to do on the other side of it.
Updated October 2026.
TL;DR: pick by need (as of 2026-10-28)
| You need | Use |
|---|---|
| Publish, moderate comments, read insights, handle DMs for accounts that connect to your app | Meta's Instagram API (Instagram Login or Facebook Login) |
| Follower count and recent posts of another Business or Creator account | Business Discovery (Meta, Facebook Login setup) |
| Posts under a hashtag, up to 30 hashtags per 7 days | Hashtag Search (Meta, Facebook Login setup) |
| A personal account's feed through a consumer API | Nothing from Meta: Basic Display API ended on 2024-12-04 |
| Follower or following lists, stories, or profile data of accounts you don't own, with no login | A REST API for public data, such as StoriesFly |
| The same data inside ChatGPT or Claude | MCP server (last section) |
What Meta's official API is
Meta's Instagram Platform overview describes two setups:
- Instagram API with Instagram Login. App users sign in with Instagram credentials, no Facebook Page is needed, and requests go to
graph.instagram.com. Scopes are theinstagram_business_*family. See the setup page. - Instagram API with Facebook Login. App users sign in with Facebook, the account must be linked to a Facebook Page, and requests go to
graph.facebook.com.
Both serve Instagram professional accounts: business or creator accounts. The Instagram Login page lists comment moderation, content publishing, media insights, mentions and messaging as what the API is for.
Basic Display is gone. Meta's announcement says that starting on December 4th, 2024 the API is no longer available and all its requests fail, and that after that date there is no set of Instagram APIs for consumer developer apps. Meta points business and creator use cases to the two setups above.
Official API: can and cannot
"Own" means accounts whose owners connected to your app and granted permissions.
| Task | Official API |
|---|---|
| Publish, read insights, moderate comments, mentions, messaging on your own professional account | Can (overview) |
| Read comments | Can, on media owned by your app's users (comment moderation guide) |
| Follower count and media of another Business or Creator account | Can, through Business Discovery: followers_count, media_count, media with comments_count, like_count, view_count |
| Age-gated accounts through Business Discovery | Cannot: the docs say their data is not returned |
| Read a returned media object directly | Cannot: the Business Discovery page says a GET on a returned IG Media fails for insufficient permissions |
| Follower or following lists of other accounts | Not in the documented fields. Business Discovery returns counts only |
| Stories of accounts that haven't connected to your app | Not in the Business Discovery fields. The stories reference says stories are only available for 24 hours and excludes Live and reshared stories |
| Hashtag search | Facebook Login setup only. The overview marks it unsupported on Instagram Login. The hashtag guide caps you at 30 unique hashtags per rolling 7 days, with no hashtags on Stories and no emoji in queries |
| Serve accounts you don't own or manage | Needs Advanced Access, which needs App Review and Business Verification (overview) |
Rate limits: most endpoints use Instagram Business Use Case limits, where calls in 24 hours equal 4800 times the account's impressions, counted per app and app user pair. Business Discovery and Hashtag Search use Platform Rate Limits instead (overview).
Two takeaways. First, Business Discovery is genuinely useful for a quick look at another professional account's counts and recent media, but it is an aggregate view. Second, anything that touches accounts you don't own at scale comes with review and verification steps, and tokens that depend on a signed-in app user.
When you need public data from accounts you don't own
If your job is "look up this username and give me data", the official API does not fit, and no amount of configuration changes that. This is where a REST API for public data fits.
StoriesFly is a REST API that reads public Instagram and TikTok data. You never log in to Instagram, and your own account never appears among a story's viewers. The person is not notified. You send an API key and pay per request: from $1.50 per 1,000 requests, prepaid, and 100 free requests once per Telegram account. For more details, see our guide on view stories anonymously.
Install the official client (storiesfly 1.1.0, Node 18+, ESM, no runtime dependencies):
npm install storiesflyimport { StoriesFly, StoriesFlyError } from "storiesfly";
const client = new StoriesFly({ apiKey: process.env.STORIESFLY_API_KEY! });
async function main() {
try {
const profile = await client.user.profile({ username: "instagram" });
console.log(profile.username, profile.followers, profile.is_private);
// First 3 pages of followers: up to 25 per page, one request per page.
for await (const page of client.paginate(client.user.followers, { username: "instagram" }, { maxPages: 3 })) {
for (const user of page.users) console.log(user.username);
}
const { stories } = await client.user.stories({ username: "instagram" });
for (const s of stories) console.log(s.media_type, s.taken_at_iso, s.media_url);
const { media } = await client.download({ url: "https://www.instagram.com/reel/DdY3MUJCfby/" });
for (const file of media) console.log(file.type, file.url);
} catch (err) {
if (err instanceof StoriesFlyError && err.code === "private_account") {
console.log("Private account: no data.");
return;
}
throw err;
}
}
main();Get a key by signing in with Telegram at storiesfly.com/developers/dashboard. Full method list: docs and the OpenAPI spec. Beyond profiles, followers and stories, the client has calls for posts, reels, comments, hashtags, places and search, plus TikTok profiles, videos and lists.
Honest limits:
- Private accounts return
private_account, and that answer is charged like any answer. The API reads public data only. - Media links expire. Links in answers are signed CDN links that last days, not months. Download what you need soon.
- Lists are paged. A page of followers holds up to 25 accounts and costs one request. Always set
maxPages, orpaginatewalks the list to its end. For a verified account, Instagram shows only about 50 followers and no next page. - Stories are live ones.
user.storiesreturns what is up right now. It is not an archive. - Numbers can be
null. A value the answer doesn't carry isnull, never0.
Use the same data from ChatGPT or Claude (MCP)
The same data is available to AI assistants through an MCP server, with no code. In Claude Code:
claude mcp add --transport http storiesfly https://storiesfly.com/mcpChatGPT and Claude connect to the same address and sign in with Telegram. Details: storiesfly.com/developers/mcp.
Check the rules that apply to you
This is not legal advice. Use public data only. Before you build, read Instagram's and Meta's terms and the privacy law that applies to your use and your users, such as rules on storing personal data, retention and deletion requests. Decide what you keep, for how long, and why.
FAQ
Can the official Instagram API return the follower list of another account?
Not in the documented fields. Business Discovery returns followers_count and media for another Business or Creator account, and its page does not mention follower lists.
Is there still a way to read a personal account's feed through Meta's API?
No. Basic Display ended on 2024-12-04, and Meta says there is no set of Instagram APIs for consumer developer apps after that date.
Do I need App Review and Business Verification?
For serving professional accounts you don't own or manage, Meta's overview says Advanced Access is needed, which requires App Review and Business Verification. For your own account, Standard Access applies.
Do I log in to Instagram with StoriesFly?
No. You send an API key. You never log in with your own account, and your account never appears among a story's viewers.
What happens on a private account?
The call returns private_account and no data. Only public data is available.
Not affiliated with Instagram or Meta. Facts about Meta's API were checked against developers.facebook.com on 2026-10-28; docs change, so check the linked pages before you build.
