How to post to Instagram from n8n

Posting to Instagram from n8n with Meta's Graph API means your own Meta app, App Review, a container per media item and a wait for video processing; a posting API does those steps for you. With PostWire: connect your Instagram Business or Creator account once (through the Facebook Page it is linked to), then one PostWire → Post → Publish node (or one HTTP Request to /api/post) publishes a photo, a Reel or a carousel of up to 10 items.

Instagram never accepts a text-only post: every post needs a photo or a video. A video goes out as a Reel; several photos make a carousel; options.instagram.post_type can also be story.

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

Step by step

  1. Create a free PostWire account

    Open postwire.io/dashboard.html, type your email and press Create my free account. PostWire emails you a link to confirm the address; connecting accounts and publishing unlock once it is confirmed. No password and no card (free plan: 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month), 2 networks per post, 3 scheduled posts at a time — every network connects free, no card).

  2. Connect Instagram

    Accounts → Connect on Instagram, keep Through a Facebook Page and press Continue to Instagram. On Facebook's screen, tick your Instagram account and the Page it is linked to. If several Instagram accounts are linked to your Pages, you pick which one PostWire posts to. A direct Instagram login without a Page is coming once Meta approves it. PostWire's Meta App Review was approved on July 14, 2026, so you don't submit your own. Details.

  3. Copy your API key

    In the dashboard, open API & MCP and press Copy key on the API key card. It is sent as Authorization: Bearer pw_live_… (the X-API-Key header also works). Keep it server-side.

  4. Add the PostWire node (self-hosted) or an HTTP Request (Cloud)

    Self-hosted: Settings → Community nodes → Install → n8n-nodes-postwire, credential PostWire API. n8n Cloud: an HTTP Request node, POST https://postwire.io/api/post with header Authorization: Bearer pw_live_….

  5. Send the photo or video

    With the node: Networks = Instagram, Media = URL or Binary File, Content = Smart Distribute (writes the caption) or Same Text on Every Network. With HTTP Request:

    // A Reel
    { "platforms": ["instagram"], "text": "{{ $json.caption }}", "video_url": "{{ $json.video_url }}" }
    
    // A carousel (2–10 photos or videos)
    { "platforms": ["instagram"], "text": "…", "media": ["https://…/1.jpg", "https://…/2.jpg", "https://…/3.jpg"] }
    
    // A Story (no caption on Stories)
    { "platforms": ["instagram"], "photo_url": "https://…/story.jpg", "options": { "instagram": { "post_type": "story" } } }
  6. Handle the result

    Each network returns its id and link. A long video can come back as processing; PostWire finishes it on a later run, and the post status shows when it is live. Captions are limited to 2,200 characters and 30 hashtags (extra hashtags are dropped, with a notice).

PNG and WebP images are converted to JPEG for Instagram, because Instagram's API only takes JPEG. The media URL must be public and point at the file itself, not at a Google Drive page.

Three ways to post to Instagram from n8n

RouteYour own Meta app and App ReviewVideo (Reels)CarouselsCost
PostWireNo — PostWire's approvalYesUp to 10 itemsFree for 1 business (20 posts/mo); $9+ paid
Graph API with HTTP Request nodesYesYes — create container, poll status, publishYes — one container per itemFree (your time)
Upload-Post nodeNoYesNot listedFree plan: 2 profiles, 10 uploads/mo; Basic $24/mo

Checked on Oct 1, 2026 (2026-10-01) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.

Where PostWire is ahead

  • No Meta app and no App Review: PostWire's Meta approval (Jul 14, 2026) covers it, and the container polling happens on PostWire's side. The raw Graph API needs your own app, App Review and a container per item.
  • Carousels up to 10 items, Reels, Stories and trial reels; PNG, WebP and AVIF are converted to JPEG automatically, since Instagram takes JPEG only.
  • An Instagram caption written for you, and every other network's version in the same step.
  • 20 posts a month on the free plan. Upload-Post's free plan has 10 uploads a month.
Sources, all read on Oct 1, 2026:

Questions people ask

Can n8n post to Instagram?

Yes, through Meta's Instagram Graph API (with your own Meta app and App Review) or through a posting API such as PostWire, which needs only an API key and an Instagram account connected once.

Do I need a Facebook Page to post to Instagram from n8n?

Yes, for now: PostWire connects Instagram through the Facebook Page linked to your Instagram Business or Creator account. If several Instagram accounts are linked to your Pages, you pick which one PostWire posts to. A direct Instagram login without a Page is coming once Meta approves it. A personal Instagram account can't be posted to through the API.

Can I post a Reel from n8n?

Yes. Send a video to Instagram and PostWire publishes it as a Reel (or set options.instagram.post_type to "reels").

Can I post a carousel?

Yes: pass 2 to 10 photo or video URLs in media. In the dashboard, adding several photos makes a carousel.

Can I post text only to Instagram?

No. Instagram requires a photo or a video. If you only have text, PostWire's dashboard can turn the post into an image (Make an image from this post), and POST /api/media/card does the same over the API.