Skip to main content

Connecting Instagram

Instagram (via Meta's Graph API) is the hardest platform in this list to set up. None of the individual steps are unusual for a Meta developer app, but there are more of them than any other platform here, and a couple of Meta's own account-level requirements are known to be flaky. Read this one fully before starting.

What you'll need before you start

  • A Meta Developer account.
  • A Meta App (type: Business).
  • Your Instagram account converted to a Business or Creator account, linked to a Facebook Page you administer.
  • One extra piece of infrastructure Instagram specifically requires that no other platform in this guide needs: a media relay (see step 5).

1. Create a Meta Developer account and app

  1. Go to developers.facebook.com and log in with a Facebook account.
  2. If prompted, complete Meta's developer account registration, including phone number verification — this step is a well-documented pain point; see the note below and Troubleshooting if it loops on you.
  3. Create a new app, and choose type Business.
  4. In the app dashboard, add the Instagram Graph API product, and under App Review → Permissions and Features, request these scopes (Stitchable's connect flow asks for exactly these four): instagram_basic, instagram_content_publish, pages_show_list, business_management.
  5. Add the Facebook Login product too — it's what drives the sign-in screen you'll click through later.
Phone number verification can get stuck

Meta's developer account setup commonly asks for phone number verification, and there are real, current reports of this getting stuck in a loop — "Go to Meta Account settings to update your phone number" — even after entering a valid number. Changing the phone number alone does not reliably fix it. See Troubleshooting below for what has actually worked for people.

2. Register Stitchable's redirect URI

Unlike every other platform in this guide, Instagram's callback runs on a fixed local port over HTTPS with a self-signed certificate — Meta's OAuth dialog requires HTTPS even for a 127.0.0.1 redirect, and Meta doesn't support matching a loopback redirect on an arbitrary port the way Google, X, and TikTok do.

  1. In your Meta app, open Facebook Login → Settings.
  2. Open Stitchable's connect wizard and choose Instagram — the developer-app step shows you the exact redirect URI to register, with a Copy button.
  3. Paste that exact value into Valid OAuth Redirect URIs in Meta's settings and save.

You'll register this once; it doesn't change between connection attempts (unlike TikTok/Google/X, where the port varies each time).

The account you want to post from must be:

  1. A Business or Creator account on Instagram (Instagram app: Settings → Account type, if it isn't already).
  2. Linked to a Facebook Page you administer — either from the Instagram app (Settings → Linked accounts → Facebook) or from the Facebook Page's own settings (Settings → Instagram).

Instagram's Graph API always connects through that linked Page, not directly — Stitchable resolves it automatically in step 5 below, but only if this link already exists.

4. Connect it in Stitchable

  1. In your Meta app dashboard, go to Settings → Basic and copy the App ID and App Secret.
  2. In Stitchable's connect wizard (Instagram step), paste the App ID as Client ID and the App Secret as Client secret, then click Save & continue.
  3. Click Sign in with Instagram. A browser window opens Meta's real login dialog.
  4. Your browser will show a "connection isn't private" warning partway through — click Advanced → Proceed. This is expected: there's no way to get a browser-trusted certificate for a bare IP like 127.0.0.1, and clicking through is the accepted cost of Meta's own HTTPS requirement, not a Stitchable bug.
  5. Log in with the Facebook account that administers the Page from step 3, and approve access.

Stitchable then looks at every Facebook Page you administer, finds the one with a linked Instagram Business/Creator account, and connects automatically if there's exactly one match. If it finds none, or more than one, it stops with a clear error telling you what to unlink (or link) before reconnecting — it won't guess which account you meant.

5. Set up a media relay — Instagram's one extra requirement

Instagram's Graph API will only accept a publicly fetchable HTTPS URL for the video or image you're posting — it cannot accept a direct file upload the way Stitchable's other supported platforms can. This is the one piece of extra infrastructure Instagram specifically requires.

Stitchable handles this with a media relay, configured once in Settings: a base URL plus an optional bearer token for any static file host you control (S3, Cloudflare R2, your own server — anything reachable over HTTPS). Once configured, Stitchable automatically uploads the rendered video there and hands Instagram the resulting public URL — you don't do anything extra per-post.

6. What to expect after connecting

  • Publishing goes through a container that Meta processes asynchronously; Stitchable polls it for you. A short delay before the post actually appears is normal, not a hang.
  • Real (non-test) posting requires Meta App Review approval for instagram_content_publish. This is not instant — budget real time for it, and expect Meta to ask for a demo of the exact flow using the account you'll actually use in production.
  • While your app hasn't passed review, it runs in Meta's "Development" mode, where only accounts you've explicitly added as Admins, Developers, or Testers on the app (App roles in the dashboard) can complete this flow at all — including your own account if you forgot to add it.

Troubleshooting

Phone number verification loop

This is the flakiest step in this entire doc set, and it's worth giving it the most room.

Symptom: Meta's developer account setup asks you to verify a phone number, then loops back to the same request — sometimes worded as "Go to Meta Account settings to update your phone number" — even after you've entered a number and confirmed a code.

What we know: This is a real, currently-reported problem, not specific to Stitchable or to any one Meta app. Simply changing the phone number on the account does not reliably resolve it on its own.

What has worked for some people (community-sourced, not a guaranteed fix — Meta hasn't published an official explanation or resolution path as of this writing):

  • Adding a valid credit card to the Meta / Meta Horizon account associated with your developer account.
  • Connecting your Facebook and Instagram accounts to a Meta Horizon account first, then retrying developer account verification.

Treat these as things worth trying, not a checklist guaranteed to fix it. If none of them work, Meta's own developer support channels are the next step — this is squarely a Meta account-verification issue, outside anything Stitchable's connect flow controls.

"Connecting still fails for an account that isn't mine"

If you've completed this guide and connecting still fails for an account that isn't the one you used to build and test the app, this is expected, and it's a platform policy, not a Stitchable bug: while your Meta app is in "Development" mode (the default, before App Review), only accounts you've added as Admins, Developers, or Testers on the app can complete the connect flow at all (see step 6 above) — and real posting for arbitrary Instagram accounts additionally requires Meta's own review approval for instagram_content_publish. There's no configuration change in Stitchable that widens this; going live for other people's accounts means going through Meta's own review process.

A connected account shows "needs reauth"

The platform session (access token) Stitchable was using has expired or been revoked on Meta's side — common causes include the token aging out, you revoking access from Meta's own security settings, or a password change. Open the connect wizard again, choose Instagram, and go through Sign in with Instagram as if connecting fresh — this replaces the expired session without losing your existing posts or history.