Instagram API with Unified Login: The 3 Logins Compared

By Nick ReyesPublished 10 min read

The short answer

The Instagram API with Unified Login is Meta's newest Instagram API setup. A business connects its Instagram professional account by logging in with Instagram or Facebook, no Facebook Page needed, and your app gets one system-user token from the business portfolio and calls graph.facebook.com. Meta ships new Instagram features only on Unified Login. Adeli connects every Instagram account through it.

The Instagram API with Unified Login is the Instagram API setup Meta now recommends for new integrations: a business connects its Instagram professional account by logging in with either Instagram or Facebook, needs no Facebook Page, and your app receives one Business Integration System User Access Token that calls graph.facebook.com. Meta's overview says plainly why it matters: "New Instagram API features are released only for this setup."

Developers often meet Unified Login the hard way. They create a new Meta app to use the Instagram API with Instagram Login, and the tab isn't there:

"the option "API setup with Instagram login" does not appear in any newly created app. Only "API setup with Facebook login" is offered."

— a developer on the Meta Developer Community, October 2026

That isn't a bug. Meta's migration guide says "Newly created apps can't set up the Instagram API with Instagram Login." Below is how the three setups relate, how the Unified Login flow works, and what we changed when Adeli moved to it.

What is the Instagram API with Unified Login?

The Instagram API with Unified Login is a Facebook Login for Business configuration that also offers Instagram sign-in. You create the configuration in the App Dashboard, put its login URL behind a button, and Meta returns a token that belongs to your client's business portfolio rather than to the person who logged in.

What changes for your app:

  • One login, two sign-in options. The client picks Instagram or Facebook on Meta's screen, then picks a business portfolio and the Instagram account to share.
  • No Facebook Page. The Instagram account is shared directly from the portfolio.
  • One token per client. The Business Integration System User Access Token covers every asset the client shared, and it keeps working if the person who logged in leaves the business.
  • One host. Every call goes to graph.facebook.com, with the Instagram account ID in the path.
  • One integration for content, messaging and ads. Meta lists messaging, publishing, comment moderation, and, with ads permissions in the configuration, the Marketing API and the Conversions API.

Meta's permissions page lists what the setup supports: comment moderation, content publishing, hashtag search, insights, mentions, messaging, product tagging, and partnership ads.

How does Unified Login compare with the other two Instagram logins?

The Instagram Platform has three setups, and they differ in who logs in, which token you get, and which host you call. This table merges Meta's overview and migration comparisons.

Unified Login Instagram Login Facebook Login for Business
Client logs in with Instagram or Facebook Instagram Facebook
Facebook Page Not required Not required Required
Business portfolio Required Not required Depends on configuration
Access token Business Integration System User Access Token Instagram User access token, refreshed every 60 days Facebook User or Page access token
API host graph.facebook.com graph.instagram.com graph.facebook.com
Request object Instagram account ID Instagram account ID or /me Facebook Page ID or /me
Permissions instagram_* instagram_business_* instagram_* plus Page permissions
Set up in new apps Yes No Yes

In short, Unified Login is Facebook Login for Business with an Instagram sign-in option and no Page requirement. It keeps Facebook Login's host and permission names.

What is the Instagram API with Instagram Login?

The Instagram API with Instagram Login is the setup where users sign in with Instagram only, and your app gets an Instagram User access token for graph.instagram.com. It uses the instagram_business_* permissions and an Instagram app ID and secret, separate from your Meta app's.

Existing Instagram Login apps keep working. Meta's migration guide says "There is no end date yet" and that any change will be announced in the Instagram Platform changelog. Two things have changed, though:

  1. New apps can't add it. That explains the forum threads about the missing tab. Another developer asked the question directly in October 2026:

    "Is “API setup with Instagram login” still available for newly created Meta apps?"

    — a developer on the Meta Developer Community, October 2026

    And on the first thread, three weeks later: "Same issue here as of 29 October 2026." The answer is no, so build new integrations on Unified Login.

  2. New features skip it. Meta ships them only on Unified Login.

Our access token guide covers the 60-day Instagram User token and its refresh, if you still maintain an Instagram Login integration.

What is the Instagram API with Facebook Login for Business?

The Instagram API with Facebook Login for Business is the older setup where a business signs in with Facebook and your app reaches the Instagram account through the Facebook Page linked to it. You call graph.facebook.com with a Page or User token and request the instagram_* permissions plus Page permissions.

Unified Login is built on the same foundation. Meta's authentication page says Unified Login "is built on Facebook Login for Business". Three practical consequences:

  • Your Advanced Access carries over. If your app already has Advanced Access to the instagram_* permissions from Facebook Login, Meta says you don't request them again.
  • The App Dashboard tab only appears for apps on Facebook Login for Business. An app still on classic Facebook Login has to switch first, per the get started guide.
  • An existing configuration can work. A Facebook Login for Business configuration with the Instagram Login Compatible label can serve as your Unified Login configuration.

The Instagram API permissions guide lists the Facebook Login scopes one by one.

Which permissions does Unified Login use?

Unified Login uses the instagram_* permissions, the same names as Facebook Login, plus any other Facebook Login for Business permission your configuration needs. An Instagram Login app maps each permission one to one:

Instagram Login permission Unified Login permission
instagram_business_basic instagram_basic
instagram_business_content_publish instagram_content_publish
instagram_business_manage_comments instagram_manage_comments
instagram_business_manage_insights instagram_manage_insights
instagram_business_manage_messages instagram_manage_messages

Watch the default configuration. Meta's Create new configuration button requests instagram_basic and instagram_manage_messages (both required), plus instagram_manage_comments, instagram_content_publish, ads_management and ads_read, and an optional ad account. If your product doesn't touch ads, edit them out before you submit for review. instagram_manage_insights isn't in the default, so add it if you read insights.

Saving the configuration gives you Standard Access, enough to test with people who have a role on your app. Connecting anyone else takes Advanced Access through App Review and an app in Live mode. When we put ads permissions through Meta's review, all three passed on the first submission. We followed Meta's instructions for each permission as written, and every claim in the use-case description matched the screencast.

How does the Unified Login flow work?

The Unified Login flow is a standard OAuth code exchange followed by two lookups, because the token's /me is a system user, not the Instagram account. These are the steps from Meta's get started guide:

  1. Send the client to the login URL. It's the Facebook Login for Business dialog with your config_id. Add prompt=login so a client already signed in to Facebook still sees the Instagram option.

    https://www.facebook.com/dialog/oauth?client_id=<META_APP_ID>&config_id=<CONFIG_ID>&redirect_uri=<REDIRECT_URI>&response_type=code&prompt=login
  2. Exchange the code on your server, with the Meta app ID and secret, not the Instagram app's.

    curl -G https://graph.facebook.com/v26.0/oauth/access_token \
      -d client_id=<META_APP_ID> \
      -d client_secret=<META_APP_SECRET> \
      -d code=<CODE>
  3. Read and store the client's business ID. You need it later to manage or refresh the token.

    curl -G https://graph.facebook.com/v26.0/me \
      -d fields=client_business_id \
      -d access_token=<ACCESS_TOKEN>
  4. List the Instagram accounts the client shared. This needs instagram_basic, and one token can cover several accounts.

    curl -G https://graph.facebook.com/v26.0/me/assigned_instagram_accounts \
      -d fields=id,username \
      -d access_token=<ACCESS_TOKEN>
  5. Subscribe each account to webhooks. Subscriptions from an Instagram Login integration don't carry over.

    curl -X POST "https://graph.facebook.com/v26.0/<IG_USER_ID>/subscribed_apps?subscribed_fields=messages,comments" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"

From there, every call uses graph.facebook.com/<IG_USER_ID>/.... Publishing is POST /<IG_USER_ID>/media, and conversations are GET /<IG_USER_ID>/conversations. Don't reuse stored message IDs from an Instagram Login integration, because Meta changed their format.

Why is /me/assigned_instagram_accounts empty?

Meta documents two reasons an Instagram account doesn't show up for a Unified Login client: it's a personal account, or it belongs to a different business portfolio from the one selected at login. The fix for each is to switch the account to Business or Creator, or to log in again and pick the portfolio that owns it.

Developers are also reporting a third case Meta hasn't answered. In two Meta Developer Community threads from late October and early November 2026, the account was shared in the dialog and the token looked right, yet the list came back empty:

"The returned token passes app ID, SYSTEM_USER type, scope and client_business_id checks, but GET /me/assigned_instagram_accounts?fields=id,username returns data:[]."

— a developer on the Meta Developer Community, October 2026

"So the asset assignment is recorded in Business Manager, but it is not exposed to the system user token."

— a developer on the Meta Developer Community, November 2026

Both apps were in Development mode, and in the second the app and the Instagram account sat in the same portfolio. Neither thread had an answer from Meta when we checked on November 2, 2026, and Meta's docs don't cover that case. What Meta does document:

  • Test users aren't supported. Use a real Instagram professional account, invited as an Instagram Tester.
  • Collect this before contacting support: your Meta app ID, the config_id, the time of the attempt with its time zone, the step where onboarding stopped, whether the client logged in with Instagram or Facebook, whether they saw the expected portfolio and account, and the error they saw. Never include tokens or secrets.

Other errors from Meta's troubleshooting table:

Error or symptom Cause Fix
No API setup with Unified login tab App isn't owned by a business portfolio Connect the app to a portfolio
No Instagram option on the login screen Configuration isn't Instagram Login Compatible, or the client is already signed in to Facebook Pick a compatible configuration, or add prompt=login
(#10) Access is denied because the instagram account type is not business or creator. Personal account Switch to Business or Creator, then reconnect
(#200) The account owner has disabled access to Instagram Direct Messaging Outside of Instagram App. Allow access to messages is off The client turns it on in Instagram's settings
Access token error Client removed the app or moved the account to another portfolio Stop retrying and ask the client to connect again

Do I have to migrate to Unified Login?

No, an existing Instagram Login or Facebook Login integration doesn't have to move yet. Meta's migration docs announce no retirement date. The reasons to move anyway are that new features ship only on Unified Login and that new apps can't set up Instagram Login at all.

Check what Unified Login doesn't support yet. Meta's migration guide lists four gaps at launch:

  • The Handover Protocol
  • Switching a personal account to professional during login. Clients switch in the Instagram app first.
  • Logging in through the Instagram app. Instagram sign-in opens in the browser, so clients need their password.
  • The App Dashboard's API integration helper

Plan for one reconnect per client. Instagram User tokens don't work with Unified Login, so every client connects once more. Meta suggests moving clients in small groups, and keeping the old token and webhook subscription until one API call and one webhook succeed on the new connection. Expect duplicate messaging webhooks while a client is connected both ways.

What changed when Adeli moved to Unified Login?

Adeli moved every new Instagram connection to Unified Login on October 30, 2026. Customers now see one Connect with Instagram button, and Meta's dialog offers both sign-in options. Decisions an implementer will face, and what we chose:

  • Token expiry. We set our configuration to issue a token that doesn't expire, so there's no refresh job. A token error marks the account for reconnection instead of retrying, as Meta advises.
  • Several shared accounts. A client can share many Instagram accounts in one dialog, and an Adeli profile holds one. We never guess: one shared account is connected, and among several, the one the profile already holds wins. Otherwise the connection fails with multiple_instagram_accounts and asks the customer to share only the account they want.
  • Upgrading old connections in place. Reconnecting an account made with the older logins upgrades it without changing its accountId, so API clients holding that ID keep working. Its stored Instagram messages reload, because Meta changes message IDs between logins.
  • Business Discovery. Reading other public business accounts now works for every Unified Login connection, because every call goes through graph.facebook.com.

The Connect docs describe the API side: authMethod is unified_login for every new Instagram connection, and the older values are accepted as deprecated aliases.

How does Adeli fit in?

Adeli is a unified social media API that holds the Meta app, the Unified Login configuration and the review for you. Your customers click one button in your product, and you call Adeli's Instagram API to publish, read and reply to comments, send DMs, and read insights, with no config_id or system-user tokens on your side.

Building Unified Login yourself makes sense when Instagram is your whole product. When Instagram is one network of several, Adeli's social media posting API covers it alongside the others. If you're building comment-to-DM flows on top, the Instagram private replies guide covers the one-message-per-comment rule.

faq

Frequently asked questions

Do my clients need a Facebook account to use Unified Login?

No. Meta's migration guide says clients can log in with Instagram. They still need an Instagram professional account and access to the business portfolio that owns it, and Instagram sign-in opens in the browser, so they need their Instagram password.

Does the Unified Login access token expire?

It depends on the configuration you create in the App Dashboard. Meta lets you choose the expiration there, and the configuration preview shows it. Even a token set to never expire stops working when the client removes your app from their business portfolio or moves the Instagram account to another portfolio.

Do I need to pass App Review again to switch to Unified Login?

Only for permissions your app doesn't already hold. Unified Login uses the instagram_* permissions. An app with Advanced Access to them from the Instagram API with Facebook Login doesn't request them again. An Instagram Login app has to request the instagram_* equivalents of its instagram_business_* permissions.

Why does the API integration helper say my token is invalid?

The App Dashboard's API integration helper only works with Instagram User access tokens from the Instagram API with Instagram Login. Meta's troubleshooting page says to call the API directly with the Business Integration System User Access Token instead.

Power your next project
with one ads & social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.