How to post to Instagram from Claude, and schedule the posts

Claude has no Instagram access of its own: it writes the post, and a connector does the posting. With PostWire in Claude's connector directory you press Connect, connect your Instagram Business or Creator account once, hand over the photo or video through an upload link, approve the caption, and Claude publishes a photo, a Reel or a carousel of up to 10 items with post_to_social, or schedules it with schedule_post. PostWire is already in Claude's connector directory. The free plan includes Instagram and the connector: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card.

What you hand over decides the format: one photo is a feed post, one video is a Reel, two to ten items are a carousel. A file you attach to a Claude message does not reach a connector, so the photo or video travels through an upload link.

Updated . Written from PostWire's own code; vendor prices read on Oct 29, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.

Set it up and post, step by step

Prompt to copy once Instagram is connected: Write an Instagram caption for the photo I'm about to upload: we open the new terrace on Saturday. Show it to me, and schedule it for Friday at 9:00 New York time.

  1. Add PostWire to Claude

    Open PostWire in Claude's connector directory and press Connect; it works in Claude on the web, on the desktop and on your phone. In Claude Code, run claude mcp add --transport http postwire https://postwire.io/api/mcp. A sign-in window asks for your email and a 6-digit code, which also creates a free PostWire account if you have none: no password and no card.

  2. Connect Instagram

    Ask "connect my Instagram". Claude calls create_connect_link and gives you a one-hour link; open it and choose Log in with Instagram (no Facebook Page needed) or connect through a Facebook Page you manage. Instagram's API publishes only from Business or Creator accounts — switching a personal account is free, in the Instagram app's settings. PostWire never sees your password.

  3. Hand over the photo or video

    Ask "give me an upload link". A file attached to the chat does not reach a connector, so Claude gives you an upload page instead (create_upload_link, valid 24 hours, up to 100 MB on the free plan and 1 GB on paid plans). Pick the file there and Claude attaches it to the post. A public https link works too. For a carousel, hand over each photo or clip — up to 10.

  4. Approve the caption

    "Write an Instagram caption for this: we open the new terrace on Saturday." generate_posts returns a draft and publishes nothing: a hook in the first line, a short caption and at most 5 hashtags at the end, within Instagram's 2,200 characters. Ask for the LinkedIn or Facebook version in the same message and each comes back written for that network.

  5. Publish, or schedule it

    Say "post it" and Claude calls post_to_social; "schedule it for Friday at 9" calls schedule_post, and "in my next free slot" uses run_at: "next_slot". Two or more items in media make a carousel:

    {
      "name": "post_to_social",
      "arguments": {
        "platforms": ["instagram"],
        "per_platform": { "instagram": { "text": "The terrace opens Saturday ☀️ …" } },
        "media": [
          { "url": "https://postwire.io/m/…/terrace-1.jpg", "type": "image" },
          { "url": "https://postwire.io/m/…/terrace-2.png", "type": "image" },
          { "url": "https://postwire.io/m/…/walkthrough.mp4", "type": "video" }
        ]
      }
    }
  6. Check that it is live

    Instagram processes a video before it can be published. If that takes longer than the call can wait, the result says processing and PostWire publishes it by itself a few minutes later; ask "is it live?" and Claude calls get_post_status.

Nothing is published before you say yes: Claude shows the exact caption first. PNG, WebP and AVIF images are converted to JPEG for you, because Instagram's API takes JPEG only. The same queue is on the dashboard's Queue page. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.

What to say in Claude, and what Instagram receives

You sayClaude callsInstagram receives
"Post this photo with a caption about the new menu"generate_posts, then post_to_socialA feed post with one photo
"Post this video as a Reel"post_to_social with the videoA Reel, with the audio that is in your file
"Make a carousel with these four photos"post_to_social with four items in mediaA carousel (2 to 10 photos or videos)
"Schedule it for Friday at 9"schedule_post with run_atThe same post, at that time
"What do I have scheduled?"list_scheduled_postsNothing — it reads your queue
"Send the same news to LinkedIn and Facebook"generate_posts, then post_to_social with three networksIts own caption; the other two get theirs

Source: PostWire's MCP server and Instagram publisher, read Oct 29, 2026. Every Instagram tool and limit: Instagram MCP server.

Why Claude needs a connector to post to Instagram

Instagram publishes for other software only through Meta's official API, and only for an app Meta has reviewed, on a Business or Creator account whose owner has signed in and approved it. A chat window holds none of that. A connector does: PostWire's Meta app was approved in App Review on July 14, 2026, so you create no Meta developer app, and you sign in on Meta's own screen.

Scheduled posts are published by PostWire's servers, so Claude and your computer can be closed when the hour comes. The same connector publishes to TikTok — post to TikTok from Claude — and to Facebook Pages — post to Facebook from Claude — each with its own text.

What it does not do

PostWire publishes and schedules your own posts. It does not like, follow, comment or send direct messages, and it does not post to a personal Instagram account, because Instagram's API does not. Instagram has no text-only posts, so every post needs a photo or a video. Stories are published through PostWire's REST API, not from the chat.

Questions people ask

Can Claude post to Instagram?

Not by itself. Claude writes the caption, and a connector with an approved Meta app publishes it. With PostWire connected from Claude's connector directory, Claude posts photos, Reels and carousels to your Instagram Business or Creator account after you approve each one.

Can Claude schedule Instagram posts?

Yes. Say when — "Friday at 9" or "my next free slot" — and Claude queues the post with schedule_post, up to 365 days ahead. "What do I have scheduled?" lists the queue, and a queued post can be cancelled from the chat. The free plan keeps 3 posts waiting at once.

Why doesn't the photo I attached in Claude reach Instagram?

Files attached to a chat message are not passed to connectors. Ask for an upload link, open it on the device that has the file, then tell Claude it is uploaded.

Can Claude post Reels and carousels?

Yes. One video is published as a Reel and two to ten photos or videos as a carousel. Stories are published through PostWire's REST API rather than from the chat.

Do I need a Business account or a Facebook Page?

No developer app: you connect to PostWire's approved Meta app. No Facebook Page either if you choose Log in with Instagram; the account must be a Business or Creator account.

Does it work in Claude Code and Claude Desktop?

Yes. Claude on the web, the desktop app and the phone use the Connect button in the connector directory. Claude Code adds it with: claude mcp add --transport http postwire https://postwire.io/api/mcp.

How much does it cost?

The free plan includes Instagram and the connector: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.