Instagram MCP Server — Profiles, Posts, Reels, Comments avatar

Instagram MCP Server — Profiles, Posts, Reels, Comments

Pricing

from $4.00 / 1,000 instagram results

Go to Apify Store
Instagram MCP Server — Profiles, Posts, Reels, Comments

Instagram MCP Server — Profiles, Posts, Reels, Comments

One MCP-ready Instagram Actor for public profiles, posts, Reels, and comments. Cookieless ScrapeCreators + SociaVault providers, no login. Returns structured JSON with provenance. $0.004 per result.

Pricing

from $4.00 / 1,000 instagram results

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Call one Apify Actor as an MCP tool and pick tool: profile, posts, reels, or comments. You get public Instagram JSON (handle, URL, caption, counts, comment text) with provider provenance. No Instagram login or cookies. Charged $0.004 per saved row.

Built for creator researchers, social-listening agents, and lead-gen workflows that already know a handle or a post URL and need structured public data—not a follower graph or a native hashtag feed.

Best fit for this Actor

  • Strongest starting condition: a public handle (natgeo) or a public /p/ or /reel/ URL.
  • Useful output: one billed row per profile, media item, or comment, plus OUTPUT.outcome so an agent can tell complete vs empty vs invalid.
  • Adjacent jobs: use Instagram Hashtag Scraper for hashtag posts, or Instagram Highlights Scraper for story highlights.

When to use this Actor

  • You want one MCP tool covering four public Instagram jobs instead of wiring four Actors.
  • You need cookieless, login-free public data with a named outcome (COMPLETE, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED).
  • When you need hashtag feeds, follower identities, likes, or private accounts, this Actor is the wrong tool — hashtag search is not returned by the current public-data providers, and follower graphs are login-gated.

Workflow story: from a creator handle to outreach notes

A freelance brand strategist pastes natgeo into tool=profile with maxResults=1. The run returns one row: username, follower count, biography, verification, and profileUrl. She then runs tool=posts on the same handle with maxResults=5 to grab recent captions and like counts for a moodboard brief. Event cost is a few cents; she never logs into Instagram. If she later needs comments on a specific Reel, she switches tool=comments and passes that Reel URL.

Quick start input

{
"tool": "profile",
"usernames": ["natgeo"],
"maxResults": 1
}

That input is the quality-test prefill: one public profile, one billed row, well under five minutes.

Input reference

FieldTypeWhat it controls
toolenumprofile, posts, reels, or comments. Default profile.
usernamesarrayHandles or profile URLs for profile/posts/reels. Example: natgeo.
postUrlsarrayPost/Reel URLs for comments. Example: https://www.instagram.com/reel/DOq6eV6iIgD/.
maxResultsintegerRun-wide billed-row cap, 1–200, default 12, prefill 1.
maxResultsPerTargetintegerPer-target cap, 1–50, default 12.
providerOrderenumscrapecreators-first (default) or pin one provider.
includeRawDatabooleanAdds bulky raw payloads. Default false.

mode is accepted as an alias of tool for older agent prompts.

What data you receive

One dataset item is one public Instagram entity. Profile rows carry identity and counts; media rows carry URL, caption, and metrics; comment rows carry text and commenter handle.

{
"tool": "profile",
"status": "OK",
"username": "natgeo",
"fullName": "National Geographic",
"followersCount": 280000000,
"isVerified": true,
"profileUrl": "https://www.instagram.com/natgeo/",
"provider": "scrapecreators",
"scrapedAt": "2026-08-18T11:24:00.000Z"
}

Every terminal run also writes OUTPUT and RUN_SUMMARY with outcome, itemsPushed, provider attempts, and chargedEventCounts.

Use through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~instagram-mcp-server/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool":"profile","usernames":["natgeo"],"maxResults":1}'

Read items from the run's default dataset. Check OUTPUT.outcome before treating an empty dataset as a failure.

Use with AI agents through Apify MCP

Scrape the public Instagram profile for natgeo. Use khadinakbar/instagram-mcp-server with tool=profile, usernames=["natgeo"], maxResults=1. Return username, followersCount, biography, profileUrl, and the OUTPUT.outcome. Do not request hashtags, followers, or private data.

Point the agent at Apify MCP. Inspect OUTPUT.outcome (COMPLETE vs VALID_EMPTY vs INVALID_INPUT) before chaining another tool. Bound maxResults so spend stays predictable at $0.004 per row.

Connect the workflow

Pricing

Pay per event + platform usage. Open the live Pricing tab for current event details. apify-actor-start is $0.00005. Each saved row charges ig-result at $0.004. Platform usage is paid by the user (isPPEPlatformUsagePaidByUser: true). Empty matches and invalid input are not billed as results. maxResults is the spend guard.

Saved rowsEvent cost (start + ig-result)
1 (prefill / MCP probe)$0.00005 + $0.004 = $0.00405 plus compute
12 (default cap)$0.00005 + $0.048 = $0.04805 plus compute
50$0.00005 + $0.200 = $0.20005 plus compute

Best results

  • Prefer official public handles over unofficial fan pages.
  • Cap maxResults at 1–12 for MCP probes.
  • Use providerOrder=sociavault-first only when debugging a ScrapeCreators outage.
  • A 404 handle is VALID_EMPTY, not a platform failure.
  • For hashtags, call Instagram Hashtag Scraper instead of tool=hashtag here.

Builder's note

Instagram's public web endpoints block datacenter scrapers. This Actor does not wrap other Store Actors (that would double-bill the owner). It calls ScrapeCreators first and SociaVault as fallback, the same provider pair used on the portfolio's other Instagram tools. Hashtag search was probed live and dropped from the public contract: ScrapeCreators /v1/instagram/search/hashtag currently returns not_found / "No posts found" for common tags, and SociaVault has no Instagram hashtag route. Follower lists are omitted for the same reason: neither provider exposes a public follower graph in the current snapshot.

Public data only. Respect Instagram's Terms of Use and applicable law. This is not an official Instagram API and not a substitute for Meta's Graph API. Private accounts return limited public metadata or nothing. Open an Issue on the Actor page for support.

Changelog

  • 0.1.2 — Removed the advertised hashtag tool after live provider probes returned empty (not_found) on ScrapeCreators and no matching SociaVault route. Public contract is now profile, posts, reels, comments.
  • 0.1 — Initial private release. Dual providers, PPE ig-result $0.004, OUTPUT/RUN_SUMMARY outcome contract.