Instagram API for developers

Instagram’s API,
without the Meta work

Publish posts, carousels, Stories and Reels. Answer comments and DMs, turn comments into DMs and read insights. One API key, on OmniSocials’ approved Meta app.
Webhooksyour-app.com/hooks
post.scheduledpost 1024just now200
post.publishedpost 10192 h ago200
post.approvedpost 10193 h ago200
POST/v1/posts/createapplication/json
01{
02 "type": "reel",
03 "content": "Post from your own code: SDKs in 8 languages.",
04 "accounts": ["instagram"],
05 "media_urls": ["https://cdn.example.com/sdks.mp4"],
06 "schedule_at": "2026-10-22T18:00:00Z",
07 "instagram": {
08 "share_to_feed": true,
09 "thumb_offset": 3000,
10 "first_comment": "#instagramapi"
11 }
12}
Sending201 Created412 ms
Send
13{
14 "data": {
15 "id": "1024",
16 "status": "scheduled",
17 "app_url": "https://app.omnisocials.com/create-post/1024"
18 }
19}
A request creates an Instagram Reel for Thu at 18:00; it appears in the OmniSocials calendar and the webhook post.scheduled fires.
Your coding agent runs the same calls through the CLI

Skip the Meta app review

Instagram's own API needs a Meta app, five approved permissions and a publish flow. OmniSocials already did that work.
On your own
instagram_business_basicinstagram_business_content_publishinstagram_business_manage_comments
instagram_business_manage_messagesinstagram_business_manage_insights
Meta app5 reviewsVerificationHostingContainersPollingTokensSchedulerFirst post
On OmniSocials
Sign inAPI keyPOSTFirst postAll 5 permissions already approved

Every format, one request

Posts, carousels of up to 10, Stories and Reels share one request shape. Set the type, add media URLs and a time. OmniSocials checks the media against Instagram’s rules before it uploads.
Post from your own code: SDKs in 8 languages.
Thumbnail
Move the slider to select which frame from the video to use as thumbnail
omnisocials_
Post from your own code: SDKs in 8 languages.
omnisocials_ · Original audio
POST/v1/posts/create
01{
02 "type": "reel",
03 "content": "Post from your own code: SDKs in 8 languages.",
04 "accounts": ["instagram"],
05 "media_urls": ["https://cdn.example.com/sdks.mp4"],
06 "schedule_at": "2026-10-22T18:00:00Z",
07 "instagram": {
08 "share_to_feed": true,
09 "thumb_offset": 3000,
10 "first_comment": "#instagramapi"
11 }
12}
201 Createdstatus: "scheduled"
Posts and carousels
One image, or up to 10 photos and videos in one carousel, with alt text per item and a first comment.
media_urlsinstagram.first_comment
Stories
Each media item goes out as its own Story, in order. Up to 10 slides and 60 seconds per video.
type: "story"
Reels
Pick the cover frame, add licensed audio, share it to the grid or post it as a trial Reel.
type: "reel"thumb_offsetshare_to_feed

Connect once, post from code

Sign in with Instagram once inside OmniSocials and create an API key. From then on, your code posts, replies and reports for that account.
OmniSocials
Name, icon, social channels and who can open this workspace.
GeneralMembersClientsApproval workflowsAPI
Workspace iconJPG or PNG, up to 2 MB.
Workspace nameOmniSocials
Social channels
The accounts this workspace posts to.
Connected
@omnisocials_
Threads
OmniSocials
LinkedIn Page
@omnisocials_
X
Add a channel
FacebookPosts, Stories & Reels
InstagramPosts, Stories & Reels
LinkedIn ProfilePosts & Carousels
YouTubeShorts
TikTokVideos & Photo posts
PinterestPins & Carousels
BlueskyPosts & Threads
MastodonAny server
Google BusinessUpdates, Events & Offers
TelegramChannels and groups
Coming soonDiscordTumblrWordPressWhopSlack
Danger zone
Delete workspace
Deletes this workspace with its posts, media and settings for good. This cannot be undone.
OmniSocials
Name, icon, social channels and who can open this workspace.
GeneralMembersClientsApproval workflowsAPI
API keys
Keys that can only reach this workspace.
NameKeyLast used
Claude
omsk_live_••••7c2eOct 20, 2026
GET/v1/accounts?platform=instagram
200 OK88 ms
01{
02 "data": [
03 {
04 "id": "4127_instagram",
05 "platform": "instagram",
06 "username": "omnisocials_",
07 "display_name": "OmniSocials",
08 "content_types": ["post", "story", "reel"],
09 "status": "active"
10 }
11 ],
12 "workspace_name": "OmniSocials"
13}
Authorization: Bearer $OMNISOCIALS_API_KEY
Instagram Login
Business and Creator accounts sign in with Instagram. Publishing needs no Facebook Page.
A key per workspace
A key only reaches its own workspace. Inbox and automation access are switched on per key.
What each account can post
The accounts call lists every connected account with the formats it takes.
GET /v1/accountscontent_types
Platform integrationComing soon

Your customers' Instagram, inside your product

Soon your customers connect their own Instagram on one page with your logo, and you post, reply and report for each of them.
See platform integration

Answer comments and DMs

List Instagram comments, DMs and mentions, then reply, hide or delete from your own code. The API checks Meta’s 24-hour DM window before it sends.
Social Inbox
AllUnread4CommentsDMs
InstagramDaan2mWe want to post them from our own CMS.InstagramThe Social Inbox has an API now. Comment GUIDE and we DM you the setup guide.14mHana and 4 others: GUIDEInstagramMentioned you in a post1hRavi: @omnisocials_ this saved us a week of Meta app review1 newInstagramSara3hIs the inbox API on every plan?InstagramBest times to post, worked out from your own posts. Swipe to see how.5hLeo: Does it do carousels with video?1 new
GUIDE, SETUP → DM is running · 298 DMs sent
Daan@daan.builds · Instagram DMView profile
Daandaan.builds · Instagram
09:12
Hi! Does the API work with Reels too?
Daan
We want to post them from our own CMS.
Type a message...
GET/v1/inbox/conversations?platform=instagram&type=dm
200 OK104 ms
01{
02 "data": [
03 {
04 "conversation_id": "8812",
05 "platform": "instagram",
06 "type": "dm",
07 "participant": {
08 "username": "daan.builds"
09 },
10 "unread_count": 2,
11 "last_message": {
12 "direction": "incoming",
13 "text": "We want to post them from our own CMS."
14 }
15 }
16 ]
17}
Authorization: Bearer $OMNISOCIALS_API_KEY
Comments
Reply under the comment, hide it or delete it. Each comment comes with the post it sits on.
/inbox/messages/:id/hide
DMs
Answer within Meta’s 24-hour window. Outside it the API says so with outside_messaging_window, before anything is sent.
/conversations/:id/reply
Mentions
Posts and comments that tag your account show up in the same list, ready for a reply.
type=mention

“The MCP is the real game changer for me. It makes the whole workflow feel much faster and less messy.”

Ansub Khan
Founder of Supafast

Turn comments into DMs

Put an automation on a post. Everyone who comments a keyword gets your DM, once, with an optional public reply under the comment. Instagram’s limits are built in.
Automations
GUIDE, SETUP→DM
OnOff
Off. Nobody gets a DM until you turn it on.
All0DM sent0Skipped0
@hana.studio
Commented “GUIDE”·Replied “Sent you a DM!”
Today, 14:12
DM sent
@leo.ships
Commented “guide please”·Replied “Check your inbox, the guide is there.”
Today, 13:47
DM sent
@sara.makes
Commented “GUIDE”·Already got this DM
Today, 13:05
Skipped
@ravi.codes
Commented “Is there a setup guide for the API?”·Replied “Sent you a DM!”
Today, 11:38
DM sent
@priya.designs
Commented “guide”·Replied “Check your inbox, the guide is there.”
Today, 10:21
DM sent
@daan.builds
Commented “GUIDE”·Replied “Sent you a DM!”
Today, 09:02
DM sent
n
@noor.creates
Commented “setup”·Replied “Check your inbox, the guide is there.”
Yesterday, 22:15
DM sent
@tomas.dev
Commented “GUIDE”·Replied “Sent you a DM!”
Yesterday, 21:40
DM sent
Waiting for the first commentEvery comment that matches shows up here.
Setup
Account@omnisocials_
Listens toComments
PostThe Social Inbox has an API now. Commen…
KeywordsGUIDE, SETUP
MatchWhole word
MessageHere is the guide: docs.omnisocials.com/automations
Public reply“Sent you a DM!”+1
StopsAfter 500 DMs
Started19 Oct 2026
Progress0 of 500 sent
Edit setup
When someone answers the DM, the chat shows up in the Social Inbox.
POST/v1/automationsapplication/json
01{
02 "name": "Setup guide",
03 "post_id": "1019",
04 "trigger": { "keywords": ["guide", "setup"] },
05 "actions": {
06 "dm": {
07 "text": "Here is the guide: docs.omnisocials.com/automations"
08 },
09 "public_reply": {
10 "enabled": true,
11 "variations": [
12 "Sent you a DM!",
13 "Check your inbox, the guide is there."
14 ]
15 }
16 },
17 "limits": { "max_sends": 500 }
18}
201 Created236 ms
19{ "data": { "id": "57", "status": "active" } }
Keyword triggers
Match a word in a comment, a DM or a Story reply, on one post or on the next post you publish.
trigger.keywordstrigger.kinds
A public reply too
Post one of your reply variations under the comment, so the thread shows that a DM went out.
actions.public_reply
Instagram’s rules built in
One private reply per comment, within 7 days. At most 180 DMs an hour per account, and each person gets the DM once.

Read what Instagram reports

Views, reach, likes, comments, saves and shares per post, and the account’s numbers per day. The API returns the same numbers the app charts.
AnalyticsReports
AllInstagramFacebookTikTokThreadsBlueskyLinkedIn PageX
AddEdit
Last 30 days
Impressions
19.7K29.5%
Reach
13.3K22.5%
Engagements
1,64535.7%
Engagement Rate
8.4%0.4pt
Posts8Accounts7
Post
Channels
Impressions
Reach
Likes
Comments
Shares
Saves
Eng. rate
Post thumbnail
The Social Inbox has an API now. Comment GUIDE and we DM you the setup guide.
Oct 21, 2026
instagram
6.4K4.2K2843475211812.5%
Post thumbnail
Best times to post, worked out from your own posts. Swipe to see how.
Oct 19, 2026
instagram
1.2K9026179228.4%
Post thumbnail
New: 1GB video uploads. Longer, sharper clips.
Oct 14, 2026Reel
instagram
3.9K2.5K1711431466.8%
Post thumbnail
New: Alt text on every image. Describe your media for screen readers.
Oct 9, 2026
instagram
1.3K9314465125.2%
Post thumbnail
New: PDF uploads. Turn a PDF into a carousel.
Oct 7, 2026
instagram
2.7K1.8K118917246.1%
Post thumbnail
New: Mastodon threads. Publish a full thread in one go.
Oct 2, 2026
instagram
942688374395.6%
Post thumbnail
New in OmniSocials: Notable Days.
Sep 29, 2026
instagram
2.2K1.5K96812196.1%
Post thumbnail
Sidebar update: a calmer sidebar.
Sep 24, 2026
instagram
1K7444154105.8%
GET/v1/analytics/posts/1019
Authorization: Bearer $OMNISOCIALS_API_KEY
200 OK143 ms
01{
02 "data": {
03 "post_id": "1019",
04 "platforms": {
05 "instagram": {
06 "metrics": {
07 "views": 6412, "reach": 4236,
08 "likes": 284, "comments": 347,
09 "saves": 118, "shares": 52,
10 "follows": 31
11 }
12 }
13 }
14 }
15}
Per post and per Reel
Views, reach, likes, comments, saves, shares, profile visits and follows, as Instagram reports them.
/analytics/posts/:id
Per account and workspace
A daily snapshot per connected account, and a workspace overview for 7, 30 or 90 days or your own dates.
/analytics/accounts/analytics/overview
Best times to post
Days and hours worked out from your own Instagram history, once 15 of your posts are analyzed.
/analytics/best-times
Under the hood

Built for production

Signed webhooks, automatic retries, SDKs in 8 languages and a key per workspace. Create a key and send your first request in minutes.
Webhooks
Signed events for every post
Retries
Failed posts retry on their own
SDKs
One request shape in 8 languages
API keys
One key per workspace
Agents
Your coding agent posts too

Instagram’s rules, in one place

OmniSocials checks every post against them before it reaches Meta, so a bad file fails in your request, not at publish time.
Caption2,200 characters, 5 hashtags
First comment2,200 characters, not on Stories
CarouselUp to 10 photos and videos
StoryUp to 10 slides, 60 seconds per video
VideoMP4 or MOV, up to 15 minutes and 300 MB
ImageJPEG, PNG or WebP, up to 8 MB
DM reply1,000 characters, within 24 hours
Replies1,000 a day per workspace
Rate limit100 requests a minute per API key
AccountsBusiness or Creator, Instagram Login

Your first Reel in three steps

About five minutes from sign-up to a scheduled Reel. Then hand the key to your coding agent.
Create an API key
Start your trial, open Settings, API and create a key. It is shown once.
Settings › API
Step 1
Connect Instagram
Sign in with Instagram in OmniSocials, once. Then list it from your code.
GET /v1/accounts
Step 2
Send your first Reel
Post now with create-and-publish, or add schedule_at to plan it.
POST /v1/posts/create
Step 3

Frequently
Asked Questions

Robert Ligthart
Robert LigthartFounder of OmniSocials
Ask me a question

Robert Ligthart
Still have a question?Ask Robert, the founder
Ask

Ship your Instagram
integration this week.

From $10 per seat a month, API included. 14-day free trial.
https://docs.omnisocials.com