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

Get public Instagram profiles, posts, Reels and comments from one Actor built for Apify MCP. Returns structured JSON with provenance, with no login or cookies.

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

Instagram MCP Server — Profiles Posts Reels Comments

This Apify Actor gives researchers, automations, and AI agents one MCP-ready way to work with public Instagram profiles, posts, Reels, and comments. It accepts a public handle, profile URL, post URL, or Reel URL based on the selected tool, and each dataset row represents one public Instagram record. Useful fields include username, profileUrl, url, shortcode, caption, text, followersCount, likeCount, provider, and scrapedAt, with status marking a usable public row. The outcome is structured JSON with provenance, plus named OUTPUT and RUN_SUMMARY records for downstream decision-making.

Best fit and connected workflows

This Actor fits workflows that begin with a known public Instagram target and need one public-data tool for four common jobs:

  • Profile enrichment from a public handle or profile URL.
  • Public posts or Reels from a public handle.
  • Public comments from a public post or Reel URL.
  • MCP-based agent workflows that need one stable output contract with provider provenance.

Instagram MCP Server — Profiles Posts Reels Comments is designed as a focused standalone workflow.

Practical scenario

Maya, a social media analyst, starts with the public handle natgeo. She runs tool=profile and receives username, followersCount, profileUrl, provider, and scrapedAt. That gives her a clean public identity record for her notes. Next, she switches to tool=posts for the same handle to collect recent captions and media URLs for a content review. Her next step is to summarize the public themes from those rows and, if she needs discussion context, call tool=comments on a specific public Reel URL.

Input fields

FieldTypePurpose
toolstring enumSelects profile, posts, reels, or comments. Defaults to profile.
usernamesarray of stringsPublic handles or profile URLs for profile, posts, and reels.
postUrlsarray of stringsPublic post or Reel URLs for comments.
maxResultsintegerHard cap on billed dataset rows for the run, 1-200.
maxResultsPerTargetintegerPer-handle or per-post cap, 1-50.
providerOrderstring enumProvider preference order, including the routing options listed in the input schema.
includeRawDatabooleanAdds the raw provider payload to each row when enabled.

Focused JSON example

{
"tool": "posts",
"usernames": ["nasa"],
"maxResults": 3,
"maxResultsPerTarget": 3,
"includeRawData": false
}

Output fields

The default dataset stores one row per profile, post, Reel, or comment. The named records in the key-value store provide run-level context for agents.

Output recordMeaning
datasetThe default dataset with public Instagram rows.
outputCompact outcome data, item counts, and charged events.
runSummaryProvider diagnostics, stop reason, and estimated PPE cost.

Illustrative JSON record

{
"tool": "profile",
"status": "OK",
"username": "natgeo",
"profileUrl": "https://www.instagram.com/natgeo/",
"followersCount": 0,
"scrapedAt": "2026-08-18T11:24:00.000Z"
}

How it works

This Actor uses owner-configured public-data providers and returns structured JSON with provenance. The live contract lists the primary and fallback data providers, with the default provider order as the default order and fallback to the fallback data provider. You can pin a single provider with a -only value. When includeRawData is enabled, each row also stores the unmodified provider payload under raw.

The dataset schema includes tool, status, username, profileUrl, url, shortcode, caption, followersCount, likeCount, text, provider, and scrapedAt.

Pricing

Instagram MCP Server — Profiles Posts Reels Comments uses Pay per event with Apify platform usage included. The live Pricing tab in Apify Console is the source of truth for current pricing details.

The charged events in the live contract are:

  • apify-actor-start
  • ig-result, one charged event for each public Instagram result row saved to the dataset

As an event-count example in words: one probe that returns one public row charges one actor start event and one Instagram result event. A larger run charges one Instagram result event for each saved public row.

Use with AI agents (MCP)

This Actor is usable through Apify MCP as a structured Instagram tool for public profiles, posts, Reels, and comments. The exact Actor identity is khadinakbar/instagram-mcp-server.

Scrape the public profile for natgeo with khadinakbar/instagram-mcp-server. Use tool=profile, usernames=["natgeo"], and maxResults=1. Return the username, followersCount, profileUrl, provider, and the OUTPUT record so I can see the outcome and provenance.

Output interpretation and provenance:

  • dataset contains the public rows.
  • output provides the named outcome contract for the run.
  • runSummary adds provider diagnostics, stop reason, and estimated PPE cost.
  • provider identifies the public-data source that supplied each row.
  • scrapedAt shows when the row was written in UTC.

For pagination and cost control, keep maxResults and maxResultsPerTarget aligned with the amount of public data you want to read. The dataset is row-based, so each additional saved row corresponds to another billed public result.

Apify API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor("khadinakbar/instagram-mcp-server").call({
tool: "profile",
usernames: ["natgeo"],
maxResults: 1,
});
const datasetId = run.defaultDatasetId;
const { items } = await client.dataset(datasetId).listItems();
console.log(items);

Best results and outcome guidance

  • Start with a public handle when you need profile, posts, or reels.
  • Use a public post or Reel URL when you need comments.
  • Keep maxResults small for MCP probes and first-pass checks.
  • Review OUTPUT and RUN_SUMMARY before chaining downstream steps.
  • Use providerOrder when you want a preferred public-data source order.
  • Enable includeRawData only when the raw provider payload is useful to your workflow.

Focused standalone workflow

Instagram MCP Server — Profiles Posts Reels Comments is designed as a focused standalone workflow.

Design note

I found that the live dataset contract is intentionally compact: it centers on tool, status, source identity, canonical URLs, counts, provenance, and scrapedAt, which makes each row easy for agents to read and pass downstream.

FAQ

Which input should I use for a profile lookup?

Use tool=profile with a public handle or profile URL in usernames.

Which input should I use for public comments?

Use tool=comments with one or more public post or Reel URLs in postUrls.

Which input should I use for recent public media from a handle?

Use tool=posts or tool=reels with the public handle in usernames.

How do I keep agent runs small and predictable?

Set maxResults to the smallest number of public rows you need, and use maxResultsPerTarget to narrow each handle or post.

Where do I check run outcome and provider details?

Read the OUTPUT and RUN_SUMMARY records in the default key-value store.

Is this Actor usable through Apify MCP?

Yes. It is an Apify Actor usable through Apify MCP, and it also works through the Apify API.

Responsible use

Instagram is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by Instagram.

Use public information in line with applicable law and the platform's terms. This Actor works with public profiles, posts, Reels, and comments returned by the configured public-data providers. It is designed for public-data workflows and provenance-aware agent use.