How to post to Instagram from n8n
/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
- 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).
- 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.
- 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_…(theX-API-Keyheader also works). Keep it server-side. - 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, POSThttps://postwire.io/api/postwith headerAuthorization: Bearer pw_live_…. - 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" } } } - 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
| Route | Your own Meta app and App Review | Video (Reels) | Carousels | Cost |
|---|---|---|---|---|
| PostWire | No — PostWire's approval | Yes | Up to 10 items | Free for 1 business (20 posts/mo); $9+ paid |
| Graph API with HTTP Request nodes | Yes | Yes — create container, poll status, publish | Yes — one container per item | Free (your time) |
| Upload-Post node | No | Yes | Not listed | Free 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.
- Upload-Post plans and free-plan networks (their llms-full.txt): www.upload-post.com/llms-full.txt
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.
Try it on one business, free.
The free plan is 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days, with a card at checkout and nothing charged that day.