Social media APIs

Publishing Reels with the Instagram API: accounts, permissions and limits

Instagram's API can publish Reels, but only to professional accounts, through a container-then-publish flow, and only to accounts you manage until Meta's App Review. A practical guide to both login paths, the specs and the daily limit.

The people who build Reelspan

5 min read

Cover illustration: the title 'Publishing Reels with the Instagram API' on a dark card with Reelspan's crop-frame mark

Instagram has supported publishing Reels through its API for a while, but the documentation is spread over several pages with two login paths and two hosts, and a couple of limits that contradict each other. This guide puts the parts that matter for posting video in one place. It is based on Meta's developer documentation as published on 6 November 2026.

Who can be posted to

Only Instagram professional accounts, meaning Business or Creator accounts, can be published to through the API (overview). A personal account has to switch to professional first. Switching is free and done in the Instagram app.

And until your app passes Meta's review, only accounts of people who have a role on your Meta app can be published to. More on that below.

Two ways to log in

Meta offers two versions of the API, and they differ in more than the login screen:

Instagram API with Instagram Login Instagram API with Facebook Login
Account needs A professional account; no Facebook Page needed A professional account linked to a Facebook Page
API host graph.instagram.com graph.facebook.com
Publishing permissions instagram_business_basic, instagram_business_content_publish instagram_basic, instagram_content_publish, pages_read_engagement
Missing features Hashtag search, product tagging, partnership ads —

For a tool that only publishes, Instagram Login is simpler: creators sign in with their Instagram credentials, and they don't need a Facebook Page. Choose Facebook Login if you also need features only that path has, such as partnership ads.

With Instagram Login, the long-lived token lasts about 60 days. You can refresh it once it is at least 24 hours old and still valid, and each refresh gives another 60 days (Business Login for Instagram). A token you forget to refresh simply dies, so refresh on a schedule.

The publishing flow: container, then publish

Instagram doesn't take a video in a single call. You create a media container, wait for Instagram to process it, then publish it (content publishing):

  1. Create the container: POST /<IG_ID>/media with media_type=REELS and either a public video_url for Instagram to fetch, or upload_type=resumable to send the bytes yourself. Add the caption and any options here.
  2. Upload (resumable only): send the file to rupload.facebook.com for that container.
  3. Wait for processing: poll GET /<CONTAINER_ID>?fields=status_code until it says FINISHED. Meta suggests polling about once a minute for up to five minutes. Other values are IN_PROGRESS, ERROR, EXPIRED and PUBLISHED.
  4. Publish: POST /<IG_ID>/media_publish?creation_id=<CONTAINER_ID>. The response is the new media's id.

A container you don't publish expires after 24 hours. The publishing docs describe no webhook for "container ready", so plan on polling.

Useful Reels options on the container, from the media reference:

  • share_to_feed: also show the Reel in the profile grid.
  • cover_url or thumb_offset: the cover image, or the frame to use as the cover, in milliseconds.
  • collaborators: up to three accounts to invite as collaborators.
  • is_ai_generated: Instagram's AI disclosure.
  • trial_params: post as a trial Reel, shown to non-followers first.

Video specs for Reels

From the same media reference:

Spec Reels
Container MOV or MP4, with the moov atom at the front and no edit lists
Video codec H.264 or HEVC, progressive scan, closed GOP, 4:2:0
Audio AAC, up to 48 kHz, 128 kbps
Frame rate 23 to 60 fps
Width Up to 1920 pixels
Aspect ratio 0.01:1 to 10:1, with 9:16 recommended
Bitrate Up to 25 Mbps (VBR)
Length 3 seconds to 15 minutes
File size Up to 300 MB
Caption Up to 2,200 characters, 30 hashtags and 20 @mentions

The container rule is easy to miss: many encoders write the moov atom at the end of an MP4, which the spec above doesn't allow. Re-muxing with "faststart" (for example ffmpeg -movflags +faststart) fixes it without re-encoding. For the other networks' shapes, see our aspect ratio guide.

The daily limit: 100 or 50?

The content publishing page says an account can publish 100 posts through the API in a rolling 24 hours. Its carousel section still says 50. A carousel counts as one post either way.

Don't guess. Call GET /<IG_ID>/content_publishing_limit to read the account's current usage and quota, and build your scheduler to stop at 50 unless the endpoint says otherwise.

There is no native scheduling

The API publishes when you call media_publish. There is no "publish at" field. A scheduler has to keep the video and the caption and call the API at the chosen time. Remember that a container expires after 24 hours, so create it close to the publishing time, not when the user schedules the post.

App Review: from your accounts to everyone's

Out of the box, your app has Standard Access. It works only for accounts of people who have a role on the app, which is enough for development and for posting to your own accounts.

To publish for anyone else, you need Advanced Access for the publishing permission. According to Meta's access levels and App Review submission guide, that takes:

  • Business Verification of the business that owns the app.
  • App Review of each permission, with:
    • at least one successful call to each permission in the last 30 days;
    • a separate, specific description of how you use each permission;
    • a screencast per permission, showing the login and the feature in use, with the app's interface in English where possible (or captions if it isn't);
    • instructions so reviewers can test it.
  • Switching the app to Live mode after approval.

Meta says decisions usually come within about a week of submission. Business Verification has no stated timeline.

Where Reelspan stands

Reelspan publishes Reels, posts and carousels through this API. As of 6 November 2026, our Meta app has not yet been through Business Verification and App Review, so Instagram, Facebook and Threads publishing currently works only for accounts with a role on our app, the same limit described above. We'll update this page when that changes. The API reference documents the Instagram options Reelspan accepts. If you are publishing the same video to several networks, our guide to posting one video to every platform covers what to change for each.

Questions people ask

Can the Instagram API post Reels to a personal account?

No. Content publishing works only for Instagram professional accounts, meaning Business or Creator accounts.

How many posts can the Instagram API publish per day?

Meta's content publishing page gives 100 API-published posts per account in a rolling 24 hours, but its carousel section still says 50. Check the live figure with the content_publishing_limit endpoint and plan for 50 to be safe.

Can I schedule Instagram Reels through the API?

Not natively. The API publishes when you call media_publish, so scheduling has to happen in your own system.

Sources

  1. Instagram Platform overview, Meta for Developers. Checked 6 Nov 2026.
  2. Content publishing, Meta for Developers. Checked 6 Nov 2026.
  3. IG User media reference, Meta for Developers. Checked 6 Nov 2026.
  4. Business Login for Instagram, Meta for Developers. Checked 6 Nov 2026.
  5. Access levels, Meta for Developers. Checked 6 Nov 2026.
  6. App Review submission guide, Meta for Developers. Checked 6 Nov 2026.
Cover illustration: the title 'How to post one video to every social platform' on a dark card with Reelspan's crop-frame mark

Cross-posting

How to post one video to every social platform (and what changes on each)

Cross-posting one video to TikTok, YouTube, Instagram, Facebook, X, LinkedIn, Threads, Pinterest and Bluesky is mostly the same job nine times, except for the parts that aren't. A field guide to what changes per platform: shape, length, captions, privacy, scheduling and AI labels.

5 min read