Instagram publishes Reels through Meta’s Graph API. The API cares which account type you have, the publish takes two calls, and each account has a daily cap. Know these before you build a calendar.
Prerequisites, in order#
- A Business or Creator account. Personal accounts cannot publish through the API. Switching is free and reversible in settings. Until you switch, every tool fails at the connect step.
- A linked Facebook Page. The connection runs through a Page. It can be empty, but it must exist and be linked.
- The right permissions. Publishing needs content publishing permission. Reading results needs insights permission. A tool that asks for only one connects fine and then misses half its features.
- Vertical video. Reels are 9:16. Render at 1080x1920. A square or landscape export cannot feed this platform as a Reel.
How the publish works#
Publishing a Reel is not one request.
Step 1: create a container#
You send Instagram a public URL for the video and the caption. Instagram returns a container ID, not a post, and then fetches your file. The file must stay reachable until the fetch ends. A presigned URL that expires too soon, a private bucket or a redirect gives a container that never becomes ready, with no clear error.
Step 2: wait for the transcode#
Instagram transcodes the video. You poll the container status until it is finished. A good scheduler creates the container early, so the transcode is done before the slot.
Step 3: publish#
A second call makes the container live and returns a post ID.
Step 4: confirm#
Read the published post back. A successful publish call and a post visible on the profile are not always the same thing. Record what happened, not what you asked for.
What the API rejects#
- Wrong aspect ratio. 9:16 only.
- Wrong length. Meta enforces a minimum and maximum duration for Reels. Check the current limits.
- Long captions. The limit is 2,200 characters, counted in UTF-16 code units, so emojis count double. Test with the caption length checker.
- More than 30 hashtags.
- A file it cannot fetch. See step 1.
- Drafts. The publishing API has no drafts inbox. Unlike TikTok, there is no “send to the app and finish by hand” mode. Your review step has to happen in your tool, before the publish call.
The daily cap#
Meta limits how many posts one account can publish through the API in a rolling 24 hours. Check the current figure in Meta’s docs. It sits well above any sane cadence, so it will not limit your schedule. It will limit a migration: 200 archived videos cannot all go out on Saturday.
Do not dump a backlog#
On day one, with three months of content ready, it is tempting to post six times a day to catch up. Two things go wrong. You may hit the cap. And your posts compete with each other for the same followers, so the whole batch lands worse, and you spend your best material on a weak signal.
Ramp instead. Start at your normal cadence plus one post, hold for two weeks, then raise it if results hold. How often to post covers volume, and the logic carries across platforms.
Design the automation around how Reels are judged#
Automation fixes some choices for every post, so make them on purpose.
- Saves and sends matter. Instagram weights whether people keep or forward a Reel. That favours reference content: checklists, comparisons, things worth sending to a colleague. If you only make entertainment, you feed the weaker signal.
- The caption gets read. Instagram captions are read more than TikTok captions. Write the on-screen text and the post caption as separate jobs.
- Pick the cover. The cover is what profile visitors see in your grid. Automations that take the first frame make a grid of dark tiles.
- Use audio. Original audio is fine for a brand. Silence is not.
What automation buys you#
The mechanical half: transcode timing, retries on a failed fetch, a result per account when a multi-platform post half fails, and a queue that runs while nobody opens the app. It does not write a good hook for you.
Looptake connects Instagram over OAuth and publishes through the official API on the cadence you set. It warns you when an account connection expires, before the next slot. A post sent to Reels, TikTok and Shorts at once records a result per account. Because Looptake also makes the video, an automation can fill each slot with a new Reel built from a one-line prompt, which you review before it goes live. See auto-post to Instagram for setup, the AI video generator for how videos are made, and the best time to post Reels to pick your slots.