Instagram's Graph API is stricter than the app. Things you can post from your phone, a PNG, a tall 3:4 picture, a 20-minute video, are refused by the API, which is what every scheduler uses. These are the rules in October 2026, and the error each one produces when a tool does not check first.
Caption
| Limit | |
|---|---|
| Length | 2,200 characters |
| Hashtags | 30; the 31st makes the API refuse the post |
| @mentions | 20 |
| Line breaks | Kept |
| Links | Not clickable in captions |
Instagram requires media on every post: there is no text-only post through the API.
Feed pictures
| Rule | |
|---|---|
| Format | JPEG only. PNG, WebP, HEIC and GIF are refused with "image format not supported" unless the tool converts them first |
| Size | 8 MB, after any conversion |
| Ratio | 4:5 (0.8) to 1.91:1; outside that, "aspect ratio not supported" |
| Width | 320 to 1,440 pixels; Instagram resizes outside this |
| Carousel | 2 to 10 items, pictures and video mixed; every item follows its own rule |
| Alt text | Per item, through the API |
The ratio rule is the one that catches people, because the app lets you crop on the fly and the API does not: a portrait photo straight off a phone is 3:4, which is 0.75, which is refused. Crop to 4:5 before upload.
Reels
Every video published to the feed through the API is a Reel.
| Rule | |
|---|---|
| Length | 3 seconds to 15 minutes |
| Size | 300 MB |
| Format | MP4 or MOV; H.264, AAC |
| Frame rate | 23 to 60 fps |
| Ratio | 9:16 recommended; 0.01:1 to 10:1 accepted |
| Resolution | 1080×1920 recommended |
| Cover | A frame or an uploaded picture |
| Options | Share to feed or Reels tab only; trial reel; collaborators; audio name |
Stories
| Rule | |
|---|---|
| Picture | JPEG, 8 MB |
| Video | 3 to 60 seconds, 100 MB |
| Items | One per story; a tool that takes several silently posts the first |
| Figures | Story-specific: impressions, reach, replies, taps forward and back, exits |
Publishing takes two steps
The API creates a container, Instagram processes the media, and only then can the container be published. Video processing takes from seconds to minutes; a scheduler has to wait and poll, and a tool that publishes before the container is ready reports success for a post that never appears. Instagram also limits an account to 25 API publishes in 24 hours; the 26th is refused.
Accounts
The API publishes to Instagram Business and Creator accounts, connected either through a Facebook Page or directly with Instagram login. Personal accounts cannot be posted to by any tool.
What Preflight checks before upload
Caption length, 30 hashtags, 20 mentions, the 4:5 to 1.91:1 ratio, Reel length and frame rate, story length and size, the 10-item carousel, and that a story has one file. A picture that is not a JPEG, or is over 8 MB, is converted once: turned upright, fitted to 1,440 pixels, transparency put on white, and the JPEG handed to Instagram while the original stays in your library. Preflight waits for the container, retries on Instagram's transient errors with the delay Instagram asks for, and holds back a post that would be the 26th in 24 hours.
Rules from the Instagram Graph API documentation and Preflight's own publishing, checked on 5 October 2026. The complete table for every network is on the limits page.
Questions people ask
- What is the Instagram caption character limit?
- 2,200 characters, with at most 30 hashtags and 20 @mentions. The API refuses a post over any of the three.
- Can I post a PNG to Instagram with a scheduler?
- Not as a PNG: the Graph API accepts JPEG only. Convert it first, or use a tool that converts it before upload; Preflight does, and keeps the original in the library.
- How long can an Instagram Reel be through the API?
- 3 seconds to 15 minutes, up to 300 MB, 23 to 60 fps, MP4 or MOV.
- Why does Instagram refuse a portrait photo?
- A 3:4 photo is 0.75 and the API's narrowest ratio is 4:5, which is 0.8. Crop it to 4:5.