Back to blog

Instagram Graph API in 2026: What It Does and Doesn't

by Simon Balfe·

The Instagram Graph API is Meta's official way for apps to read Instagram data programmatically. Since the Instagram Basic Display API was retired on 4 December 2024, the Graph API is also the only official option. That sounds clean until you read the fine print: the Graph API only reads data from accounts that have logged into your app and given consent, requires Meta app review for nearly every scope, and exposes no general public profile read endpoint at all.

This post lays out what the Graph API actually does in 2026, the specific limits that catch teams out, and which alternatives match which use case.

#What the Instagram Graph API does

The Graph API is part of Meta's Graph platform. Calls hit https://graph.facebook.com/{version}/{endpoint}. The current version as of writing is v23.0. You authenticate with an access token tied to a Meta app and a specific Instagram Business or Creator account that has connected itself to a Facebook Page.

In practice you use it to read four kinds of data:

Account-level metadata. Username, profile picture, follower count, media count, account type, and biography for the connected Business or Creator account.

Media objects. Posts, reels, and stories published by the connected account. Caption, media URL, media type, timestamp, like count, comment count, and permalink.

Insights. Aggregated metrics like impressions, reach, saves, and engagement on the connected account's media and stories. Requires the instagram_basic plus instagram_manage_insights permissions.

Comments. Reading and replying to comments on the connected account's media. Useful for moderation tools that operate inside the account holder's own content.

The Graph API is the right answer when your product is a tool the account holder uses to manage their own Instagram presence: scheduling apps, analytics dashboards for the user's own data, moderation bots, social customer support tools.

#What the Instagram Graph API does not do

The shape of the Graph API surprises teams who assume "Instagram API" means "read any Instagram data."

It does not read profiles you do not own. There is no endpoint that takes a handle like natgeo and returns the public profile data. You can only read accounts that have completed Instagram Business Login with your app.

It does not read arbitrary public posts. Same constraint. Without the account's consent, you cannot read its posts, reels, or stories.

It does not read comments on posts you do not own. Comment reads only work on media owned by the connected account.

It does not return story highlights. Highlights are not a documented entity in the Graph API.

It does not return reel transcripts or video transcripts. No equivalent endpoint exists.

It does not give you the For You feed, trending hashtags, or trending audio. Discovery surfaces are not exposed.

Hashtag search is severely limited. The ig_hashtag_search endpoint is capped at 30 unique hashtag IDs per app per 7 days. After that, your app cannot resolve new hashtags until the rolling window resets.

Rate limits are not generous. 200 calls per user per hour is the default, with platform-wide rate-limit smoothing on top. Heavy analytics products burn through this quickly.

For most third-party use cases (influencer marketing, competitive intelligence, content research, market analysis, agency analytics that span multiple unowned accounts), the Graph API does not cover the read pattern you need.

#What happened to the Instagram Basic Display API

Meta retired the Instagram Basic Display API on 4 December 2024. Apps that previously read user media through it had to migrate to the Instagram API with Instagram Business Login, which only works for accounts that opt in and complete the connection flow.

The retirement removed the only path that read consumer (non-Business) Instagram accounts. There is no current Meta-supported equivalent for reading data from a personal Instagram account, even with the account owner's consent.

If you had a product that pulled the user's own personal Instagram feed for display purposes, you have three options now: ask users to convert to a Business or Creator account and connect through the Graph API, drop the feature, or use a third-party data API.

#What the app review process actually looks like

Almost every useful scope on the Graph API requires Meta app review.

The flow:

  1. Build the integration in development mode with a test user
  2. Record a screencast showing the integration end-to-end
  3. Submit a written explanation of why each permission is needed
  4. Wait for Meta reviewer feedback (typically 1 to 4 weeks)
  5. Address feedback, re-record, re-submit
  6. Get approved (or rejected, with the option to appeal)

Approval timelines have lengthened since the Basic Display retirement because Meta migrated reviewers to the Instagram API queue. Three rounds of feedback before approval is not unusual.

What gets approved: products where the connected account holder is also the user of the product. Scheduling tools, the account holder's own analytics, customer-support inboxes, content management systems for the user's own account.

What gets rejected: anything that reads third-party data the user does not own. Competitor analytics, influencer discovery, market research tools that aggregate across creators, scraping-adjacent use cases.

#When the Graph API is the right answer

Use the Graph API if every account whose data you read has explicitly logged into your app and consented. Specifically:

  • A scheduling tool where users connect their own Instagram account
  • An analytics product showing the user their own performance metrics
  • A creator-tool product reading the creator's own engagement
  • A social media management platform with per-user OAuth
  • A unified inbox for the user's own comments and DMs

Inside this box, the Graph API is the right choice. It is free, sanctioned by Meta, and you get the data with the data subject's consent.

#When the Graph API is the wrong answer

Use something else if your product needs to read accounts that have not logged in. Specifically:

  • Influencer discovery and vetting platforms
  • Brand monitoring across the open web
  • Competitor analytics for marketing agencies
  • Hashtag and trend research tools
  • Content research pipelines for ad creative
  • AI agents that read arbitrary creators in natural language
  • Reel transcript extraction for content analysis

For these patterns there is no Meta-supported path. The Graph API will not approve the use case, the Basic Display API is retired, and Meta's commercial Marketing API requires partner status that takes months to apply for and rejects most independent applications.

#Alternatives that work in 2026

#Third-party data APIs

CreatorCrawl reads any public Instagram profile, post, reel, comment thread, or story highlight without Meta app review or a Business account. The same API key also covers TikTok, YouTube, LinkedIn, Twitter/X, and Reddit, so a multi-platform integration collapses into one credit budget.

curl "https://creatorcrawl.com/api/instagram/profile?handle=natgeo" \
  -H "x-api-key: YOUR_API_KEY"

Endpoints cover the gaps in the Graph API:

  • Profile, posts, reels for any public handle
  • Comment threads on any public post
  • Story highlights and the items inside each highlight
  • Reel transcripts (plain text plus timestamped segments)
  • Reel keyword search

250 credits are free on signup. Credits never expire. The MCP server exposes every endpoint as a native tool for Claude, Cursor, Windsurf, and Zed.

#Apify Instagram scrapers

Apify hosts a marketplace of community-maintained Instagram scrapers. You configure an actor with parameters and pay per result. Strengths: flexibility, granular per-result pricing. Weaknesses: integration is at the actor level, latency is higher than a REST API because each run spins up a worker, and individual actors break when Instagram changes its frontend.

#Browser automation

Puppeteer, Playwright, or Selenium scripts that navigate instagram.com and parse the DOM. Free in software but expensive in maintenance. Instagram's anti-bot detection is aggressive, IP bans and CAPTCHA challenges are common, and the work shifts from product to scraper upkeep.

#Building your own scraper

Reverse-engineering Instagram's internal endpoints is technically possible but requires constant maintenance because the shape changes without warning. Workable for a research project. Not workable for a product.

#Side-by-side: Graph API versus an alternative

FeatureInstagram Graph APICreatorCrawl
Read your own Business/Creator accountYesYes
Read arbitrary public profilesNoYes
Read arbitrary public posts and reelsNoYes
Read comments on third-party postsNoYes
Reel transcriptsNoYes
Story highlightsNoYes
Trending hashtags / soundsNoLimited (search endpoint)
App review requiredYesNo
OAuth flow requiredYesNo (API key)
Free tierFree with limits250 credits free, then pay-as-you-go
Multi-platform coverageInstagram onlySix platforms under one key

#Frequently asked questions

Is the Instagram Graph API free? Yes, but only for accounts that connect through Instagram Business Login. App review is required for almost every permission, and rate limits cap you at 200 calls per user per hour.

Can the Instagram Graph API read any public profile? No. The Graph API only reads accounts that have completed Instagram Business Login with your app. There is no general public-profile read endpoint.

What happened to the Instagram Basic Display API? It was retired on 4 December 2024. Apps that used it had to migrate to the Instagram API with Instagram Business Login. There is no current Meta-supported way to read consumer Instagram accounts.

Can I read comments on posts I do not own? Not through the Graph API. Third-party post comment reads require a data API like CreatorCrawl.

How long does Instagram app review take? Typical approval cycles run 1 to 4 weeks per round, with two or three rounds being normal before final approval. Rejections are common for use cases that aggregate third-party data.

Is scraping Instagram legal? Reading publicly visible Instagram data is generally considered legal under the hiQ Labs v. LinkedIn (2022) precedent. Specifics depend on jurisdiction and downstream use. Review Instagram's Terms of Use, GDPR, and CCPA against your use case before going to production.

#Where to go from here

The Instagram Graph API is the right tool when your users are also the data subjects. For every other Instagram read pattern, the Graph API is not designed for the job.

If your product needs to read public Instagram profiles, posts, reels, comments, or transcripts at scale, the CreatorCrawl Instagram API is the read-any-public-profile alternative. 250 credits free on signup, no card required.

Explore CreatorCrawl

More from the Blog