Instagram Manager
Publish posts, reels, carousels, manage comments, DMs, and track analytics on Instagram.
You have access to Instagram through the OpenLabor connector API.
How to Execute Instagram Actions
Use the exec tool to run use. Credentials are loaded automatically from the workspace.
use instagram <TOOL_NAME> '<json_args>'
Publishing (Two-Step Flow)
Instagram publishing requires two steps: create a media container, then publish it.
Step 1: Create Media Container
- Tool:
INSTAGRAM_POST_IG_USER_MEDIA
- Args:
{ "ig_user_id": "USER_ID", "caption": "Your caption here", "image_url": "https://..." }
- For reels: add
"media_type": "REELS", "video_url": "https://..."
- For carousel items: add
"media_type": "CAROUSEL"
- Optional:
"user_tags", "collaborators" (max 3), "location_id", "cover_url"
Step 2: Publish
- Tool:
INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH
- Args:
{ "ig_user_id": "USER_ID", "creation_id": "CONTAINER_ID_FROM_STEP_1" }
Carousel Posts
- Tool:
INSTAGRAM_CREATE_CAROUSEL_CONTAINER
- Args:
{ "ig_user_id": "USER_ID", "caption": "Caption", "child_image_urls": ["url1", "url2", "url3"] }
- Then publish with
INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH
Check Publishing Quota
- Tool:
INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT
- Args:
{}
Media & Content
Get User's Media
- Tool:
INSTAGRAM_GET_IG_USER_MEDIA
- Args:
{ "ig_user_id": "USER_ID", "limit": "25" }
Get Specific Post Details
- Tool:
INSTAGRAM_GET_IG_MEDIA
- Args:
{ "ig_media_id": "MEDIA_ID" }
Get Carousel Children
- Tool:
INSTAGRAM_GET_IG_MEDIA_CHILDREN
- Args:
{ "ig_media_id": "MEDIA_ID" }
Get Stories
- Tool:
INSTAGRAM_GET_IG_USER_STORIES
- Args:
{}
Get Tagged Media
- Tool:
INSTAGRAM_GET_IG_USER_TAGS
- Args:
{}
Comments & Engagement
Get Comments on a Post
- Tool:
INSTAGRAM_GET_IG_MEDIA_COMMENTS
- Args:
{ "ig_media_id": "MEDIA_ID" }
Post a Comment
- Tool:
INSTAGRAM_POST_IG_MEDIA_COMMENTS
- Args:
{ "ig_media_id": "MEDIA_ID", "message": "Great post!" }
- Max 300 characters
Reply to a Comment
- Tool:
INSTAGRAM_POST_IG_COMMENT_REPLIES
- Args:
{ "ig_comment_id": "COMMENT_ID", "message": "Thanks!" }
Get Comment Replies
- Tool:
INSTAGRAM_GET_IG_COMMENT_REPLIES
- Args:
{ "ig_comment_id": "COMMENT_ID" }
Delete a Comment
- Tool:
INSTAGRAM_DELETE_COMMENT
- Args:
{ "ig_comment_id": "COMMENT_ID" }
Reply to a Mention
- Tool:
INSTAGRAM_POST_IG_USER_MENTIONS
- Args:
{ "ig_user_id": "USER_ID", "ig_media_id": "MENTION_MEDIA_ID", "message": "Thanks for the mention!" }
Direct Messages
Send a Text DM
- Tool:
INSTAGRAM_SEND_TEXT_MESSAGE
- Args:
{ "recipient_id": "IGSID", "text": "Hello!" }
Send an Image DM
- Tool:
INSTAGRAM_SEND_IMAGE
- Args:
{ "recipient_id": "IGSID", "image_url": "https://..." }
List Conversations
- Tool:
INSTAGRAM_LIST_ALL_CONVERSATIONS
- Args:
{ "limit": "25" }
List Messages in Thread
- Tool:
INSTAGRAM_LIST_ALL_MESSAGES
- Args:
{ "conversation_id": "CONV_ID", "limit": "25" }
Mark DMs as Read
- Tool:
INSTAGRAM_MARK_SEEN
- Args:
{ "recipient_id": "PSID" }
Analytics & Insights
Account Insights
- Tool:
INSTAGRAM_GET_USER_INSIGHTS
- Args:
{ "metric": ["impressions", "reach", "accounts_engaged"], "period": "day" }
- Periods: "day", "week", "days_28"
Post Insights
- Tool:
INSTAGRAM_GET_IG_MEDIA_INSIGHTS
- Args:
{ "ig_media_id": "MEDIA_ID", "metric": ["impressions", "reach", "engagement", "saved"] }
User Profile Info
- Tool:
INSTAGRAM_GET_USER_INFO
- Args:
{}
Content Strategy
Posting Best Practices
- Post 1-2 times per day for feed posts
- Use 3-5 relevant hashtags (don't overdo it)
- Carousel posts get 1.4x more reach than single images
- Reels get 2x more reach than static posts
- Post during peak hours: 11am-1pm, 7pm-9pm
- Use a strong first slide/thumbnail — it determines if people swipe
Caption Formula
- Hook (first line — visible before "more")
- Value/story (the body)
- CTA ("Save this for later", "Share with a friend", "Drop a comment")
- Hashtags (3-5, relevant, mix of sizes)
Guidelines
- Always use the exact use command format shown above
- Images must be publicly accessible URLs (not local files)
- Videos for Reels must be 3-90 seconds, MP4, H.264
- Captions max 2,200 characters
- If you get a 400 "not connected" error, tell the user to connect Instagram in the Apps tab
- Never expose credentials to the user
- Requires Instagram Business or Creator account
1---2name: instagram-manager3description: Publish posts, reels, carousels, manage comments, DMs, and track analytics on Instagram via Composio4---56<!-- openlabor-connector: instagram, api_key={{INTERNAL_API_KEY}}, employee={{EMPLOYEE_ID}}, base={{API_BASE_URL}} -->78# Instagram Manager910Publish posts, reels, carousels, manage comments, DMs, and track analytics on Instagram.1112You have access to Instagram through the OpenLabor connector API.1314## How to Execute Instagram Actions1516Use the exec tool to run `use`. Credentials are loaded automatically from the workspace.1718```19use instagram <TOOL_NAME> '<json_args>'20```2122## Publishing (Two-Step Flow)2324Instagram publishing requires two steps: create a media container, then publish it.2526### Step 1: Create Media Container2728- Tool: `INSTAGRAM_POST_IG_USER_MEDIA`29- Args: `{ "ig_user_id": "USER_ID", "caption": "Your caption here", "image_url": "https://..." }`30- For reels: add `"media_type": "REELS", "video_url": "https://..."`31- For carousel items: add `"media_type": "CAROUSEL"`32- Optional: `"user_tags"`, `"collaborators"` (max 3), `"location_id"`, `"cover_url"`3334### Step 2: Publish3536- Tool: `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH`37- Args: `{ "ig_user_id": "USER_ID", "creation_id": "CONTAINER_ID_FROM_STEP_1" }`3839### Carousel Posts4041- Tool: `INSTAGRAM_CREATE_CAROUSEL_CONTAINER`42- Args: `{ "ig_user_id": "USER_ID", "caption": "Caption", "child_image_urls": ["url1", "url2", "url3"] }`43- Then publish with `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH`4445### Check Publishing Quota4647- Tool: `INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT`48- Args: `{}`4950## Media & Content5152### Get User's Media5354- Tool: `INSTAGRAM_GET_IG_USER_MEDIA`55- Args: `{ "ig_user_id": "USER_ID", "limit": "25" }`5657### Get Specific Post Details5859- Tool: `INSTAGRAM_GET_IG_MEDIA`60- Args: `{ "ig_media_id": "MEDIA_ID" }`6162### Get Carousel Children6364- Tool: `INSTAGRAM_GET_IG_MEDIA_CHILDREN`65- Args: `{ "ig_media_id": "MEDIA_ID" }`6667### Get Stories6869- Tool: `INSTAGRAM_GET_IG_USER_STORIES`70- Args: `{}`7172### Get Tagged Media7374- Tool: `INSTAGRAM_GET_IG_USER_TAGS`75- Args: `{}`7677## Comments & Engagement7879### Get Comments on a Post8081- Tool: `INSTAGRAM_GET_IG_MEDIA_COMMENTS`82- Args: `{ "ig_media_id": "MEDIA_ID" }`8384### Post a Comment8586- Tool: `INSTAGRAM_POST_IG_MEDIA_COMMENTS`87- Args: `{ "ig_media_id": "MEDIA_ID", "message": "Great post!" }`88- Max 300 characters8990### Reply to a Comment9192- Tool: `INSTAGRAM_POST_IG_COMMENT_REPLIES`93- Args: `{ "ig_comment_id": "COMMENT_ID", "message": "Thanks!" }`9495### Get Comment Replies9697- Tool: `INSTAGRAM_GET_IG_COMMENT_REPLIES`98- Args: `{ "ig_comment_id": "COMMENT_ID" }`99100### Delete a Comment101102- Tool: `INSTAGRAM_DELETE_COMMENT`103- Args: `{ "ig_comment_id": "COMMENT_ID" }`104105### Reply to a Mention106107- Tool: `INSTAGRAM_POST_IG_USER_MENTIONS`108- Args: `{ "ig_user_id": "USER_ID", "ig_media_id": "MENTION_MEDIA_ID", "message": "Thanks for the mention!" }`109110## Direct Messages111112### Send a Text DM113114- Tool: `INSTAGRAM_SEND_TEXT_MESSAGE`115- Args: `{ "recipient_id": "IGSID", "text": "Hello!" }`116117### Send an Image DM118119- Tool: `INSTAGRAM_SEND_IMAGE`120- Args: `{ "recipient_id": "IGSID", "image_url": "https://..." }`121122### List Conversations123124- Tool: `INSTAGRAM_LIST_ALL_CONVERSATIONS`125- Args: `{ "limit": "25" }`126127### List Messages in Thread128129- Tool: `INSTAGRAM_LIST_ALL_MESSAGES`130- Args: `{ "conversation_id": "CONV_ID", "limit": "25" }`131132### Mark DMs as Read133134- Tool: `INSTAGRAM_MARK_SEEN`135- Args: `{ "recipient_id": "PSID" }`136137## Analytics & Insights138139### Account Insights140141- Tool: `INSTAGRAM_GET_USER_INSIGHTS`142- Args: `{ "metric": ["impressions", "reach", "accounts_engaged"], "period": "day" }`143- Periods: "day", "week", "days_28"144145### Post Insights146147- Tool: `INSTAGRAM_GET_IG_MEDIA_INSIGHTS`148- Args: `{ "ig_media_id": "MEDIA_ID", "metric": ["impressions", "reach", "engagement", "saved"] }`149150### User Profile Info151152- Tool: `INSTAGRAM_GET_USER_INFO`153- Args: `{}`154155## Content Strategy156157### Posting Best Practices158- Post 1-2 times per day for feed posts159- Use 3-5 relevant hashtags (don't overdo it)160- Carousel posts get 1.4x more reach than single images161- Reels get 2x more reach than static posts162- Post during peak hours: 11am-1pm, 7pm-9pm163- Use a strong first slide/thumbnail — it determines if people swipe164165### Caption Formula1661. Hook (first line — visible before "more")1672. Value/story (the body)1683. CTA ("Save this for later", "Share with a friend", "Drop a comment")1694. Hashtags (3-5, relevant, mix of sizes)170171## Guidelines1721. Always use the exact use command format shown above1732. Images must be publicly accessible URLs (not local files)1743. Videos for Reels must be 3-90 seconds, MP4, H.2641754. Captions max 2,200 characters1765. If you get a 400 "not connected" error, tell the user to connect Instagram in the Apps tab1776. Never expose credentials to the user1787. Requires Instagram Business or Creator account