n8n + Instagram

Post to Instagram from n8n

n8n has no official Instagram node. Call ShortSync's API from the HTTP Request node instead: upload a video or image from a link, then post or schedule it as a Reel, photo, carousel or Story, with collaborators and a first comment, and send it to TikTok, YouTube Shorts and 14 more platforms in the same request.

Get your API key free

n8n HTTP Request node · Free plan · Official Instagram API

The Graph API node or ShortSync?

n8n on its own

  • n8n has no Instagram node. You can call Instagram's API with the Facebook Graph API node or an HTTP Request node.
  • That needs your own Meta developer app with the Instagram publishing permission and a long-lived access token.
  • Every post takes two calls: create a media container, wait until Instagram has processed the video, then publish it. Carousels need a container per item first.
  • Scheduling is up to you: the workflow has to run the publish step at the right time.

n8n with ShortSync

  • Connect Instagram to ShortSync once with Instagram Login. No Meta app, no Facebook Page.
  • One request creates the post. ShortSync waits for processing and publishes.
  • Schedule the time in the request; ShortSync posts it then, even if n8n is off.
  • Post the same video to TikTok, YouTube Shorts and 14 more platforms in one request, and get a webhook when it's live.

Set it up in n8n

Connect Instagram to ShortSync once, then two HTTP requests per post. Publish now, schedule it, or save a draft to check first.

  1. 1

    Create a ShortSync API key

    In ShortSync, connect the account once, then open Settings → API & MCP, click Create API key and pick the workspace. In n8n, add a Header Auth credential with the name Authorization and the value Bearer followed by your key.

  2. 2

    Find your Instagram connection id

    Run an HTTP Request node once with GET on the connections endpoint and copy the id of your Instagram account.

    GET https://api.shortsync.app/v1/connections
  3. 3

    Upload the video

    Add an HTTP Request node: method POST, the uploads URL, Header Auth credential. Send source_url as a public direct-download link, for example {{ $json.video_url }} from an earlier node. Add an Idempotency-Key header so a retry doesn't import the file twice. If the file is already binary data in n8n, call POST /uploads with an empty body and PUT the file to the returned presigned_url instead.

    POST https://api.shortsync.app/v1/uploads
    
    {
      "source_url": "https://example-bucket.s3.amazonaws.com/clips/recipe.mp4"
    }
  4. 4

    Create the Instagram post

    Add a second HTTP Request node with POST on the posts URL. Map the upload_id, write the caption (up to 2,200 characters) and set Instagram's options in the target. A video posts as a Reel and an image as a photo post. Use publish_mode immediate, scheduled with scheduled_for, or draft.

    POST https://api.shortsync.app/v1/posts
    
    {
      "upload_id": "{{ $json.upload_id }}",
      "publish_mode": "scheduled",
      "scheduled_for": "2026-11-10T16:00:00Z",
      "caption": "5-minute miso soup. Save it for later #recipe",
      "first_comment": "Full recipe: link in bio",
      "targets": [
        {
          "connection_id": "<Instagram connection id>",
          "platform_options": {
            "instagram": {
              "share_to_feed": true,
              "share_to_story": true,
              "collaborators": ["partner_account"]
            }
          }
        }
      ]
    }
  5. 5

    React when it's live

    Start a second workflow with a Webhook node (POST), add its Production URL as a webhook in Settings → API & MCP with post.published and post.failed, and click Send test event. The event carries data.post.url, the post's Instagram link, and data.post.error when it fails.

Instagram settings you can send

Put these in platform_options.instagram on the Instagram target.

FieldWhat it does
share_to_feedShow the Reel in the main feed too (default on).
share_to_storyAlso post it as a Story. Reels and single images.
story_onlyPost only as a Story: a video up to 60 seconds or an image.
trial_reelPost as a Trial Reel, shown to non-followers first.
collaboratorsUsernames to invite as collaborators.
user_tagsUsernames to tag in the post.
location_idLocation to tag.
is_paid_partnershipShow the Paid partnership label.
is_ai_generatedAdd Instagram's AI info label.
alt_text, alt_textsAlt text for an image, or per image in a carousel.
audio_nameRename the Reel's original audio.

Instagram workflows to build

Schedule a month of Reels from a Google Sheet

Google Sheets trigger on a new row with a video link, caption and date, then the upload and post requests with publish_mode scheduled.

Post a carousel from a folder of images

Upload each image, group them with POST /uploads/carousel-group (up to 10 for Instagram), then post the group with one caption.

Write captions with AI, approve in ShortSync

Send the topic to an OpenAI or Anthropic node, use its answer as the caption, and create the post as a draft to check before it goes out.

Cross-post Reels to TikTok and YouTube Shorts

Add TikTok and YouTube targets to the same request so one workflow posts the vertical video everywhere, each with its own caption.

Good to know

  • Instagram's API only posts to professional accounts (Business or Creator). Switching is free in the Instagram app.
  • ShortSync posts up to 50 Instagram posts a day per workspace by default, under Meta's limit for API posts.
  • A first comment works on Instagram (first_comment in the request).
  • Works the same on n8n Cloud and self-hosted n8n. Webhooks need n8n reachable over https.

Frequently asked questions

No official one. You can call Instagram's API with the Facebook Graph API node, which needs your own Meta app and the two-step container and publish flow. Or call ShortSync's API from the HTTP Request node: connect Instagram to ShortSync once, then upload and post in two requests.
Yes. Upload a video and post it to your Instagram connection; it goes out as a Reel. Set share_to_story to post it as a Story too, or trial_reel to post a Trial Reel.
Yes. Send publish_mode scheduled with scheduled_for as an ISO 8601 time. ShortSync posts it at that time, so the n8n workflow doesn't have to wait.
No. ShortSync connects Instagram with Instagram Login and posts through its own reviewed Meta app. You need an Instagram Business or Creator account.
No. The API and webhooks are on every plan, including Free with 5 uploads a month.

Post to Instagram from n8n

Free plan, API key in a minute, official platform APIs.

Official APIs and approved publishing partners

Prefer a walkthrough? Book a demo with Hilma