All guides

Connect Instagram to Social Quack

Schedule posts to your own Instagram account — no Facebook page, no App Review, a few minutes you only spend once.

Instagram will not let a scheduling tool post on your behalf unless that tool belongs to you. So the one-off job is to create a small, free developer app of your own on Meta's site and paste two values from it into Social Quack. Those values are stored encrypted on your own Mac, and because the developer app is yours, Instagram's posting limits are yours alone — there is no shared pool of other people's accounts to get rate-limited or banned in.

Work with Social Quack and your browser side by side: Meta's developer site in the browser, the app next to it. Every value you have to paste into Meta's site has a copy button next to it in the app.

1. Your Instagram account must be Professional

Social Quack posts to a Professional account — Business or Creator. In the Instagram app on your phone: Settings → Account type. A personal account cannot post through Instagram's publishing tools at all, so this is worth checking before anything else.

You do not need a Facebook page, and the account does not have to be linked to one.

2. Open the keys window in Social Quack

In the app, click Channels in the sidebar, find Instagram under Add a channel, and click Set up app keys.

Leave that window open. It holds three things you need in a moment:

  • the same steps as this page, in short form;
  • the redirect URL — the address Instagram sends you back to after you log in. Social Quack works out the right one for your setup and shows it with a copy button, so always take it from there rather than typing something that looks right;
  • the two boxes you will paste into: Instagram App ID and Instagram App Secret.

3. Add the Instagram use case to a Meta app

  1. Go to https://developers.facebook.com and sign in with your Facebook account.
  2. Open your app. If you already made one to connect Threads, that same app works — you do not need a second one.
  3. Never made one? My Apps → Create app, give it any name, pick the use case "Manage messaging & content on Instagram" when Meta asks what your app should do, and attach or create a business portfolio when it asks for one.
  4. In the app, choose Add use case → "Manage messaging & content on Instagram" — unless you just picked it while creating the app, in which case it is already there.

That use case used to be called Instagram API with Instagram Login. Same thing, renamed — if you see the old name in an older article, you are in the right place.

4. Tell the app where to send you back

Inside that use case, open API setup with Instagram login → Set up Instagram business login, and fill in three boxes:

Box on Meta's page What to put in it
OAuth redirect URIs The redirect URL Social Quack shows you, with a copy button, in the Set up app keys window. Copy it from there — do not retype it.
Deauthorize URL https://socialquack.com/oauth/callback/uninstall
Data deletion URL https://socialquack.com/oauth/callback/delete

Save the page. The redirect URL has to match character for character, so always copy it rather than typing it — that is the single most common reason Instagram's login page refuses to continue.

Don't be thrown if that address is on socialquack.com rather than on your own computer. Instagram refuses any sign-in that would send you back to a plain, non-secure address, so Social Quack gives you a secure one to register and hands the sign-in straight back to the app running on your Mac.

5. Copy the two keys into Social Quack

Still on the same page, find the Instagram App ID and the Instagram App Secret and paste them into the matching boxes in Social Quack.

These are not the Meta App ID and secret shown elsewhere in the dashboard. They look similar and they are different numbers. Take them from API setup with Instagram login.

Click Save. Social Quack stores them encrypted on your Mac and immediately opens Instagram's login page in your browser. If you have not done step 6 yet, this first sign-in will fail — that is expected, and step 6 is how you fix it.

When the sign-in does go through — after step 6 — Instagram asks you to approve three permissions:

Permission What it is for
instagram_business_basic reads your username and profile picture, so the account shows up under Connected
instagram_business_content_publish publishes the posts you schedule
instagram_business_manage_comments adds the follow-up parts of a multi-part post as comments

Approve all three. The third one is what turns the follow-up parts of a multi-part post into comments — without it the post itself still goes out, then fails with "Posted, but adding the comment thread failed".

6. Add your account as an Instagram Tester — and accept the invite

Your app stays in Development mode (see step 8), and in that mode Instagram only lets accounts you have invited use it. Yours is one of them:

  1. In your Meta app: App roles → Roles → Add people → add your Instagram account as an Instagram Tester.
  2. Then accept the invitation inside the Instagram app on your phone: Settings → Website permissions → Apps and websites → Tester invites.

Until you accept, the invite sits as pending and the login in step 5 fails. If your very first connection attempt bounced back with an error, this is almost always why — accept the invite, then click Connect on the Instagram card again.

7. Media hosting — every Instagram post needs a photo or video

Two Instagram rules shape this step: there is no text-only post, and Instagram fetches photos and videos from a public web address instead of accepting an upload.

Open Settings → Media hosting in Social Quack. With an active licence, Social Quack hosts the files for you and there is nothing to set up: a copy of the file is made only at the moment the post goes out, it is deleted within a day, and your originals never leave your Mac. If you would rather serve the files yourself, Use your own bucket instead takes any S3-compatible storage — a Cloudflare R2 bucket with a custom domain works great.

Because there is no text-only post, Social Quack stops one as you schedule it rather than letting it fail later: "Instagram has no text-only posts — attach an image or video". And if a file is attached but there is nowhere to host it, the post fails when it is due, with "This platform needs a public URL for media…" — activate your licence, or set up your own bucket here.

8. Post something

Open Compose, tick the Instagram channel, attach the photo or video, write the caption and schedule it.

  • Captions can run to 2,200 characters.
  • Attach up to 10 photos or videos — more than one becomes a carousel.
  • A single video is published as a Reel.
  • Extra parts of a multi-part post become comments: the first extra part is posted as a comment on the post, and any parts after that are replies to that comment.
  • When it publishes, the Queue links straight to the post on Instagram.

That is the whole job. Your app stays in Development mode, which is all you need to post to your own account — there is no App Review to pass. The connection renews itself while you keep posting: Instagram issues a 60-day pass, and the first time a post goes out to this account in the pass's final week, Social Quack swaps it for a fresh one. Go quiet for two months and the pass simply lapses — Instagram then asks you to connect the account again.

If something goes wrong

What you see What it means What to do
The Instagram login fails or bounces straight back with an error The Tester invite is still pending Accept it in the Instagram app: Settings → Website permissions → Apps and websites → Tester invites, then connect again (step 6)
Instagram refuses to connect the account at all It is a personal account Switch it to Business or Creator in the Instagram app: Settings → Account type (step 1)
Instagram's login page complains about the redirect, or never returns to the app The redirect URL saved at Meta does not match exactly Copy it again with the copy button in Channels → Instagram → Edit app keys, paste it into OAuth redirect URIs at Meta, save, and connect again (step 4)
The login is rejected the moment it starts The Meta App ID and secret were pasted instead of the Instagram ones Take the Instagram App ID and Instagram App Secret from API setup with Instagram login (step 5)
Instagram asks you to log in even though you are already signed in on that browser Expected — the connection always asks for a fresh login Sign in normally
"Instagram has no text-only posts — attach an image or video" (on Post now: "Instagram requires an image or video on every post") The post has no photo or video, and Instagram has no text-only post Attach a file in Compose, or untick the Instagram channel for that post (step 7)
"This platform needs a public URL for media…" Instagram fetches photos and videos from a web address, and Social Quack has nowhere to put them Activate your licence in Settings → License, or set up your own bucket under Settings → Media hosting (step 7)
"Instagram could not process the media" Instagram rejected the file itself Try a different file — a standard JPEG or MP4, closer to what you would post from the phone
"Instagram took too long to process the media" A big video is still being processed at Instagram's end Nothing to do; Social Quack treats it as temporary and tries again
"Posted, but adding the comment thread failed" The post is live, but the follow-up parts could not be added Open Channels, connect Instagram again and approve all three permissions, the comments one included (step 5) — the same account reconnects in place

Stuck on a step? Email [email protected] and a human will answer.