Agent skill

Instagram API

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap…

MITAuto-check passedMarketing & SEO

Install Instagram API

skills CLI
$ npx skills add ericrisco/rsc-harness --skill instagram-api -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness instagram-api --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/instagram-api .claude/skills/instagram-api && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
instagram-api
GitHub stars
156
Token cost
~3.1k tokens
SKILL.md length
1,017 words
Files
6 (incl. scripts, references)
Skills in repo
229
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap…

  • Wiring an agent into Instagrams Graph API: publishing a Reel through the create/poll/publish container dance
  • SKILL.md covers Route out, Prereqs & auth, Publish a Reel — the 3-step… and Status polling rules, plus 5 more sections
  • Runs Shell scripts from its folder; calls curl; reaches instagram.com; needs IG_ACCESS_TOKEN
  • Reading per-media insights

What it does

Instagram API is an agent skill from ericrisco/rsc-harness. Use when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap, or ingesting Reel metrics into 02-DOCS/wiki/shortform. NOT TikTok (that is tiktok-api), NOT YouTube (that is youtube-api), NOT cross-platform cadence (that is social-publisher).

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/insights-metrics.md`).

It sits in Marketing & SEO, covering Social publishing and cross-posting. It works with Instagram, YouTube and TikTok. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • Wiring an agent into Instagrams Graph API: publishing a Reel through the create/poll/publish container dance
  • Reading per-media insights
  • Checking the 24h publish cap
  • Ingesting Reel metrics into 02-DOCS/wiki/shortform

Example prompts

  • “/instagram-api”

Requirements

  • Python 3
  • A Bash shell
  • A credential in IG_ACCESS_TOKEN

What it can do on your machine

Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • instagram.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • IG_ACCESS_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Instagram API loads about 3.1k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 94 tokens; SKILL.md has 1,017 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~94
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,017 words, ~3,126 tokens.

Download SKILL.mdSave it as .claude/skills/instagram-api/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
instagram-api
description
Use when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap, or ingesting Reel metrics into 02-DOCS/wiki/shortform. NOT TikTok (that is `tiktok-api`), NOT YouTube (that is `youtube-api`), NOT cross-platform cadence (that is `social-publisher`).
tags
instagram, graph-api, content-publishing, reels, insights, shortform
recommends
tiktok-api, youtube-api, social-publisher, shortform-strategy, api-connector-builder
origin
risco

instagram-api

The wire between an agent and Instagram's Graph API: publish Reels, pull the metrics that still exist, and write them to the wiki. You speak HTTP, OAuth scopes, container IDs, and metric names. You do not decide what to post, write the caption's voice, or cut the video — route those out.

All facts below are pinned to Graph API v25.0 (current as of 2026-06-02). When you generate code, pin the version explicitly; Meta breaks metrics on version boundaries.

Route out

The askSkill
Post the same clip to TikToktiktok-api
Upload to YouTube / pull YouTube statsyoutube-api
Cadence, best-time, multi-platform calendarsocial-publisher
What to make / shortform content strategyshortform-strategy
Hook, cuts, on-screen captionsvideo-shorts
Generic OAuth/webhook plumbing not IG-specificapi-connector-builder

Prereqs & auth

You cannot publish from a personal account. Confirm these before writing any call.

  • IG professional account (Business or Creator). Why: the publishing and insights endpoints reject personal accounts outright.
  • Auth path + host — pick one and stay on it:
    • Facebook Login for Business → IG account linked to a FB Page → host graph.facebook.com.
    • Instagram Login (direct) → host graph.instagram.com. Why: the host is not interchangeable per call; mixing tokens and hosts throws auth errors.
  • Scopes (current names): instagram_business_content_publish to publish, instagram_business_manage_insights to read metrics. Why: the old instagram_basic / instagram_content_publish were deprecated 2025-01-27 and silently grant nothing now.
  • Long-lived token = 60 days, refreshable before expiry. A short-lived user token lasts ~1h. Why: anything in a script needs the long-lived token or it dies within the hour.

Env block — generate code that reads these, never hard-code the token:

bash
export IG_USER_ID="17841400000000000"      # the IG professional account id (NOT the page id)
export IG_ACCESS_TOKEN="EAAG...long-lived"  # 60-day token, refresh before expiry
export GRAPH_VERSION="v25.0"                # pin it — never blank
export GRAPH_HOST="graph.facebook.com"      # or graph.instagram.com for IG Login

Publish a Reel — the 3-step container dance

Publishing is never one call. It is create → poll → publish. Skipping the poll is the #1 failure.

Step 1 — create the container. video_url must be a publicly reachable MP4 (no auth header, no signed-URL-that-expires-in-30s) for the entire processing window.

bash
curl -s -X POST "https://$GRAPH_HOST/$GRAPH_VERSION/$IG_USER_ID/media" \
  -d "media_type=REELS" \
  -d "video_url=https://cdn.example.com/clip.mp4" \
  -d "caption=Shipped it." \
  -d "share_to_feed=true" \
  -d "access_token=$IG_ACCESS_TOKEN"
# -> {"id":"17999999999999999"}   <- this is the CONTAINER id, not a published post

Step 2 — poll status until FINISHED. Meta recommends ~once per minute, ceiling ~5 minutes.

bash
curl -s "https://$GRAPH_HOST/$GRAPH_VERSION/$CONTAINER_ID?fields=status_code,status" \
  -d "access_token=$IG_ACCESS_TOKEN"
# -> {"status_code":"FINISHED", ...}

Step 3 — publish. Only after FINISHED.

bash
curl -s -X POST "https://$GRAPH_HOST/$GRAPH_VERSION/$IG_USER_ID/media_publish" \
  -d "creation_id=$CONTAINER_ID" \
  -d "access_token=$IG_ACCESS_TOKEN"
# -> {"id":"17888888888888888"}   <- THIS is the published media id

A compact Python helper that does the whole dance:

python
import os, time, requests

HOST = os.environ["GRAPH_HOST"]
VER  = os.environ["GRAPH_VERSION"]          # v25.0 — pinned
UID  = os.environ["IG_USER_ID"]
TOK  = os.environ["IG_ACCESS_TOKEN"]
BASE = f"https://{HOST}/{VER}"

def publish_reel(video_url: str, caption: str) -> str:
    cid = requests.post(f"{BASE}/{UID}/media", data={
        "media_type": "REELS", "video_url": video_url,
        "caption": caption, "share_to_feed": "true",
        "access_token": TOK,
    }).json()["id"]

    for _ in range(10):                      # ~5 min ceiling at 30s steps
        st = requests.get(f"{BASE}/{cid}", params={
            "fields": "status_code", "access_token": TOK,
        }).json()["status_code"]
        if st == "FINISHED":
            break
        if st in ("ERROR", "EXPIRED"):
            raise RuntimeError(f"container {cid} -> {st}")
        time.sleep(30)
    else:
        raise TimeoutError(f"container {cid} never reached FINISHED")

    return requests.post(f"{BASE}/{UID}/media_publish", data={
        "creation_id": cid, "access_token": TOK,
    }).json()["id"]
text
Bad:  publish immediately after create -> "Media ID is not available" / silent fail.
Good: poll status_code until FINISHED, then media_publish.

Bad:  video_url behind auth or a 30s signed URL -> container stalls in ERROR.
Good: a plain public MP4 that stays reachable for the full ~5 min window.

Full container field reference (reels / carousel / story), cover & thumb handling, error codes, retry/backoff, and batch publish with cap check → references/publish-reel.md.

Status polling rules

status_code is the only honest signal. Branch on it, do not guess from timing.

status_codeMeaningAction
IN_PROGRESSStill transcodingKeep polling (~60s)
FINISHEDReadyCall media_publish now
ERRORFailed (bad url, bad codec, eligibility)Stop; read status, fix source
EXPIREDContainer unpublished too longStop; recreate from step 1

Why the 5-min ceiling: containers expire. If you poll forever you will eventually publish an EXPIRED id and get an error. Cap retries.

Limits — check before a batch

RuleHow
50 API-published posts per rolling 24h per IG accountGET /{IG_USER_ID}/content_publishing_limit?fields=quota_usage,config
Over the capmedia_publish rejects with error subcode #51 ("publishing limit reached")
bash
curl -s "https://$GRAPH_HOST/$GRAPH_VERSION/$IG_USER_ID/content_publishing_limit?fields=quota_usage" \
  -d "access_token=$IG_ACCESS_TOKEN"
# -> {"data":[{"quota_usage": 12, "config": {"quota_total": 50}}]}

Why check first: in a batch, hitting #51 mid-run leaves half your queue unpublished and no clean resume point. Read quota_usage and stop early.

Fetch insights

bash
curl -s "https://$GRAPH_HOST/$GRAPH_VERSION/$IG_MEDIA_ID/insights" \
  -d "metric=reach,views,likes,comments,shares,saved,total_interactions,ig_reels_avg_watch_time,ig_reels_video_view_total_time" \
  -d "access_token=$IG_ACCESS_TOKEN"

Valid Reels metric set (v25.0): reach, views, likes, comments, shares, saved, total_interactions, ig_reels_avg_watch_time, ig_reels_video_view_total_time (plus optional crossposted_views, facebook_views, reposts). Why a fixed list: the metric set differs by media type (feed / story / reels), and one invalid name fails the whole call — not just that field.

Units trap: the API returns ig_reels_avg_watch_time and ig_reels_video_view_total_time in milliseconds, not seconds. Store the raw value verbatim (suffix the key _ms) so the artifact matches the API, or divide by 1000 at ingest and rename to _s — never label a raw millisecond value "seconds". A 7.4s avg watch arrives as 7400.

Show full SKILL.md (438 more words)Show less

The deprecated-metric trap

Requesting any retired metric does not return null — it 400s the entire insights call. Map old → new before you send.

DeprecatedReplacementDeprecated on
playsviews2025-04-21 (v22.0 + all versions)
clips_replays_count— (removed)2025-04-21
ig_reels_aggregated_all_plays_countviews2025-04-21
impressionsviews / reachgone for media created after 2024-07-02
video_viewsviews2025-01-08
profile_views (media)—2025-03-25

If a previously-working call started erroring, this table is almost certainly why: a metric you used to request was retired on a version boundary. Swap to views and drop the dead names.

Complete current metric tables per media type, the full deprecated→replacement map with dates, version-gated 2025–2026 additions, and the 02-DOCS/wiki/shortform/ ingest schema spec → references/insights-metrics.md.

Ingest into 02-DOCS/wiki/shortform/

This is the checkable deliverable. One file per media id, idempotent overwrite (re-running a pull refreshes pulled_at and metrics, never duplicates).

  • Path: 02-DOCS/wiki/shortform/ig-reel-<media_id>.md
  • Naming: always ig-reel- prefix + the published media id (not the container id).
  • Re-runs: overwrite the same file in place — the media id is the natural key.
markdown
---
type: instagram-metrics
title: "Reel 17888888888888888"
description: Performance snapshot for one Instagram Reel, pulled from Graph API v25.0.
tags: [instagram, reels, insights, shortform]
timestamp: "2026-06-02T08:00:00Z"
topic: shortform
status: stable
platform: instagram
media_type: REELS
media_id: "17888888888888888"
permalink: "https://www.instagram.com/reel/Cxxxxxx/"
published_at: "2026-05-30T09:12:00Z"
graph_version: v25.0
pulled_at: "2026-06-02T08:00:00Z"
metrics:
  reach: 41200
  views: 58800
  total_interactions: 3120
  saved: 410
  shares: 220
  ig_reels_avg_watch_time_ms: 7400        # raw API value — MILLISECONDS (avg per view)
  ig_reels_video_view_total_time_ms: 435120000 # raw API value — MILLISECONDS (summed)
---

# Reel 17888888888888888

Performance snapshot pulled from Graph API v25.0. Metric set is the
current valid Reels set; no deprecated names requested.

type is the only required OKF v0.1 field; title/description/tags/timestamp are the recommended OKF surface (timestamp mirrors the pull instant). The DOMAIN keys below are mandatory and stay byte-for-byte — verify.sh requires a pinned graph_version and greps the metrics block for deprecated names; pulled_at is the API-pull instant verify/diff rely on. Keep both pulled_at and timestamp. Why front-matter + media-id filename: the wiki is queried by key, and re-pulls must be diffable, not additive (the idempotent overwrite re-stamps timestamp and pulled_at together).

Anti-patterns

Anti-patternWhy it bitesDo instead
Publish right after media createContainer isn't FINISHED; publish errorsPoll status_code first
Requesting plays / impressions400s the whole insights callUse views; consult the trap table
Leaving GRAPH_VERSION blank / using defaultMetric set silently shifts on Meta's rolloutPin v25.0 in every call
Signed/auth-gated video_urlContainer stalls in ERRORPlain public MP4 for the full window
Batch publishing without cap checkHit #51 mid-run, half-published queuecontent_publishing_limit before the loop
Old scopes (instagram_basic, instagram_content_publish)Grant nothing since 2025-01-27instagram_business_basic / instagram_business_content_publish
Storing the container id as "the post"It's not the published media idPersist the media_publish id
Sending a graph.instagram.com token to graph.facebook.comHost is fixed by the login path, not chosen per callPick the host with the auth path and stay on it
Letting the 60-day long-lived token lapseEvery call fails with an auth error, not a 404Refresh before expiry
A source video outside Reel eligibilitySurfaces as container ERROR, not a clean validation message9:16, 5–90s, H.264/HEVC
Requesting the 2025–2026 additions (Reels skip rate, repost counts, crossposted views) blindVersion-gated — trips the same 400 trap as a deprecated nameConfirm they exist on GRAPH_VERSION first

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references) in skills/instagram-api of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/insights-metrics.md
  • references/publish-reel.md
  • scripts/verify.sh

Open the folder on GitHubat commit 92fde8f

Compare with similar skills

Instagram API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Instagram API compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Instagram API this skillericrisco/rsc-harness156—~3.1kAutomated safety check: PassMIT
Bulkpublish Social Schedulingdavepoon/buildwithclaude3.6k—~1.3kAutomated safety check: PassMIT
Social Publisherclaude-office-skills/skills498—~3.1kAutomated safety check: PassMIT
Cross Platform ReformatterOotto-AI/claude-content-skills101—~449Automated safety check: PassMIT
Influencer Discoverytigerless-labs/influencer-discovery211—~2.5kAutomated safety check: NotesNone
Comment MiningScrapeCreators/social-media-research-skills3.3k—~1kAutomated safety check: NotesMIT

Similar skills

  • Bulkpublish Social Scheduling

    davepoon/buildwithclaude

    Schedule, publish and analyze social posts across 15 networks via BulkPublish (MCP or REST) — Facebook, Instagram, X, TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business, LinkedIn…

    3.6k GitHub stars~1.3k tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Social Publisher

    claude-office-skills/skills

    Multi-platform social media publishing automation - schedule, post, and track content across TikTok, Instagram, YouTube, LinkedIn, and more

    498 GitHub stars~3.1k tokensUpdated 8 mo ago
    Marketing & SEOAuto-check passed
  • Cross Platform Reformatter

    Ootto-AI/claude-content-skills

    Reshapes one Instagram reel into a TikTok and a YouTube Short — adjusting hook, length and captions per platform.

    101 GitHub stars~449 tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Influencer Discovery

    tigerless-labs/influencer-discovery

    Find the bloggers/creators who can help promote your work, capture their contact info, and append them to the target sheet in Google Sheets.

    211 GitHub stars~2.5k tokensUpdated 15 days ago
    Marketing & SEOAuto-check: notes
  • Comment Mining

    ScrapeCreators/social-media-research-skills

    A skill your agent uses when the user wants to mine comments and replies for audience reactions, customer language, questions, objections, complaints, product ideas, buying intent, sentiment, or…

    3.3k GitHub stars~1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check: notes
  • Competitor Social Research

    ScrapeCreators/social-media-research-skills

    A skill your agent uses when the user wants to research competitors' social media strategy, compare brands or creators, find what content is working in a niche, identify content gaps, or produce a…

    3.3k GitHub stars~1.1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check: notes

More from ericrisco/rsc-harness

All 229 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    156 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    156 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    156 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    156 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    156 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    156 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Instagram API

What does Instagram API do?

A skill your agent uses when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap…. Instagram API is an agent skill from ericrisco/rsc-harness. Use when wiring an agent into Instagram's Graph API: publishing a Reel through the create/poll/publish container dance, reading per-media insights, checking the 24h publish cap, or ingesting Reel metrics into 02-DOCS/wiki/shortform.

When should I use Instagram API?

Instagram API fits situations like: wiring an agent into Instagrams Graph API: publishing a Reel through the create/poll/publish container dance; reading per-media insights; checking the 24h publish cap; ingesting Reel metrics into 02-DOCS/wiki/shortform.

How do I install Instagram API in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill instagram-api -a claude-code`. Or copy the skill folder (skills/instagram-api in ericrisco/rsc-harness) into .claude/skills/instagram-api in your project. Claude Code loads it when a task matches its description.

How do I install Instagram API in Codex?

Run `npx skills add ericrisco/rsc-harness --skill instagram-api -a codex`. Or copy the skill folder (skills/instagram-api in ericrisco/rsc-harness) into .agents/skills/instagram-api in your project. Codex loads it when a task matches its description.

Can I use Instagram API in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill instagram-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/instagram-api, .gemini/skills/instagram-api, .github/skills/instagram-api and .opencode/skills/instagram-api in your project.

What does Instagram API need to run?

Going by SKILL.md and its folder, Instagram API needs a shell for the scripts in its folder, the command-line tools its instructions call (curl) and credentials named IG_ACCESS_TOKEN. Our summary lists: Python 3; A Bash shell; A credential in IG_ACCESS_TOKEN.

Does Instagram API access the network?

SKILL.md names 1 domain. In commands or code: instagram.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Instagram API safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Instagram API use?

Instagram API is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Instagram API use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.

What are the alternatives to Instagram API?

Skills that share tags, products or a category with Instagram API: Bulkpublish Social Scheduling (davepoon/buildwithclaude, 3.6k stars), Social Publisher (claude-office-skills/skills, 498 stars), Cross Platform Reformatter (Ootto-AI/claude-content-skills, 101 stars) and Influencer Discovery (tigerless-labs/influencer-discovery, 211 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Instagram API?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.