The Instagram Graph API is the part of Meta's Graph API that covers Instagram. The Graph API is Meta's HTTP API for Facebook and Instagram. If software publishes a post, reads insights, or manages an account on either platform, it goes through the Graph API. For a working example, see how to post through the Instagram Graph API. The name comes from Meta's "social graph": people, pages, and posts as connected nodes.
// 01
What it is used for
For Instagram, the Graph API covers professional accounts: publishing posts through media containers, reading account insights, and managing account data. Access requires an OAuth grant with the right scopes, and the permissions your app can request depend on Meta's app review process.
// 02
Working with the Graph API
The Graph API is versioned, and each version has a retirement date, so integrations need regular upkeep as fields and permissions change between releases. It also enforces its own rate limits per app and per user. This maintenance load is a big part of why unified APIs exist: they track Meta's changes so each product built on top does not have to.
// 03
Is the Instagram Graph API free?
Meta publishes no usage fee for it. What you pay for is meeting its requirements and staying inside its limits: an Instagram professional account, Meta App Review before your app gets Advanced Access, 4,800 calls per impression in a 24-hour window, and 100 API-published posts per account in 24 hours. The real cost is the engineering work, which what the Instagram API costs breaks down.
// 04
The Instagram Graph API and Instagram Login are not the same API
Meta's documentation now groups its Instagram APIs under the Instagram Platform, and there are two separate APIs to choose from, each with its own setup:
- The Instagram Graph API, used through Facebook Login for Business. The Instagram account must be a Business or Creator account linked to a Facebook Page, and requests go to the Graph API.
- The Instagram API with Instagram Login, a standalone variant Meta launched in July 2024. It removes the Facebook Page requirement, uses graph.instagram.com as its host, and has its own permission scopes, such as instagram_business_basic and instagram_business_content_publish.
Pick one before you build, because the host, the scopes and the login flow differ. Both are official. Tools that log in as the user instead are not, and they put the account at risk. If you would rather not build either login flow yourself, the Instagram posting API runs the account connection for you.
Go from the definition to the docs that show how to apply it.
Primary solution Connect an Instagram account