# Instagram API Publishing Limits and Requirements (2026)

Source: https://blog.lots.social/instagram-api-publishing-limits-and-requirements
Published: 2026-10-09T03:30:25.101975+00:00

Instagram lets an app publish single images, videos, reels and carousels to an Instagram professional account through its Content Publishing API, up to 100 API-published posts per account in a 24-hour moving period, with a carousel counting as one post. Images must be JPEG, the media must sit at a public URL when Instagram fetches it, and a carousel holds up to 10 items. Personal accounts aren't covered. Meta's own page also says 50 posts a day in one section, so check an account's real usage with its `content_publishing_limit` endpoint.

If you post to Instagram through an AI agent, these are the rules that sit under every post. This page collects them from Meta's documentation, which I opened on 8 October 2026. The page says it was updated on 30 June 2026, and its examples use Graph API version 26.0. Meta changes this guide, so check the link at the end for the latest.

## Instagram publishing limits at a glance

| Rule | What Meta's page says |
|---|---|
| Accounts | Instagram professional accounts |
| Posting rate limit | 100 API-published posts in a 24-hour moving period; carousels count as a single post |
| Carousel size | Up to 10 images, videos or a mix of the two |
| Image format | JPEG only; extended JPEG formats such as MPO and JPS aren't supported |
| Media location | Public server: Instagram fetches the file with cURL when you publish |
| Container lifetime | A media container that isn't published within 24 hours expires |
| Not supported | Shopping tags and filters |
| Disclosure | `is_ai_generated` flag for AI content; partnership label with up to 2 sponsors |

## The number to plan around: 100 posts, and one page that says 50

Meta's Content Publishing guide has a "Rate Limit" section that says Instagram accounts are limited to 100 API-published posts within a 24-hour moving period, enforced on the `media_publish` endpoint, with carousels counting as one post. Further down, in the carousel section, the same page says accounts are limited to 50 published posts within a 24-hour period.

The two numbers disagree, and the page doesn't explain why. The practical answer is to ask the account itself. The `GET /<IG_ID>/content_publishing_limit` endpoint returns the account's current publishing limit usage, and Meta recommends apps that let people schedule posts enforce the limit themselves. If an agent plans a big burst of posts for one account, spread them out and read the usage first.

## Who can publish: professional accounts, through one of two logins

The guide covers Instagram professional accounts. You reach them through one of two routes, and the requirements differ:

| | Instagram API with Instagram Login | Instagram API with Facebook Login |
|---|---|---|
| Login type | Business Login for Instagram | Facebook Login for Business |
| Access token | Instagram user access token | Facebook Page access token |
| API host | `graph.instagram.com` | `graph.facebook.com` |
| Permissions | `instagram_business_basic`, `instagram_business_content_publish` | `instagram_basic`, `instagram_content_publish`, `pages_read_engagement` |
| Resumable video uploads | Not available | Available (apps using Facebook Login for Business) |
| Partnership ads label | Not available | Available |

If the person was given a role on the connected Facebook Page through Business Manager, the app also needs `ads_management` and `ads_read`.

**Page Publishing Authorization.** An Instagram professional account connected to a Page that requires Page Publishing Authorization can't be published to until that authorization is complete. Meta says an app can't tell in advance whether a Page needs it, and recommends advising people to complete it up front. If an agent's Instagram post fails on an account that used to work, this is one of the first things to check.

## What a post looks like through the API

Publishing is a short sequence of calls:

1. **Create a container.** `POST /<IG_ID>/media` with an `image_url` or `video_url`. Use `media_type` set to `VIDEO`, `REELS` or `STORIES` for video. For a carousel, create a container for each item with `is_carousel_item=true`, then a carousel container with `media_type=CAROUSEL` and up to 10 `children`.
2. **Wait for video.** Query `GET /<IG_CONTAINER_ID>?fields=status_code`. The values are `IN_PROGRESS`, `FINISHED`, `PUBLISHED`, `ERROR` and `EXPIRED`. Meta recommends checking once a minute, for no more than 5 minutes.
3. **Publish.** `POST /<IG_ID>/media_publish` with the `creation_id`.
4. **Check usage.** `GET /<IG_ID>/content_publishing_limit` when you're near the limit.

Carousel items are cropped to match the first image, with 1:1 as the default. For a large video, an app can create a resumable upload session, if it uses Facebook Login for Business.

## Reels, trial reels, stories and a page that contradicts itself

The guide documents `REELS`, trial reels and stories. A trial reel is shared only with non-followers, and the app sets `trial_params` with a `graduation_strategy` of `MANUAL` or `SS_PERFORMANCE` (graduate automatically if it performs well). The same page's introduction says reels and stories aren't supported, while the sections below it explain how to publish them. Treat the detailed sections as the current behavior and confirm against Meta's reference for your account type before you rely on a format.

## Disclosure, alt text and partnership labels

- **AI content.** Set `is_ai_generated` to `true` when you create a media container to self-disclose AI use. For carousels, set it on the carousel container only. Setting it on a child item causes an error. It's available on both login types.
- **Alt text.** Meta added an `alt_text` field for image posts on 24 March 2025.
- **Partnership label.** Add `branded_content_sponsor_ids` (up to 2 sponsors) and/or `is_paid_partnership`. It's available with Facebook Login only, the sponsors must be professional accounts, and it isn't supported on close-friends-only posts or remixed media.

## What this means when your agent posts through LotsSocial

You don't have to call any of these endpoints. LotsSocial connects your Instagram account, and your agent schedules and publishes through the LotsSocial MCP server, with each platform's requirements handled for you. The limits above still apply to the account underneath, so a plan with a long list of Instagram posts in one day runs into the same ceiling, and a failed post can come down to the account, the media format or Page authorization. LotsSocial costs $2 per connected account a month, or plans from $20 for 12 accounts, and new accounts get 5,000 free credits, valid 90 days, with no card. [See pricing](https://lots.social/pricing).

Give your agent this and let it set itself up:

> Read https://lots.social/skill.md and help me connect LotsSocial for you.

## Common questions

### How many posts can I publish to Instagram through the API?

Meta's Content Publishing guide says Instagram accounts are limited to 100 API-published posts within a 24-hour moving period, and carousels count as one post. The same page also says 50 in its carousel section, so check the account's usage with the `content_publishing_limit` endpoint.

### Can I publish to a personal Instagram account through the API?

No. The Content Publishing guide covers Instagram professional accounts.

### What image format does the Instagram API accept?

JPEG only. Meta's page says extended JPEG formats such as MPO and JPS aren't supported.

### How many images can a carousel have through the API?

Up to 10 images, videos or a mix of the two. A carousel counts as one post against the limit, and its items are cropped to the first image, with 1:1 as the default.

### Does the Instagram API support scheduling?

Meta's guide describes publishing with the `media_publish` endpoint, and it recommends that apps which let people schedule posts for later enforce the posting limit themselves. Scheduling is something the publishing app handles.

### Do I need a Facebook Page to publish to Instagram?

It depends on the login route. Instagram API with Instagram Login uses an Instagram user access token and Business Login for Instagram. Instagram API with Facebook Login uses a Facebook Page access token, and an Instagram account whose Page requires Page Publishing Authorization can't publish until it's completed.

### How long does a media container last?

If a container isn't published within 24 hours, its status becomes `EXPIRED`.

*Details checked on 8 October 2026 from Meta's [Instagram Platform Content Publishing guide](https://developers.facebook.com/documentation/instagram-platform/content-publishing) (updated 30 June 2026). LotsSocial details from [lots.social/pricing](https://lots.social/pricing) and [lots.social/skill.md](https://lots.social/skill.md). Meta changes its API and limits; check its page for the latest.*
