
Instagram has evolved far beyond a photo-sharing app. With over 2 billion monthly active users and 200 million+ business accounts, it's now a critical marketing, commerce, and communication channel for brands of every size. And behind the app's polished interface lies a powerful set of tools that let developers interact with Instagram programmatically — the Instagram API.
But "the Instagram API" isn't a single product. It's a collection of APIs, each designed for different purposes, with different access requirements and different capabilities. For developers and marketers just getting started, the landscape can be confusing — especially since Meta deprecated one of its core APIs (the Basic Display API) in 2024 and reorganized the remaining tools.
This guide breaks it all down. We'll explain what the Instagram API is, walk you through every API product available in 2026, cover authentication and setup, show you what data you can access, and point out the limitations you need to know about before you start building.
The Instagram API is a set of official endpoints provided by Meta (Instagram's parent company) that let developers and applications interact programmatically with Instagram accounts, content, and data. Instead of manually posting, checking analytics, or moderating comments through the app, the API lets your software do it automatically.
Think of it as a structured, secure bridge between your application and Instagram's platform. Your app sends a request through the API — "fetch the latest 10 posts from this account" or "publish this image as a Reel" — and Instagram's servers process the request and return the result as clean, structured JSON data.
The API is built on Meta's Graph API infrastructure, which means it shares authentication patterns, rate limiting structures, and developer tooling with Facebook's APIs. If you've worked with the Facebook Graph API, the Instagram API will feel familiar.
For comparison of how Instagram's API stacks up against other platforms, see our guide on what the TikTok API is — both platforms take different approaches to developer access and data availability.
Meta offers several API products for Instagram, each built for a different use case. Here's what's available today.
This is the primary API for developers building on Instagram. It's designed specifically for Instagram Business and Creator accounts and provides the most comprehensive feature set.
The Graph API lets you publish content programmatically — photos, videos, Reels, Stories, and carousels can all be posted through API calls. You can retrieve media and profile data for authenticated accounts, pull detailed performance analytics (impressions, reach, engagement, follower demographics), manage comments (read, reply, delete, hide), discover other business accounts through Business Discovery endpoints, track hashtag performance, search media by hashtag, and receive real-time event notifications through webhooks.
The Graph API uses Facebook Login with OAuth 2.0 for authentication, and all requests go through the same base URL as the Facebook Graph API: graph.facebook.com. Rate limits are set at 200 calls per hour per user token.
This is the API you'll use for most business and developer applications — social media management tools, analytics dashboards, content scheduling platforms, and CRM integrations.
This is the newer replacement for the deprecated Basic Display API. It's designed for consumer-facing applications that need to access personal (non-business) Instagram accounts.
It provides a simpler authentication flow using Instagram Login (rather than Facebook Login) and gives read access to basic profile information, media, and albums. However, it's more limited than the Graph API — no publishing, no insights, no comment management.
Use this API if you're building apps where everyday Instagram users (not just businesses) connect their accounts — such as photo printing services, portfolio builders, or content backup tools.
For businesses that need to manage direct messages programmatically, the Messaging API enables sending and receiving DMs, setting up automated replies, managing conversation threads, and building chatbot flows.
This is essential for customer service automation, lead response systems, and conversational commerce applications. It requires separate permissions from the Graph API and has its own rate limits.
Part of Meta's broader Marketing API, the Instagram Ads API lets you create and manage Instagram ad campaigns programmatically. You can define targeting, set budgets, upload creatives, and pull performance reports — all through code.
If you're building a media buying platform, an ad management dashboard, or an automated campaign optimization tool, this is the API you need. It's accessed through the same Marketing API used for Facebook Ads.
Technically a subset of the Graph API, the Insights API deserves its own mention because it provides access to the analytics data that drives business decisions. Account-level insights include impressions, reach, profile views, website clicks, and follower demographics (age, gender, location). Media-level insights include likes, comments, saves, shares, impressions, reach, and engagement rate.
This data is available for Business and Creator accounts only, and the account must be connected to a Facebook Page for most features.
This is one of the most important changes to understand in 2026. The Instagram Basic Display API was deprecated on December 4, 2024, and no longer functions.
The Basic Display API previously allowed read-only access to personal Instagram accounts through a simple OAuth flow. Many apps relied on it to display user photos, build portfolio galleries, or pull basic profile information. After the deprecation, personal Instagram accounts are no longer accessible through third-party APIs. Only Business and Creator accounts can connect to applications. All existing integrations using Basic Display API tokens have stopped working. The replacement is the Instagram API with Instagram Login (for consumer apps) or the full Graph API (for business applications).
If you had an integration built on the Basic Display API, you need to migrate to one of these alternatives. There is no backward compatibility — the old endpoints and tokens are permanently inactive.
Getting started with the Instagram Graph API requires several setup steps. Here's the process.
Step 1: Create a Meta Developer Account. Visit developers.facebook.com and register as a developer. This gives you access to Meta's developer tools for both Facebook and Instagram APIs.
Step 2: Create an App. In the Meta Developer Dashboard, create a new app. Select the "Business" app type if you're building a tool that will interact with Instagram Business accounts. Give your app a name and connect it to a Business Manager account if applicable.
Step 3: Add the Instagram Graph API Product. In your app's dashboard, click "Add Product" and select "Instagram Graph API." This enables your app to request Instagram-specific permissions. Many developers miss this step and wonder why their permission requests fail.
Step 4: Connect an Instagram Business Account. The Instagram account you want to access must be a Business or Creator account (not a personal account), and it must be linked to a Facebook Page. This connection is made in the Instagram app under Account Settings > Linked Accounts > Facebook.
Step 5: Configure Authentication. Choose your authentication method — either Instagram Business Login (simpler, for single-platform apps) or Facebook Login for Business (more powerful, supports multi-account scenarios and Business Manager integration). Configure your OAuth redirect URIs and request the permissions (scopes) your app needs.
Step 6: Request Permissions. Common permissions include instagram_basic (read profile and media data), instagram_content_publish (publish posts), instagram_manage_comments (read and manage comments), instagram_manage_insights (access analytics), pages_show_list (access linked Facebook Pages), and business_management (manage business accounts).
Step 7: Submit for App Review. Before your app can access data from accounts other than your own test accounts, it must pass Meta's app review process. You'll need to provide a detailed description of how your app uses each requested permission, a privacy policy URL, and a screencast demonstrating your app's functionality. Approval can take several business days. Vague privacy policies and requesting unnecessary permissions are the most common reasons for rejection.
Step 8: Switch to Live Mode. After approval, switch your app from Development mode to Live mode. Only then can it serve real users.
The Instagram Graph API uses OAuth 2.0 through Meta's login infrastructure. Here's the simplified flow:
Your app directs the user to Meta's authorization URL, where they log in and approve the permissions your app is requesting. After approval, Meta redirects the user back to your app with an authorization code. Your server exchanges that code for a short-lived access token (valid for about 1 hour). You can then exchange the short-lived token for a long-lived token (valid for 60 days). Long-lived tokens can be refreshed anytime after 24 hours of being issued, as long as they haven't expired.
Every API request includes the access token as a parameter or in the authorization header. The token proves that the user has granted your app permission to access their data.
Important token management practices: Long-lived tokens expire after 60 days of non-use. Build proactive refresh logic — don't wait for API calls to fail. Store tokens securely with encryption. Monitor token health and alert your team when tokens approach expiration. Each Instagram account connected to your app gets its own token — manage them individually.
Here's a breakdown of the data available through the Instagram Graph API.
Profile data: Username, name, biography, profile picture URL, follower count, following count, media count, website URL, and account type (Business or Creator).
Media data: For each post, Reel, Story, or carousel, you can access the media ID, media type (image, video, carousel), caption, timestamp, permalink, thumbnail URL, and child media (for carousels).
Engagement metrics: Likes, comments, saves, shares, impressions, reach, and engagement rate — available at both the individual post level and the account level over specified time periods.
Audience insights: Follower demographics including age ranges, gender distribution, and top geographic locations (cities and countries). Available for accounts with 100+ followers.
Comments: Full comment text, author, timestamp, and reply threads. You can read, reply to, hide, and delete comments programmatically.
Hashtag data: Search for top and recent media associated with specific hashtags. Limited to 30 unique hashtag searches per 7-day rolling period per account.
Business Discovery: Look up public profile information and recent media for other Business and Creator accounts — useful for competitor monitoring and influencer research.
Stories and Reels: Access metadata and performance insights for Stories (while active) and Reels, including reach, plays, and engagement.
Like every social media API, Instagram's has deliberate limitations.
Personal account data. Since the Basic Display API deprecation, you cannot access data from personal (non-business) Instagram accounts through the Graph API. Only Business and Creator accounts are supported.
Follower and following lists. The API does not provide lists of who follows an account or who an account follows. You get follower and following counts, but not the individual accounts.
Direct message content at scale. While the Messaging API exists, accessing historical DM data or monitoring DMs across many accounts has significant restrictions.
For You / Explore feed data. There's no API access to Instagram's algorithmic recommendation feeds. You can't see what Instagram is showing to specific users.
Real-time Stories data. Stories are only accessible while they're active (within their 24-hour window). Historical Stories data is not available through the API.
Unlimited hashtag searches. Hashtag search is limited to 30 unique hashtags per 7-day rolling period per account.
Audience demographics for small accounts. Audience insight data (age, gender, location) is only available for accounts with 100+ followers.
For use cases requiring data that the official API doesn't provide — public profile data at scale, competitor analytics, follower lists, or cross-platform data — third-party platforms like KeyAPI offer broader access. KeyAPI provides Instagram data alongside 20+ other platforms through a single REST API key, covering user profiles, posts, Reels, Stories, hashtag searches, follower and following data, post comments, and more — without the official API's approval process or account-type restrictions.
The Instagram Graph API enforces strict rate limits that you need to plan around.
The standard rate limit is 200 API calls per hour per user token. For Business Use Case (BUC) apps, rate limiting is more nuanced and based on the type of operations you're performing. When you hit the rate limit, the API returns a 429 (Too Many Requests) error. Implement exponential backoff — wait 1 second, then 2 seconds, then 4 seconds between retries — rather than immediately retrying.
Best practices for working within rate limits: Request only the fields you need in each API call (use field selection to avoid fetching unnecessary data). Batch related requests where possible. Cache responses aggressively — don't re-fetch data that hasn't changed. Use webhooks for real-time updates instead of polling endpoints repeatedly. Monitor your API usage and set up alerts before you hit limits.
Here are the most popular applications built on the Instagram API:
Social media management platforms use the API to schedule and publish posts, manage comments, and pull analytics across multiple accounts from a single dashboard.
Analytics and reporting tools pull engagement data, audience insights, and content performance metrics to generate automated reports for brands and agencies.
Influencer marketing platforms use Business Discovery endpoints to research creators, analyze their engagement metrics, and evaluate partnership potential. For brands tracking influencer performance across both Instagram and TikTok, see our guide on how brands use the TikTok API to track influencer performance.
E-commerce integrations connect Instagram Shopping with product catalogs, sync inventory, and track how social content drives sales.
Customer service automation uses the Messaging API to route DMs to support teams, trigger automated responses, and integrate Instagram conversations with CRM systems.
Content curation and aggregation tools display branded Instagram content on websites, digital signage, or event displays using media endpoints.
If you're building across both platforms, it helps to understand how their APIs compare.
Instagram's API is more mature, with broader official feature coverage — publishing, analytics, comments, messaging, and ads are all available through official endpoints. TikTok's API ecosystem is more fragmented across separate products (Developer API, Business API, Shop API).
Instagram requires Facebook Page linkage for most features, adding a setup step that TikTok doesn't require. TikTok's approval process is generally faster (5–10 days) compared to Instagram's app review, which can take longer and has stricter requirements.
For data access beyond what either official API provides, KeyAPI covers both platforms — plus 18 more — through a single API key, making cross-platform development significantly simpler.
The Instagram API gives developers powerful tools for building on one of the world's most important social platforms. From content publishing and analytics to comment management and messaging automation, the Graph API covers the core needs of most business applications.
The key is understanding which API product fits your use case, navigating Meta's authentication and review process correctly, and building within the rate limits and data constraints the platform imposes. Start with a clear understanding of what data you need, set up your developer account and app, pass the review process, and build from there.
For the capabilities the official API doesn't cover, platforms like KeyAPI provide unified access to Instagram data alongside 20+ other platforms — making it easy to build cross-platform tools without the overhead of managing separate API integrations for each social network.