Integrations

Instagram

Connect Instagram to publish posts, reels, stories and carousels, moderate and reply to comments, answer DMs and @mentions, and track account and per-post performance.

OAuth authorizationApproval, 2-4 weeks typical end to endAds & SocialInstagram API docs

You end up pasting the Instagram app ID and Instagram app secret from the Business login settings panel, not the Meta App ID shown in App settings.

App review before this connector works

Meta must grant Advanced Access to the Instagram permissions through App Review, and the owning business must pass Meta Business Verification, before the app can serve any Instagram professional account you do not own.

Typical wait
2-4 weeks typical end to end; individual review rounds are often a few business days but rejections restart the clock and business verification can add over a week
Cost
Free (Meta charges nothing for App Review or Business Verification, though verification may require official company documents)
Blocked until approved
Until Advanced Access is granted, the app only works for Instagram accounts that hold a role on the app itself. Real customers cannot connect their own accounts - OAuth for outside users fails or returns empty data, so no third-party media reading, publishing, comment moderation, insights, or messaging works in production.
Works meanwhile
Standard Access works immediately: create the app in the Meta App Dashboard, add your own Instagram professional account as an Instagram Tester, and build and test the entire OAuth flow, publishing, comments, insights and messaging against accounts you own or manage. That working demo is exactly what the review submission requires.

Where to apply: Meta App Dashboard for the app: App Review > Permissions and Features, request Advanced Access per permission (instagram_business_basic, instagram_business_content_publish, instagram_business_manage_comments, instagram_business_manage_messages), and complete Business Verification under Business Settings > Security Centre in Meta Business Manager.

  • The screencast is the usual rejection cause: it must show the full flow end to end - the OAuth consent screen, a real Instagram Business or Creator account (not a test user), and that permission's data actually rendering in your front end.
  • The app must be switched to Live mode with a reachable privacy policy URL and a working data deletion callback before submission.
  • Request each permission for exactly the use case you demonstrate; a vague or over-broad justification gets rejected.
  • Business Verification is separate from App Review and needs matching legal business documents - start it early because it gates the whole submission.
  • instagram_business_manage_messages is reviewed most strictly and is commonly rejected on the first attempt.
  • Instagram Basic Display API is dead - build against Instagram API with Instagram Login or the Facebook Login variant, and note the latter also drags in Facebook Page permissions with their own review.
Setup time
15 min (plus App Review if non-admins will connect)
Auth
OAuth authorization
API base URL
https://graph.instagram.com
Rate limits
Publishing is capped at 100 API-published posts per Instagram account within a 24-hour moving period, and a carousel counts as one post. Other calls follow Meta's business use case limit, which scales with the account's impressions over the last 24 hours.

Before you begin

  • An Instagram professional account (Business or Creator), because personal accounts cannot be connected
  • A Facebook account registered as a developer at developers.facebook.com
  • A public Privacy Policy URL, a deauthorize callback URL and a data deletion request URL
  • App Review approval for instagram_business_content_publish, manage_comments, manage_messages and manage_insights before anyone outside your app roles can connect

Get your credentials

Create a Meta app with the Instagram use case

At My Apps click Create app, name the app and click Next. Select the Manage messaging and content on Instagram use case and finish the wizard.

Open this screen →

developers.facebook.com/apps/create/
Search developer docsPopMCP Social
My Apps / Create an app

Add use cases

Your use case decides which products, permissions and settings are added to the app.

App detailsUse casesBusiness portfolioReview
This use case uses Instagram Login directly, so the account does not need to be linked to a Facebook Page.
Select one or more use cases for your app
Manage messaging and content on InstagramInstagram API with Instagram Login.
Manage everything on your PageFacebook Pages, not Instagram.
Authenticate and request data from users with Facebook Login
OtherPick your own products manually.
NextBack

Instagram appears in the left nav once the wizard finishes.

Open API setup with Instagram business login

Click Instagram in the left nav and open the API setup with Instagram business login tab. Scroll to 3. Set up Instagram business login and click Business login settings.

Open this screen →

developers.facebook.com/apps/1088123456789012/instagram-business/API-Setup-with-Instagram-login/
Search developer docsPopMCP Social
Build your app / Instagram / API setup

API setup with Instagram business login

Generate tokens, configure webhooks and set up business login for this app.

API setup with Instagram business loginAPI setup with Facebook login
Setup stepWhat it doesStatus
1. Generate access tokensTest token for a linked accountManual testingOptional
2. Configure webhooksComments and messages callbacksReal-time updatesOptional
3. Set up Instagram business loginOAuth for other accountsRequired for PopMCPRequired
3. Set up Instagram business login
Instagram app ID
1088123456789012
Instagram app secret
3f9c****b41a
Business login settingsShow

PopMCP needs step 3 only. Steps 1 and 2 are for manual testing and webhooks.

Add PopMCP's redirect URI

In Business login settings paste PopMCP's callback URL into OAuth redirect URIs. Fill in Deauthorize callback URL and Data deletion request URL, then click Save.

Open this screen →

developers.facebook.com/apps/1088123456789012/instagram-business/API-Setup-with-Instagram-login/
Search developer docsPopMCP Social
Build your app / Instagram / API setup

API setup with Instagram business login

Generate tokens, configure webhooks and set up business login for this app.

API setup with Instagram business loginAPI setup with Facebook login
Business login settings
OAuth redirect URIs
https://app.popmcp.com/oauth/instagram/callback
Deauthorize callback URL
https://app.popmcp.com/oauth/instagram/deauthorize
Data deletion request URL
https://app.popmcp.com/oauth/instagram/delete
SaveCancel

Meta matches the redirect URI exactly, including any trailing slash.

Copy the Instagram app ID and secret into PopMCP

Back on API setup with Instagram business login, copy the Instagram app ID and click Show to reveal the Instagram app secret. Paste both into PopMCP.

Open this screen →

Request permissions and submit for App Review

Open App review and then Permissions and features, and request instagram_business_basic, instagram_business_content_publish, instagram_business_manage_comments, instagram_business_manage_messages and instagram_business_manage_insights. Complete Verification and Data handling questions, then submit.

Open this screen →

Connect in PopMCP

Open your workspace, choose Instagram in the marketplace, and fill in the connect dialog:

FieldWhat to enter
Instagram App IDtextFrom the Meta App Dashboard: your app → Instagram → "API setup with Instagram business login" → "Set up Instagram business login" → Business login settings. This is the INSTAGRAM App ID, which is different from the Meta App ID at the top of the dashboard.
Instagram App secretsecretThe Instagram app secret from the same Business login settings panel. Stored encrypted; used server-side only and never shown again.Encrypted with AES-256-GCM on save and never shown again.
Callback URL
https://app.popmcp.com/api/providers/instagram/callback

Only needed if you connect with your own Meta app: add this exact URL under Instagram → API setup with Instagram business login → Business login settings → "OAuth redirect URIs". It must match character for character (watch for an added trailing slash) or Instagram rejects the authorization.

PopMCP verifies the credential against Instagram immediately. On success the connection flips to Verified and its MCP tools are provisioned.

Permissions PopMCP requests

These are the scopes sent to Instagram at authorization time.

ScopeWhy PopMCP asks for it
instagram_business_basicBaseline scope that reads the account profile and media. Required alongside every other Instagram scope.
instagram_business_content_publishRequired to publish feed posts, reels, stories and carousels.
instagram_business_manage_commentsNeeded to read, reply to, hide and delete comments and @mentions.
instagram_business_manage_messagesPowers reading and answering Instagram DMs.
instagram_business_manage_insightsBacks the account and per-post performance tools.

Verify it worked

Saving the credentials opens the Instagram authorization screen. Once you approve, the connector shows your @handle and account type, and the publishing and insights tools appear.

Troubleshooting

"Invalid platform app" or the token exchange returns a client_id mismatch

Why: The Meta App ID was pasted instead of the Instagram app ID.

Fix: Re-copy the value from Instagram, API setup with Instagram business login, Set up Instagram business login. It is a different number from the one in App settings, Basic.

"Redirect URI is not supported"

Why: The callback URL is missing from OAuth redirect URIs or differs by a trailing slash.

Fix: Paste PopMCP's callback URL into Business login settings exactly as shown and save.

OAuth succeeds but publishing returns a permission error

Why: instagram_business_content_publish has not passed App Review and the connecting account is not in App roles.

Fix: Submit the scope for App Review, or add the Instagram account under App roles while testing.

"The account is not a professional account"

Why: The Instagram account is still a personal account.

Fix: In the Instagram mobile app switch to a Business or Creator account, then reconnect.

Reference

On this page