marketing_automation
Connect Instagram to Elaichi and hand every teammate a governed MCP endpoint — 30 tools ready to call from Claude, Cursor, or any MCP client, clamped by roles, restrictions, and an audit log.
AI tools
Instagram tools for your AI agents
30 tools are ready to mint as an MCP endpoint the moment you connect Instagram — governed by the same roles, restrictions, and audit log as everything else in Elaichi.
update_a_instagram_instagram_media_by_id
Enable or disable comments on an Instagram Media by id. Returns: success. Required: id, comment_enabled. Live video Instagram Media not supported.
delete_a_instagram_instagram_media_by_id
Delete an Instagram Media by id. Returns: success, deleted_id. Required: id. Only supports non-ad posts, Stories, Reels, and entire carousel albums; individual carousel child media cannot be deleted separately.
list_all_instagram_instagram_media
List Instagram media objects on an IG User. Returns: id, uri, success. Required: ig_user_id.
create_a_instagram_instagram_media
Create an Instagram media container (image, carousel, story, or reel) for later publishing via the media_publish endpoint. Returns: id, uri. Required: ig_user_id. Containers expire after 24 hours; an account can create up to 400 containers per rolling 24-hour period.
instagram_instagram_media_publish
Publish a previously created IG Container (single media or carousel) on an Instagram Business account. Returns: id. Required: ig_user_id, creation_id. The container must reach FINISHED status before publishing and expires if not published within 24 hours.
instagram_instagram_hashtags_search
Search for an Instagram hashtag by name to retrieve its static, global IG Hashtag ID. Returns: id. Required: user_id, q. Limited to 30 unique hashtag queries within a 7-day period; sensitive or offensive hashtags return a generic error.
create_a_instagram_access_token
Exchange a short-lived Instagram User access token (expires in one hour) for a long-lived token valid for 60 days. Returns: access_token, token_type, expires_in. Required: grant_type, client_secret, access_token. Requests include the app secret and should only be made from server-side code.
update_a_instagram_access_token_by_id
Refresh a long-lived Instagram User access token that is at least 24 hours old but not expired. Returns: access_token, token_type, expires_in. Required: grant_type, access_token. Refreshed tokens are valid for 60 days from the refresh date.
list_all_instagram_oauth
Initiate the Business Login for Instagram OAuth authorization flow by redirecting the app user to Instagram's authorization window. Returns an authorization code via redirect to the configured redirect_uri (valid for 1 hour, single use). Required: client_id, redirect_uri, response_type, scope.
list_all_instagram_instagram_media_children
List child IG Media objects on an Instagram album (carousel) IG Media. Returns: id, caption, media_type, media_url, timestamp, owner, comments_count, like_count. Required: ig_media_id. Some fields such as permalink are not available on photos within albums.
list_all_instagram_instagram_media_comments
List comments on an Instagram media object. Returns: id, text, timestamp. Required: ig_media_id. Returns only top-level comments (replies not included); maximum 50 comments per query.
create_a_instagram_instagram_media_comment
Create a comment on an Instagram media object. Returns: id. Required: ig_media_id, message. Comments on live video IG Media are not supported.
list_all_instagram_instagram_media_collaborators
List collaborators and their invitation status on an Instagram IG Media object. Returns: id, username, invite_status. Required: ig_media_id. Supports Feed image, Reels, and Carousel (Stories not supported); up to 5 collaborator accounts per media object.
list_all_instagram_instagram_stories
List Instagram stories (IG Media objects) for a given IG User. Returns: id, caption, media_type, media_url, permalink, timestamp, owner. Required: ig_user_id. Stories are only available for 24 hours; Live Video stories and reshared stories are not included. Only one caption is returned per story even if more than one exists.
list_all_instagram_instagram_tagged_media
List Instagram IG Media objects in which an app user's professional account has been tagged by another Instagram user. Returns: id, username, caption, media_type, media_url, permalink, timestamp, comments_count, like_count. Required: ig_user_id. Private IG Media objects will not be returned. Use the fields parameter to request specific IG Media fields and edges.
list_all_instagram_instagram_live_media
List live video IG Media on an Instagram IG User. Returns: id, media_type, media_product_type, owner, username, comments. Required: ig_user_id. Only live video IG Media being broadcast at the time of the request will be returned.
list_all_instagram_instagram_user_insights
List insights metrics for an Instagram business or creator account. Returns: name, period, title, description, total_value, id. Required: ig_user_id, metric, period. Demographic metrics additionally require timeframe; some metrics need 100+ followers.
list_all_instagram_instagram_content_publishing_limits
List Instagram content publishing limits for an IG User, showing how many IG Containers have been published within a given time period. Returns: quota_usage, config. Required: ig_user_id.
create_a_instagram_instagram_mention
Create an Instagram comment reply when an IG User is @mentioned in a caption or comment. Returns: id. Required: ig_user_id, media_id, message; comment_id is also required when replying to a comment. Mentions on Stories are not supported.
list_all_instagram_instagram_recently_searched_hashtags
List Instagram hashtags an IG User has searched for within the last 7 days. Returns: id, name. Required: ig_user_id. Returns up to 30 results per page (25 by default); users can query a maximum of 30 unique hashtags in a rolling 7-day period, and emojis in hashtag queries are not supported.
list_all_instagram_instagram_connected_threads_users
List Threads accounts connected to an Instagram account in Instagram. Returns: threads_user_id. Required: ig_user_id. An Instagram account can have only one connected Threads account.
list_all_instagram_instagram_backed_threads_users
List Instagram-backed Threads accounts for a given Instagram user. The API returns the Threads account ID; each item in the response contains threads_user_id. Required: ig_user_id. An Instagram account can have only one Instagram-backed Threads account.
create_a_instagram_instagram_backed_threads_user
Create an Instagram-backed Threads account for running ads on Threads. Returns: threads_user_id. Required: ig_user_id. An Instagram account can have only one Instagram-backed Threads account — verify one does not already exist before creating.
create_a_instagram_instagram_subscription
Subscribe an Instagram professional account to webhook notification fields by sending a POST to the subscribed_apps endpoint. Returns: success. Required: ig_user_id, subscribed_fields. The subscribed_fields value is a comma-separated list of webhook fields such as comments, live_comments, messages, story_insights.
list_all_instagram_instagram_comment_replies
List all replies (IG Comments) on an Instagram IG Comment. Returns: id, text, timestamp. Required: ig_comment_id. You cannot get replies to a comment that has been deleted.
create_a_instagram_instagram_comment_reply
Create a reply to an Instagram IG Comment. Returns: id. Required: ig_comment_id, message. You can only reply to top-level comments; you cannot reply to hidden comments or comments on a live video.
list_all_instagram_instagram_hashtag_recent_media
List the most recently published Instagram media tagged with a specific hashtag. Returns: id, caption, children, comments_count, like_count, media_type, media_url, permalink, timestamp. Required: ig_hashtag_id, user_id. Only returns public media published within the last 24 hours; maximum 50 results per page.
list_all_instagram_instagram_hashtag_top_media
List the most popular Instagram photo and video IG Media objects tagged with a hashtag, ranked by views and viewer interaction. Returns: id, caption, children, comments_count, like_count, media_type, media_url, permalink, timestamp. Required: ig_hashtag_id, user_id. Maximum 50 results per page; only public media is returned and promoted/ads media is excluded.
get_single_instagram_me_by_id
Get fields and edges on an Instagram Business or Creator Account by id. Returns: id, followers_count, media_count. Required: id.
list_all_instagram_me
Get the authenticated Instagram user's profile information. This endpoint examines the access token to determine the user ID and translates to GET /{user-id}. Returns: id, username, biography, followers_count, media_count, website.
How it works
From Instagram account to governed MCP endpoint
Connect
Link a Instagram account through Elaichi's hosted connect flow. Credentials are vaulted — nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Instagram tools are exposed, rename them, or freeze arguments.
Mint
Mint a personal MCP endpoint on that toolbox and paste it into Claude, Cursor, or any MCP client — governed by roles, restrictions, and audit logs.
Give every teammate a governed MCP server
Start a 14-day Gold trial — connect a product, curate a toolbox, and paste an endpoint into Claude or Cursor in minutes.