Kratly
Platform changes 2026

Instagram API publishing limit: what you can automate in 2026

Meta's docs give the Instagram API publishing limit as both 50 and 100 posts a day. How to check yours, the three-step flow, and what you can't automate.

Priyansh KumarUpdated November 1, 202610 min read
Three boxes in a row labeled create container, check status and publish, with a daily counter beside them

Short answer

The Instagram API publishing limit is a cap on posts an account can publish by API in 24 hours. Meta's pages give two numbers, 100 and 50. Don't hard-code either. Call the content_publishing_limit endpoint to read your account's real cap and usage. Carousels count as one post.

Composite example: a store's developer builds a queue that posts 60 product Reels on launch day. The docs she read said 100 a day. Partway through, publish calls start failing. Nobody checked the account's own limit first.

All facts below are as of November 2026, checked on Meta's Instagram Platform docs.

What is the Instagram API publishing limit?#

The Instagram API publishing limit is the most posts one Instagram professional account can publish through the API in a moving 24-hour window.

Meta's own pages disagree on the number, as of November 2026:

Meta pageWhat it says
Content Publishing guide, limits section"100 API-published posts within a 24-hour moving period"
Same guide, carousel section"50 published posts within a 24-hour period"
content_publishing_limit referenceExample response shows quota_total of 50 and quota_duration of 86,400 seconds

I wouldn't bet a launch on either. The endpoint answers for your account, today.

How to check your account's limit#

Send a GET request to /<IG_ID>/content_publishing_limit with fields=quota_usage,config. quota_usage is posts published in the window. config holds quota_total (the cap) and quota_duration (seconds). Field names are from the content_publishing_limit reference.

Three rules from the Content Publishing guide shape how you count:

  • The limit is enforced on the media_publish call, not on container creation.
  • A carousel counts as a single post.
  • Meta says to enforce the limit in your own app, especially if it schedules posts.

Who can publish through the API?#

Per Meta's Instagram Platform overview, as of November 2026:

  • Account type. "Your app users must have an Instagram professional account." That means a business or creator account. Personal accounts aren't listed.
  • Login setup. There are three. Instagram Login serves accounts with no linked Facebook Page. Facebook Login serves accounts linked to a Page. Unified Login "is recommended for new integrations."
  • Access level. Standard Access is the default. It works if you only serve accounts you own or manage. Serving other people's accounts needs Advanced Access.
  • App Review. "Your app must complete Meta App Review to be granted Advanced Access." Business Verification is also required.

Permissions. The publishing guide lists instagram_business_basic and instagram_business_content_publish for Instagram Login. For Facebook Login it lists instagram_basic, instagram_content_publish and pages_read_engagement. Users with a Business Manager role on the Page may also need ads_management or ads_read (Content Publishing guide).

One trap. If the linked Page requires Page Publishing Authorization, publishing waits until it's done.

What you can publish, and what you can't#

Specs from the IG User Media reference, as of November 2026:

TypeWhat the docs allowMain limits
ImageJPEG only, public URL8 MB max; aspect ratio 4:5 to 1.91:1
Carouselmedia_type=CAROUSELUp to 10 images, videos or a mix; no Reels inside
Reelmedia_type=REELS, MOV or MP43 seconds to 15 minutes; 300 MB max
Storymedia_type=STORIESDisappears after 24 hours; no stickers

Reels get extras: share_to_feed and a cover via cover_url or thumb_offset. Feed images, Reels and carousels allow up to 3 collaborators; Stories don't. Trial Reels are supported through trial_params (Content Publishing guide).

What you can't automate#

These are listed as unsupported on Meta's pages, as of November 2026:

  • Shopping tags. "Shopping tags are not supported."
  • Branded content tags. Not supported.
  • Filters. Not supported.
  • Story stickers. Link, poll and location stickers can't be published. You can still mention users.
  • Alt text on Reels and Stories. The alt_text field works on image posts only.
  • Music on everything. Music tagging is "only available for original audio."

If a launch post needs a shopping tag or link sticker, a person posts it in the app.

Two-column graphic: left lists what the API can post, right lists shopping tags, filters and stickers that need the app
Images, carousels, Reels and Stories can go through the API. Tags, filters and stickers still need a person.

How does the Instagram content publishing API work?#

The Instagram content publishing API uses three steps for every post, per Meta's Content Publishing guide.

  1. Create a container. POST to /<IG_ID>/media with an image_url or video_url. Meta fetches the file from that URL, so it must sit on a public server. For a carousel, create each item first. Then create a parent container with media_type=CAROUSEL and a children list.
  2. Check the status. GET /<IG_CONTAINER_ID>?fields=status_code. Meta suggests checking once a minute for no more than 5 minutes.
  3. Publish. POST to /<IG_ID>/media_publish with creation_id set to the container ID. You get back an Instagram media ID.

With Facebook Login, large videos can use a resumable upload instead of a public URL.

Container status codes#

The IG Container reference lists five values for status_code:

status_codeMeaningWhat I'd do
IN_PROGRESSStill processingWait a minute, check again
FINISHEDReady to publishCall media_publish
PUBLISHEDAlready liveStop; don't publish twice
ERRORFailedRead the status field for the error subcode
EXPIREDNot published within 24 hoursCreate a new container

On ERROR, log the subcode from status with the post ID.

A published Reel returns media_type of VIDEO when you read it back. Use media_product_type to tell Reels apart (Content Publishing guide).

Flow diagram: create container, poll status every minute up to five minutes, publish when finished, recreate when expired
Poll the container, publish on FINISHED, and start over on EXPIRED.

Rate limits are a different thing#

The publishing limit counts posts. Rate limits count API calls.

Meta's Graph API rate limits page sets Instagram calls per app and user pair as of November 2026:

  • Formula: "Calls within 24 hours = 4800 * Number of Impressions." Impressions here means how often the account's content appeared on screens in the last 24 hours.
  • Window: a rolling 24 hours.
  • Signal: throttled responses carry an X-Business-Use-Case-Usage header. It includes estimated_time_to_regain_access in minutes.
  • Error: the Instagram rate limit error is code 80002.

Small accounts get fewer calls, so poll once a minute.

Insights calls share that limit. For post reporting, see Facebook post insights metrics in 2026: what replaced impressions. For paid Meta, see Facebook ads for SaaS: measure the sign-ups that actually pay and Meta Conversions API: set it up and check it sends real purchases.

How to schedule Instagram Reels with the API#

There's no scheduling endpoint. The Content Publishing guide has no "publish at" field. It only mentions scheduling when it tells apps to enforce the limit for future posts.

So to schedule Instagram Reels with the API, you build the queue yourself:

  1. Store the post. Save the video URL, caption and target time in your own database.
  2. Create the container close to post time. Containers expire after 24 hours. Creating one a week early won't work.
  3. Leave processing time. Create the Reel container 10 to 15 minutes before the slot. That's my rule of thumb, not Meta's. Long videos may need more.
  4. Check the limit, then publish. Read content_publishing_limit first. If the account is near its cap, hold the post.
  5. Log the result. Save the media ID, or the error subcode.

No code? Use Meta's own tools. Meta has a help page on scheduling posts and stories in the Business Suite mobile app (Meta Business Help). Meta also says you can schedule "reels, photos and carousel posts from the Instagram app" (Meta Help Center). Both are manual. A person picks the time for each post.

For one brand posting a few times a week, manual is fine. I'd build an API queue only past about 20 posts a week, or for several accounts. That's my judgment, not Meta's.

Where do the posts come from? If you're short on footage, see Turn your product pages into Shorts and Reels without filming. For long-form video, see YouTube marketing: B2B SaaS videos for sign-ups and AI answers.

A checklist before you build#

Where Kratly fits#

Kratly's Instagram publishing follows the flow in this article: single images, carousels and Reels, the container status check, and the publishing limit read before each post. It's built and switches on once Meta approves access, and every post waits for a person's approval. Live today: Kratly connects website tracking and Stripe or Shopify revenue, so you can see whether Instagram traffic pays.

Questions, answered

How many posts can I publish per day with the Instagram API?

Meta's docs give two numbers as of November 2026. The Content Publishing guide says 100 posts in a moving 24-hour window in one place and 50 in another. The reference page example shows 50. Call the content_publishing_limit endpoint and read quota_total for your account. Carousels count as one post, and the limit applies when you call media_publish.

Can I schedule Instagram Reels through the API?

Not directly. There is no "publish at" field in Meta's Content Publishing guide. You store the Reel and its time in your own system. Then you create the container shortly before the slot and publish it when the status is FINISHED. Containers expire after 24 hours, so you can't create them days ahead.

Does the Instagram API work with personal accounts?

No. Meta's Instagram Platform overview says app users "must have an Instagram professional account," which can be a business or creator account. Switching a personal account to professional is done in the Instagram app. If your app serves accounts you don't own or manage, you also need Advanced Access, App Review and Business Verification.

What does the EXPIRED container status mean?

It means the container was created but not published within 24 hours. You can't publish it anymore. Create a new container with the same media URL and caption, check that its status is FINISHED, then call media_publish. To avoid this, create containers close to the time you plan to post.

Written by

Priyansh Kumar

Priyansh Kumar has spent more than a decade in growth, scaling brands from 1 to 10 and from 10 to 100. He now builds Kratly, an autonomous growth team that ties every campaign, page and email to the revenue it brings.

Kratly on LinkedIn

Sources

Was this article useful?

Next step

See which Instagram traffic turns into revenue.

Book a live demo of Kratly. We'll show revenue by campaign, page and email in a demo workspace you can explore yourself.