
The hardest part of using the Instagram API is usually not sending the first request.
The harder part is choosing the right API route before the project goes too far. A developer may want to publish Reels. A marketing team may want media insights. A customer support team may need Instagram DMs. A data team may want follower count, creator research, or campaign reporting. Those jobs sound similar, but they do not use the same Instagram API access.
In 2026, “Instagram API” usually means one of several Meta API products: Instagram Graph API, Instagram API with Instagram Login, Instagram Messaging API, Instagram Insights, Business Discovery, or Marketing API. Each one has different permissions, account requirements, data limits, and review rules.
This guide explains the Instagram API from a practical angle: which API type fits which use case, what data you can actually access, what Meta no longer supports after the Basic Display API shutdown, and where teams usually run into limits when building dashboards, publishing tools, analytics reports, or customer messaging workflows.
If your goal is to pull Instagram data into a product or reporting system, KeyAPI’s Instagram API can also help when you need a cleaner workflow beyond a one-off official API test.
The Instagram API is not one single API. It is a group of Meta API products for different jobs: publishing, analytics, comments, messaging, business discovery, ads, and professional account data.
For most business use cases, the Instagram Graph API is the main route. It works with Instagram Business and Creator accounts and can support media publishing, insights, comments, profile data, and account-level analytics when permissions are approved.
For consumer-style login flows, Instagram API with Instagram Login is the newer route, but it is still built around professional Instagram accounts and has important limits. It does not replace every old Basic Display API use case.
The old Instagram Basic Display API was discontinued on December 4, 2024. Personal account feed access through that old API path is no longer available.
The most important planning question is not “Can I use the Instagram API?” It is “Which Instagram API product matches my use case, and what data will Meta actually allow me to access?”
The Instagram API is a set of Meta-provided interfaces that let approved apps interact with Instagram accounts, media, comments, messages, insights, and business data in a structured way.
In practice, it lets software do work that would otherwise be manual: publish media, read account and media data, pull insights, manage comments, reply to messages, or connect Instagram activity to dashboards and internal tools.
But the important detail is this: Instagram API access is permission-based. You cannot simply pull any Instagram data from any account. The data you can access depends on the API product, account type, permissions, app review status, user authorization, and Meta’s platform rules.
That is why developers should choose the API route before building the data model.
For example, a tool that publishes Reels needs a different access path from a reporting dashboard. A customer service inbox needs Messaging API access. A creator research workflow may need Business Discovery or account-level data. A simple profile display use case may not need the same setup as a full analytics product.
Meta offers several API products for Instagram, each built for a different use case. Here's what's available today.
If you are choosing quickly, use this map first:
Use case | Best Instagram API route | Important limitation |
|---|---|---|
Publish photos, Reels, Stories, or carousels | Instagram Graph API | Requires professional account access and approved permissions |
Pull media insights and account analytics | Instagram Graph API / Insights | Works for Business or Creator accounts with proper permissions |
Build consumer login or account connection | Instagram API with Instagram Login | Does not replace every old Basic Display API use case |
Manage comments | Instagram Graph API comment permissions | Requires app review for real users |
Manage Instagram DMs | Instagram Messaging API | Must follow messaging window and policy rules |
Research public business/creator accounts | Business Discovery | Limited to supported professional account data |
Run or report ads | Meta Marketing API | Separate ads permissions and setup |
Pull personal account feed data through old Basic Display API | Not available | Basic Display API ended on December 4, 2024 |
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 is designed for apps that let Instagram professional accounts connect directly with Instagram Login, without requiring the same Facebook Page linkage used in older Graph API setups.
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 route when your app needs a simpler Instagram professional account login flow and does not need the full Facebook Login for Business setup. It is not a full replacement for unrestricted personal account access.
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 teams that need Instagram data in a broader reporting or data workflow, the official API is only one possible route. The right choice depends on the account type, data source, permissions, refresh frequency, and whether the data is used for internal testing or business reporting.
If the workflow involves dashboards, creator research, Reels reporting, or cross-platform social data, KeyAPI’s Instagram API can help teams structure Instagram data alongside other platform data. The key is to avoid treating every Instagram data request as the same problem: follower count, media insights, comments, Reels metrics, and business discovery each require different planning.
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.