{"id":"1b0a9bc8-4b8f-4f2c-a26f-85540b6cecd4","shortId":"AggG7y","kind":"skill","title":"instagram-automation","tagline":"Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media, get insights, and publishing limits. Always search tools first for current schemas.","description":"# Instagram Automation via Rube MCP\n\nAutomate Instagram operations through Composio's Instagram toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Instagram connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `instagram`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n- Instagram Business or Creator account required (personal accounts not supported)\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `instagram`\n3. If connection is not ACTIVE, follow the returned auth link to complete Instagram/Facebook OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create a Single Image/Video Post\n\n**When to use**: User wants to publish a single photo or video to Instagram\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_USER_INFO` - Get Instagram user ID [Prerequisite]\n2. `INSTAGRAM_CREATE_MEDIA_CONTAINER` - Create a media container with the image/video URL [Required]\n3. `INSTAGRAM_GET_POST_STATUS` - Check if the media container is ready [Optional]\n4. `INSTAGRAM_CREATE_POST` or `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH` - Publish the container [Required]\n\n**Key parameters**:\n- `image_url`: Public URL of the image to post\n- `video_url`: Public URL of the video to post\n- `caption`: Post caption text\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Media URLs must be publicly accessible; private/authenticated URLs will fail\n- Video containers may take time to process; poll GET_POST_STATUS before publishing\n- Caption supports hashtags and mentions but has a 2200 character limit\n- Publishing a container that is not yet finished processing returns an error\n\n### 2. Create a Carousel Post\n\n**When to use**: User wants to publish multiple images/videos in a single carousel post\n\n**Tool sequence**:\n1. `INSTAGRAM_CREATE_MEDIA_CONTAINER` - Create individual containers for each media item [Required, repeat per item]\n2. `INSTAGRAM_CREATE_CAROUSEL_CONTAINER` - Create the carousel container referencing all media containers [Required]\n3. `INSTAGRAM_GET_POST_STATUS` - Check carousel container readiness [Optional]\n4. `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH` - Publish the carousel [Required]\n\n**Key parameters**:\n- `children`: Array of media container IDs for the carousel\n- `caption`: Carousel post caption\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Carousels require 2-10 media items; fewer or more will fail\n- Each child container must be created individually before the carousel container\n- All child containers must be fully processed before creating the carousel\n- Mixed media (images + videos) is supported in carousels\n\n### 3. Get Media and Insights\n\n**When to use**: User wants to view their posts or analyze post performance\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_USER_MEDIA` or `INSTAGRAM_GET_USER_MEDIA` - List user's media [Required]\n2. `INSTAGRAM_GET_IG_MEDIA` - Get details for a specific post [Optional]\n3. `INSTAGRAM_GET_POST_INSIGHTS` or `INSTAGRAM_GET_IG_MEDIA_INSIGHTS` - Get metrics for a post [Optional]\n4. `INSTAGRAM_GET_USER_INSIGHTS` - Get account-level insights [Optional]\n\n**Key parameters**:\n- `ig_user_id`: Instagram Business account user ID\n- `media_id`: ID of the specific media post\n- `metric`: Metrics to retrieve (e.g., impressions, reach, engagement)\n- `period`: Time period for insights (e.g., day, week, lifetime)\n\n**Pitfalls**:\n- Insights are only available for Business/Creator accounts\n- Some metrics require minimum follower counts\n- Insight data may have a delay of up to 48 hours\n- The `period` parameter must match the metric type\n\n### 4. Check Publishing Limits\n\n**When to use**: User wants to verify they can publish before attempting a post\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT` - Check remaining publishing quota [Required]\n\n**Key parameters**:\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Instagram enforces a 25 posts per 24-hour rolling window limit\n- Publishing limit resets on a rolling basis, not at midnight\n- Check limits before bulk posting operations to avoid failures\n\n### 5. Get Media Comments and Children\n\n**When to use**: User wants to view comments on a post or children of a carousel\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_MEDIA_COMMENTS` - List comments on a media post [Required]\n2. `INSTAGRAM_GET_IG_MEDIA_CHILDREN` - List children of a carousel post [Optional]\n\n**Key parameters**:\n- `media_id`: ID of the media post\n- `ig_media_id`: Alternative media ID parameter\n\n**Pitfalls**:\n- Comments may be paginated; follow pagination cursors for complete results\n- Carousel children are returned as individual media objects\n- Comment moderation settings on the account affect what is returned\n\n## Common Patterns\n\n### ID Resolution\n\n**Instagram User ID**:\n```\n1. Call INSTAGRAM_GET_USER_INFO\n2. Extract ig_user_id from response\n3. Use in all subsequent API calls\n```\n\n**Media Container Status Check**:\n```\n1. Call INSTAGRAM_CREATE_MEDIA_CONTAINER\n2. Extract container_id from response\n3. Poll INSTAGRAM_GET_POST_STATUS with container_id\n4. Wait until status is 'FINISHED' before publishing\n```\n\n### Two-Phase Publishing\n\n- Phase 1: Create media container(s) with content URLs\n- Phase 2: Publish the container after it finishes processing\n- Always check container status between phases for video content\n- For carousels, all children must complete Phase 1 before creating the carousel container\n\n## Known Pitfalls\n\n**Media URLs**:\n- All image/video URLs must be publicly accessible HTTPS URLs\n- URLs behind authentication, CDN restrictions, or that require cookies will fail\n- Temporary URLs (pre-signed S3, etc.) may expire before processing completes\n\n**Rate Limits**:\n- 25 posts per 24-hour rolling window\n- API rate limits apply separately from publishing limits\n- Implement exponential backoff for 429 responses\n\n**Account Requirements**:\n- Only Business or Creator Instagram accounts are supported\n- Personal accounts cannot use the Instagram Graph API\n- The account must be connected to a Facebook Page\n\n**Response Parsing**:\n- Media IDs are numeric strings\n- Insights data may be nested under different response keys\n- Pagination uses cursor-based tokens\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Get user info | INSTAGRAM_GET_USER_INFO | (none) |\n| Create media container | INSTAGRAM_CREATE_MEDIA_CONTAINER | image_url/video_url, caption |\n| Create carousel | INSTAGRAM_CREATE_CAROUSEL_CONTAINER | children, caption |\n| Publish post | INSTAGRAM_CREATE_POST | ig_user_id, creation_id |\n| Publish media | INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH | ig_user_id, creation_id |\n| Check post status | INSTAGRAM_GET_POST_STATUS | ig_container_id |\n| List user media | INSTAGRAM_GET_IG_USER_MEDIA | ig_user_id |\n| Get media details | INSTAGRAM_GET_IG_MEDIA | ig_media_id |\n| Get post insights | INSTAGRAM_GET_POST_INSIGHTS | media_id, metric |\n| Get user insights | INSTAGRAM_GET_USER_INSIGHTS | ig_user_id, metric, period |\n| Get publishing limit | INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT | ig_user_id |\n| Get media comments | INSTAGRAM_GET_IG_MEDIA_COMMENTS | ig_media_id |\n| Get carousel children | INSTAGRAM_GET_IG_MEDIA_CHILDREN | ig_media_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["instagram","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-instagram-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/instagram-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34768 github stars · SKILL.md body (7,942 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T18:51:32.523Z","embedding":null,"createdAt":"2026-04-18T21:39:10.015Z","updatedAt":"2026-04-23T18:51:32.523Z","lastSeenAt":"2026-04-23T18:51:32.523Z","tsv":"'-10':411 '/mcp':92 '1':112,159,181,333,469,613,691,769,793,827,860 '2':124,191,312,349,410,485,704,775,799,836 '2200':297 '24':643,907 '25':640,904 '3':132,205,363,449,497,782,805 '4':147,218,373,514,593,814 '429':923 '48':583 '5':667 'access':271,876 'account':79,82,262,404,521,532,567,633,757,925,932,936,944 'account-level':520 'action':1130 'activ':54,137,152 'add':89,106 'affect':758 'altern':729 'alway':21,64,844 'analyz':464 'api':102,787,911,942 'appli':914 'applic':1124 'array':387 'ask':1168 'attempt':608 'auth':141 'authent':881 'autom':3,4,29,33 'avail':53,117,564 'avoid':665 'backoff':921 'base':972 'basi':654 'behind':880 'boundari':1176 'bulk':661 'busi':76,261,403,531,632,928 'business/creator':566 'call':65,125,770,788,794 'cannot':937 'caption':253,255,289,395,398,998,1006 'carousel':13,315,329,352,356,369,382,394,396,408,428,440,448,688,714,744,854,864,1000,1003,1108 'cdn':882 'charact':298 'check':210,368,594,621,658,792,845,1030 'child':420,431 'children':386,672,685,709,711,745,856,1005,1109,1114 'clarif':1170 'clear':1143 'client':99 'comment':670,680,696,698,734,752,1098,1103 'common':762 'complet':144,742,858,901 'composio':10,37 'configur':100 'confirm':119,148 'connect':49,56,60,128,134,149,947 'contain':195,199,214,231,277,302,337,340,353,357,361,370,390,421,429,432,790,798,801,812,830,839,846,865,991,995,1004,1038 'content':618,833,852,1090 'cooki':887 'core':157 'count':573 'creat':11,160,193,196,220,313,335,338,351,354,424,438,796,828,862,989,993,999,1002,1010 'creation':1015,1028 'creator':78,930 'criteria':1179 'current':26,72 'cursor':740,971 'cursor-bas':970 'data':575,960 'day':557 'delay':579 'describ':1131,1147 'detail':491,1053 'differ':965 'e.g':547,556 'endpoint':108 'enforc':638 'engag':550 'environ':1159 'environment-specif':1158 'error':311 'etc':896 'execut':1126 'expert':1164 'expir':898 'exponenti':920 'extract':776,800 'facebook':950 'fail':275,418,889 'failur':666 'fewer':414 'finish':307,819,842 'first':24,69 'follow':138,572,738 'fulli':435 'get':16,71,86,183,186,207,284,365,450,471,477,487,490,499,504,508,516,519,615,668,693,706,772,808,981,985,1034,1044,1051,1055,1061,1065,1071,1075,1083,1087,1096,1100,1107,1111 'graph':941 'hashtag':291 'hour':584,644,908 'https':877 'id':189,259,264,391,401,406,529,534,536,537,630,635,720,721,728,731,764,768,779,802,813,955,1014,1016,1027,1029,1039,1050,1060,1069,1080,1095,1106,1117 'ig':225,257,376,399,472,488,505,527,616,628,694,707,726,777,1012,1021,1025,1037,1045,1048,1056,1058,1078,1088,1093,1101,1104,1112,1115 'imag':235,241,443,996 'image/video':163,202,871 'images/videos':325 'implement':919 'impress':548 'individu':339,425,749 'info':185,774,983,987 'input':1173 'insight':17,453,501,507,518,523,555,561,574,959,1063,1067,1073,1077 'instagram':2,5,28,34,39,55,63,75,131,178,182,187,192,206,219,223,260,334,350,364,374,402,470,476,486,498,503,515,530,614,631,637,692,705,766,771,795,807,931,940,984,992,1001,1009,1019,1033,1043,1054,1064,1074,1086,1099,1110 'instagram-autom':1 'instagram/facebook':145 'item':344,348,413 'key':103,233,384,525,626,717,967,979 'known':866 'level':522 'lifetim':559 'limit':20,299,596,620,647,649,659,903,913,918,1085,1092,1135 'link':142 'list':480,697,710,1040 'manag':14,59,127 'match':589,1144 'may':278,576,735,897,961 'mcp':9,32,43,46,88,95,115 'media':15,194,198,213,227,266,336,343,360,378,389,412,442,451,474,479,483,489,506,535,541,669,695,701,708,719,724,727,730,750,789,797,829,868,954,990,994,1018,1023,1042,1047,1052,1057,1059,1068,1097,1102,1105,1113,1116 'mention':293 'metric':509,543,544,569,591,1070,1081 'midnight':657 'minimum':571 'miss':1181 'mix':441 'moder':753 'multipl':324 'must':47,268,422,433,588,857,873,945 'need':104 'nest':963 'none':988 'numer':957 'oauth':146 'object':751 'oper':35,663 'option':217,372,496,513,524,716 'output':1153 'overview':1134 'page':951 'pagin':737,739,968 'param':980 'paramet':234,385,526,587,627,718,732 'pars':953 'pattern':763 'per':347,642,906 'perform':466 'period':551,553,586,1082 'permiss':1174 'person':81,935 'phase':824,826,835,849,859 'photo':174 'pitfal':265,407,560,636,733,867 'poll':283,806 'post':12,164,208,221,224,243,252,254,285,316,330,366,375,397,462,465,495,500,512,542,610,641,662,683,702,715,725,809,905,1008,1011,1020,1031,1035,1062,1066 'pre':893 'pre-sign':892 'prerequisit':44,190 'private/authenticated':272 'process':282,308,436,843,900 'public':237,246,270,875 'publish':19,171,228,229,288,300,323,379,380,595,606,619,623,648,821,825,837,917,1007,1017,1024,1084,1091 'quick':974 'quota':624 'rate':902,912 'reach':549 'readi':216,371 'refer':975 'referenc':358 'remain':622 'repeat':346 'requir':80,204,232,345,362,383,409,484,570,625,703,886,926,1172 'reset':650 'resolut':765 'respond':123 'respons':781,804,924,952,966 'restrict':883 'result':743 'retriev':546 'return':140,309,747,761 'review':1165 'roll':645,653,909 'rube':8,31,42,45,50,58,66,87,114,120,126 'rube.app':91 'rube.app/mcp':90 'run':154 's3':895 'safeti':1175 'schema':27,74 'scope':1146 'search':22,51,67,121 'separ':915 'sequenc':180,332,468,612,690 'server':96 'set':754 'setup':85 'show':151 'sign':894 'singl':162,173,328 'skill':1122,1138 'skill-instagram-automation' 'slug':978 'source-sickn33' 'specif':494,540,1160 'status':150,209,286,367,791,810,817,847,1032,1036 'stop':1166 'string':958 'subsequ':786 'substitut':1156 'success':1178 'support':84,290,446,934 'take':279 'task':6,976,1142 'temporari':890 'test':1162 'text':256 'time':280,552 'token':973 'tool':23,52,68,73,122,179,331,467,611,689,977 'toolkit':40,62,130 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1151 'two':823 'two-phas':822 'type':592 'url':203,236,238,245,247,267,273,834,869,872,878,879,891 'url/video_url':997 'use':167,319,456,599,675,783,938,969,1120,1136 'user':168,184,188,226,258,263,320,377,400,405,457,473,478,481,517,528,533,600,617,629,634,676,767,773,778,982,986,1013,1022,1026,1041,1046,1049,1072,1076,1079,1089,1094 'valid':1161 'verifi':113,603 'via':7,30,41,57 'video':176,244,250,276,444,851 'view':460,679 'wait':815 'want':169,321,458,601,677 'week':558 'window':646,910 'work':111 'workflow':156,158,1128 'yet':306","prices":[{"id":"11478b7a-ad3e-465c-99af-b25fd5c9c584","listingId":"1b0a9bc8-4b8f-4f2c-a26f-85540b6cecd4","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:39:10.015Z"}],"sources":[{"listingId":"1b0a9bc8-4b8f-4f2c-a26f-85540b6cecd4","source":"github","sourceId":"sickn33/antigravity-awesome-skills/instagram-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/instagram-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:39:10.015Z","lastSeenAt":"2026-04-23T18:51:32.523Z"}],"details":{"listingId":"1b0a9bc8-4b8f-4f2c-a26f-85540b6cecd4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"instagram-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34768,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"842df53400a80797d7c0b94f486198c5321568c1","skill_md_path":"skills/instagram-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/instagram-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"instagram-automation","description":"Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media, get insights, and publishing limits. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/instagram-automation"},"updatedAt":"2026-04-23T18:51:32.523Z"}}