REST API (Webhooks by Zapier) · Instagram

Send Instagram posts from Zapier to an approval inbox

Zapier connects to the apps that already hold your Instagram material: a Shopify product, a Dropbox folder of photos, a form where your team submits ideas. SocialHandoff adds the step Zapier lacks: a person approving the post. A Zap uploads the image, creates an Instagram draft with the returned media id, and stops. The post publishes only after someone checks the caption and photo in the inbox.

Prompt

When a new file lands in the Dropbox folder "Instagram ready", use the filename as the topic, write a 2-sentence caption with ChatGPT by Zapier, upload the image, and send it as an Instagram draft.

How to do it

  1. Connect Instagram and mint a key In https://app.socialhandoff.com, open Connections, connect an Instagram professional account (Business or Creator). Then create an agent key named Zapier scoped to Instagram with draft permission.
  2. Set up the trigger Pick a trigger such as a new file in a Dropbox or Google Drive folder, and add a step that writes the caption, for example ChatGPT by Zapier.
  3. Import media by URL Add a Webhooks by Zapier Custom Request: POST https://app.socialhandoff.com/v1/media/import with JSON {"url": public https link, "alt": description} for the JPEG image, Reel, or carousel (up to 10 items). No multipart needed. Keep the id it returns for the next step.
  4. Create the post Add a Webhooks by Zapier Custom Request: POST https://app.socialhandoff.com/v1/posts with a bearer header and JSON body {"body": caption, "networks": ["instagram"], "mode": "submit", "mediaIds": [the uploaded ids]}. The post lands in the approval inbox.
  5. Review and approve Check the caption, hashtag count, and alt text on the approval card. On approval, the post publishes; if Instagram's daily quota is full, it is deferred by an hour.

Example draft

Fresh from the studio: the autumn collection, glazed in a rust red we have been testing all summer. Every piece is thrown and fired by hand, so no two are quite the same.

#ceramics #handmade #pottery #autumn

[Image: JPEG from the Dropbox folder, alt text: "Rust red ceramic mugs on a wooden shelf"]

Gotchas

  • Images must be JPEG (up to 8 MB). A PNG screenshot is not accepted, so convert it before upload.
  • Zapier may retry a failed step. Send an idempotencyKey built from the trigger record's id so a retry returns the same draft instead of a second one.
  • Captions allow 2,200 characters, 30 hashtags, and 20 mentions. A thread is joined into one caption, so a 5-part draft becomes one long caption.
Instagram
  • Account type: Professional accounts only (Business or Creator). Personal accounts cannot publish through the API.
  • Media: Every post needs an image or video. Text-only posts are not possible on Instagram.
  • Image files: JPEG only, up to 8 MB. Convert PNG or WebP before posting.
  • Reels: Video posts publish as Reels, from MP4 or MOV files.
Schedule Instagram posts and Reels your agents draft

Frequently asked questions

Does it work with a personal Instagram account?
No. Instagram only allows publishing through its API for professional accounts, Business or Creator. Switching is free in the Instagram app settings.
Is there a native Zapier app?
Not today. Webhooks by Zapier calls the REST API with a bearer header: one JSON request imports the media by URL, another creates the draft.
Can I post Reels?
Yes. Attach an MP4 or MOV video and it publishes as a Reel with your caption.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial