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
Send13{
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 postOn OmniSocials
Sign inAPI keyPOSTFirst postAll 5 permissions already approvedEvery 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/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
Coming soon




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.
| Name | Key | Last used | |
|---|---|---|---|
Claude | omsk_live_••••7c2e | Oct 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 integrationAnswer 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


09:12
Hi! Does the API work with Reels too?
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
Post
The Social Inbox has an API now. Commen…
The 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
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
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 | |
|---|---|---|---|---|---|---|---|---|---|
![]() The Social Inbox has an API now. Comment GUIDE and we DM you the setup guide. Oct 21, 2026 | 6.4K | 4.2K | 284 | 347 | 52 | 118 | 12.5% | ||
![]() Best times to post, worked out from your own posts. Swipe to see how. Oct 19, 2026 | 1.2K | 902 | 61 | 7 | 9 | 22 | 8.4% | ||
![]() New: 1GB video uploads. Longer, sharper clips. Oct 14, 2026Reel | 3.9K | 2.5K | 171 | 14 | 31 | 46 | 6.8% | ||
![]() New: Alt text on every image. Describe your media for screen readers. Oct 9, 2026 | 1.3K | 931 | 44 | 6 | 5 | 12 | 5.2% | ||
![]() New: PDF uploads. Turn a PDF into a carousel. Oct 7, 2026 | 2.7K | 1.8K | 118 | 9 | 17 | 24 | 6.1% | ||
![]() New: Mastodon threads. Publish a full thread in one go. Oct 2, 2026 | 942 | 688 | 37 | 4 | 3 | 9 | 5.6% | ||
![]() New in OmniSocials: Notable Days. Sep 29, 2026 | 2.2K | 1.5K | 96 | 8 | 12 | 19 | 6.1% | ||
![]() Sidebar update: a calmer sidebar. Sep 24, 2026 | 1K | 744 | 41 | 5 | 4 | 10 | 5.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.
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 › APIStep 1
Connect Instagram
Sign in with Instagram in OmniSocials, once. Then list it from your code.
GET /v1/accountsStep 2
Send your first Reel
Post now with create-and-publish, or add schedule_at to plan it.
POST /v1/posts/createStep 3
Frequently
Asked Questions
Robert LigthartFounder of OmniSocials
Ship your Instagram
integration this week.
From $10 per seat a month, API included. 14-day free trial.
https://docs.omnisocials.com









