Publish feed posts, carousels, Stories and Reels to Instagram with the Zernio API, with collaborators, user tags, catalog audio, paid partnership labels and location tags.
Authentication details
Connecting accounts guideOAuth 2.0
Connect endpoints
GET /v1/connect/instagram/select-accountList Pages with a linked Instagram accountPOST /v1/connect/instagram/select-accountSelect the Page whose Instagram account to connect
Permissions10 scopes
- Always requested
- Posting
- Analytics
- Comments
- Messaging
Pass scopes=posting,analytics to the connect endpoint to ask only for those areas. The first row comes with every connection.
Publish feed posts, carousels, Stories and Reels to Instagram with POST /v1/posts and platform: "instagram". The same account also serves analytics, DMs, comments and comment-to-DM automations.
Quick reference
| Property | Value |
|---|---|
| Character limit | 2,200 (caption) |
| Images per post | 1 (feed), 10 (carousel) |
| Videos per post | 1 |
| Image formats | JPEG, PNG |
| Image max size | 8 MB (auto-compressed) |
| Video formats | MP4, MOV |
| Video max size | 300 MB (Reels and carousel videos), 100 MB (Stories) |
| Video max duration | 15 minutes (Reels), 60 seconds (Story) |
| Post types | Feed, Carousel, Story, Reel |
| Scheduling | Yes |
| Inbox (DMs) | Yes |
| Inbox (comments) | Yes |
| Comment-to-DM automations | Yes |
| Story-reply automations | Yes |
| Story-mention and live-comment automations | Yes |
| Analytics | Yes |
Before you start
Instagram requires a Business or Creator account. Personal accounts cannot post through the API.
Every post needs media, so there are no text-only posts.
An account can publish 100 posts per rolling 24 hours, all content types combined. Read what is left of that window with Get Instagram publishing limit. Compare against the returned quotaTotal rather than hardcoding the cap.
The first 125 characters of a caption show before the "more" fold.
Connect
Call GET /v1/connect/instagram with profileId and, optionally, loginMethod (connecting accounts guide).
Publishing, analytics, comments and the inbox work the same with either login method. Facebook Login is required for ads scopes, catalog audio and the paid partnership label.
Login methods
Instagram Login (loginMethod=instagram_login, the default): the user authorizes their Instagram professional account directly, with no Facebook Page involved.
Ads permissions exist only on Facebook Login, so this method never requests them. To run ads against such an account, connect a Facebook account in the same profile and use its token (Meta Ads).
Facebook Login (loginMethod=facebook_login): the user authorizes a Facebook Page that has a linked Instagram professional account. Every API call for that account runs through the Page.
Use it when the customer manages Instagram through a Page and expects the Facebook consent screen.
Picking the Page is a second step after OAuth, in standard or headless mode (platforms requiring secondary selection).
The Facebook Login dialog also requests ads_management, ads_read, pages_manage_ads and leads_retrieval (the ads area), so the same account can drive Meta Ads. Call Connect ads with platform=instagram to create the ads account.
Pass scopes to ask for fewer areas.
In this section
Posts, Stories & Reels
Publish a feed post, a carousel, a Story or a Reel to Instagram, including Reels that use catalog audio.
Platform fields
Every platformSpecificData field for Instagram, with the paid partnership label and location tags.
Media requirements
Image and video requirements for Instagram posts, and the rules for media URLs.
Analytics
Which analytics metrics Instagram returns for posts and for Stories.
Inbox
Instagram direct messages, ice breakers, the persistent menu, comments and inbox webhooks.
Limits & errors
What Instagram's API does not expose and the common errors when publishing.
Related
- Connecting accounts: the OAuth flow for Instagram Login and Facebook Login.
- Create post: every field of the request.
- Media uploads: upload images and videos instead of hosting them.
- Messages and Comments: the inbox API.
- Account settings: ice breakers and the persistent menu.
- ManyChat-style automations: ref links, comment to DM, story mentions and handover.
- GET
- GET
- GET
- GET
- GET
- POST
- GET
- DELETE
- GET
- GET
- GET
- POST
Publishing
24· Unified API, shared with other platforms- POST
- POST
- POST
- POST
- GET
- POST
- GET
- PUT
- DELETE
- POST
- POST
- POST
Analytics
8· Unified API, shared with other platforms- GET
- GET
- GET
- GET
- GET
- GET
- GET
- GET
Direct messages
24· Unified API, shared with other platforms- GET
- POST
- GET
- GET
- PUT
- DELETE
- GET
- POST
- PATCH
- DELETE
- POST
- POST
Comments
15· Unified API, shared with other platforms- GET
- GET
- POST
- DELETE
- PATCH
- POST
- POST
- DELETE
- POST
- DELETE
- POST
- DELETE