TL;DR, Quick Answer
7 min readMeta documents that Instagram connects to Muse automatically through Accounts Centre, and documents no publishing action through that link. A custom connector built from the AdaptlyPost OpenAPI spec gives Muse the part Meta leaves undocumented: postType control over Feed, Reel and Story, carousels, scheduled times with a timezone, and a per-platform result you can retry.
Meta already links your Instagram account to its agent, which makes a Meta Muse connector for Instagram posting sound redundant until you read what Meta actually documents about that link. The connection is documented. The publishing is not. Instagram is where the gap bites hardest, because Feed, Reel and Story are three different posts and nothing in the built-in link picks between them.
The short version: Meta's help centre says Facebook, Instagram and Threads connect to Muse automatically when the accounts share an Accounts Centre, and stops there. A custom connector built from a public OpenAPI spec is what gives Muse postType, carousels, a scheduled time and a retry when Instagram rejects a post.
Why build a connector for a network Muse already connects to?
A custom connector earns its place because the automatic Accounts Centre link is documented as a connection and never as a publishing action. The pillar post sets out what Meta does and does not document about that link. The Instagram consequence is what matters here: nothing in the built-in link selects Feed, Reel or Story, sets a publish time, or carries a carousel, so "post this to Instagram" has no way to say which of Instagram's three surfaces it means.
So the honest framing is a documentation gap rather than a missing feature. You can link Instagram to Muse today and take the publishing on trust, or you can hand Muse an API whose entire contract is a document you can open. The pillar covers the shared setup for all nine networks. This page is the Instagram half.
How do I build the Instagram connector?
The Instagram build is the shared connector build plus one changed line in the paste. The pillar post carries the full paste, the credential rule and the reachability constraint. The Instagram delta is the closing instruction, which names the network you want read back.
Do not publish anything yet. Call GET /social-accounts first and show me which
Instagram accounts are connected, with the connectionId for each.An empty list at this point is an account-type problem rather than a connector problem, and the account-type check below says why.
What does postType control on Instagram?
postType decides which of Instagram's three publishing surfaces the post lands on, and each value demands different media. It lives in instagramConfigs[] alongside the connectionId, and it is the single field an agent gets wrong, because "post it to Instagram" does not say which kind of post.
- The sentence names no
postType - Muse has to choose a value with nothing to go on
- Make it name the value first
- Muse sets
postType: REEL - Make it confirm the media is video before it sends
- Make it confirm the media is video
- Muse sets
postType: STORY - The caption it drafted never renders
- Make it say so before you approve
Tell Muse to read the value back to you before the first publish. A vague request produces a question, not a guess, and the read-only-first instruction in the paste above is what trains that habit.

How do I schedule an Instagram carousel through Muse?
A carousel goes out as contentType: CAROUSEL with two to ten media URLs in the order a reader will swipe them. There is no separate carousel flag and no per-slide configuration, so the array order is the only thing carrying your sequence. The ordering rules are the same ones that apply outside an agent.
You: Schedule a carousel for Thursday 10am Kyiv time with these five product
shots, caption: "Five ways teams use AdaptlyPost this month."
Muse: POST /upload-urls -> 5 presigned URLs
PUT each image
POST /social-posts
platforms: [INSTAGRAM]
contentType: CAROUSEL
text: "Five ways teams use AdaptlyPost this month."
instagramConfigs: [{ connectionId: "...", postType: "FEED" }]
mediaUrls: [ ...5 publicUrl values, in order... ]
scheduledAt: "2026-09-24T10:00:00"
timezone: "Europe/Kyiv"Two fields decide whether that call matches what you asked for. text carries the caption, so a Muse call without it publishes five images and no words. And POST /social-posts does not accept raw bytes, so the presigned-URL step has to come first. Both belong in the instruction Muse saves as a skill, because the skill is what it replays the next time you ask.
What does the connector add that the Accounts Centre link does not?
The connector adds five things Meta documents nowhere for the built-in Instagram link: a scheduled time with a timezone, explicit postType control, carousels, a caption written for Instagram alone, and a result you can read per platform and retry.
- Meta documents the connection, not the publishing
- No documented scheduling queue
- No documented post type selection
- Documented only for Facebook, Instagram and Threads
- Published OpenAPI 3.0.3 contract you can read first
scheduledAtplustimezonebooks the postpostTypepicks Feed, Reel or StoryplatformTextsgives Instagram its own caption- Per-platform results, and a retry that only re-sends failures
The per-platform result is the one that changes daily work. GET /social-posts/{id}/results reports each network separately, so a launch that published on LinkedIn and failed on Instagram tells you exactly that, and POST /social-posts/{id}/retry re-sends only the failures. POST /social-posts/bulk books 1 to 100 posts in one call, which is how a month of Reels fits in a single message. If you want the same nine-network behaviour from a different agent, the Grok bot template for Instagram posting drives the identical endpoints.

What breaks on Instagram specifically?
Two things break that the connector cannot fix: an account type Instagram's publishing API refuses, and a saved Muse skill holding endpoint shapes that have since changed.
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
Instagram's publishing API accepts Business and Creator accounts only, so a personal profile connects and then never appears as a publishable target in GET /social-accounts. That is a scope and account-type question, and it is the first thing to check when Muse reports an empty list. Instagram's own media rules bite every agent the same way, and the carousel guide covers them.
The second failure is the one Muse brings with it. Muse saves a working integration as a reusable skill that outlives the conversation, and that saved instruction holds the endpoint shapes it learned on the day it built the connector. As of 20 September 2026 Meta publishes no answer for what happens when your API changes underneath a saved skill, so re-run the read-only check after any API change rather than assuming the skill aged well.
Frequently Asked Questions
Can Muse post to Instagram without a custom connector?
Meta documents the Accounts Centre link as a connection and never as a publishing action, so nothing Meta publishes says how a request routed through it would pick Feed, Reel or Story. Why Meta's documentation stops at the connection covers the evidence; the connector is what supplies postType, scheduledAt and a carousel.
Which Instagram account types can the connector publish to?
The connector publishes to Instagram Business and Creator accounts, because those are the only types Instagram's publishing API accepts. A personal profile converts in the Instagram app under Settings, Account type and tools, and then appears in GET /social-accounts like any other connection.
Can Muse schedule an Instagram Story?
Yes, once the connector supplies postType: STORY with a scheduledAt time and a timezone, which is the pairing the Accounts Centre link has no field for. Make Muse repeat both values before you approve, because an Instagram Story has no caption field, so any text Muse drafted will not appear on the published Story. Instagram's own 24-hour expiry runs from publish time, not from the moment Muse booked it.
Does Muse ask before it posts to Instagram?
Meta's stated default is that Muse will not take many important actions without approval, and as of 20 September 2026 the Connectors permission under Settings then Permissions offers "Ask for some actions" or "Always ask". Approval prompts appear in the client UI rather than inside the conversation. Keep per-post approval for the first week of posting.
How do I cut Muse off from my Instagram account?
Revoke the adaptly_ token at adaptlypost.com/api-tokens and every call the connector makes returns 401, which stops Muse creating or changing posts and leaves your social account connections untouched. As of 20 September 2026 Meta's connectors, approvals and privacy help pages document disconnecting listed connectors under Settings then Connectors, and none of them documents removing a custom connector Muse built.
How many images can an Instagram carousel have through Muse?
A carousel takes two to ten media URLs, sent with contentType: CAROUSEL. There is no per-slide setting, so the order of the array is the order a reader swipes. Put the images in that order before Muse makes the call.
Can Muse write a different caption for Instagram than for other networks?
Yes, through platformTexts, which gives Instagram its own caption. The text field still carries the main caption, and a call without it publishes the images with no words. Ask Muse to read both back before you approve.
Can Muse schedule a month of Instagram Reels in one go?
POST /social-posts/bulk books 1 to 100 posts in one call, so a month of Reels fits in a single message. Each post still needs postType: REEL and video media, so have Muse confirm the media is video before it sends the call.
What happens if Instagram rejects a post Muse sent?
GET /social-posts/{id}/results reports each network separately, so you see that Instagram failed even if LinkedIn went through. Then POST /social-posts/{id}/retry re-sends only the failures. The posts that already published are left alone.
Why does Muse show no Instagram accounts?
An empty list from GET /social-accounts is usually an account-type problem. Instagram's publishing API accepts Business and Creator accounts only, so a personal profile connects and never appears as a target. Convert it in the Instagram app under Settings, Account type and tools.
Create an AdaptlyPost API token and hand Muse the spec, or read the full connector guide first.
Sources: Meta's Muse connectors help article, Meta's guidance and approval page, Parallel's custom integrations write-up (14 September 2026), and the AdaptlyPost OpenAPI spec. Checked 20 September 2026.
Put this into practice with AdaptlyPost
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks AdaptlyPost as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
AdaptlyPost
Schedule your content across all platforms
Manage all your social media accounts in one place with AdaptlyPost.
All-platform analytics
Social Inbox
AI-powered assistant
Related Articles


Publish to Pages With a Meta Muse Connector for Facebook Posting
Facebook Pages are addressed by pageId, so a Meta Muse connector for Facebook posting reads the IDs from the API first. What to paste and where the token goes.


Start With a Meta Muse Connector for LinkedIn Posting
LinkedIn has no config object in the AdaptlyPost API, so a Meta Muse connector for LinkedIn posting has no platform fields to get wrong. Where to start.


How to Build a Meta Muse Connector for Social Media Posting
Muse writes its own client, so a Meta Muse connector for social media posting starts from a public OpenAPI spec. What to paste and where the token goes.

