# Instagram Comment Replies & Likers Scraper (`seemuapps/instagram-comment-replies-scraper`) Actor

Scrape every reply under Instagram comments and the users who liked them - reply text, timestamps, and author profiles from any public post.

- **URL**: https://apify.com/seemuapps/instagram-comment-replies-scraper.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** Social media, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 reply scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram Comment Replies & Likers Scraper

Extract every reply under the comments of any public Instagram post or Reel — or the full list of users who liked each comment. No login required, just paste the post URL.

### What you get

**Replies mode** — one record per reply:

- Reply text, like count, and timestamp (ISO date + Unix timestamp)
- The parent comment ID and a snippet of the parent comment text, so you always know which thread the reply belongs to
- Reply author profile: username, full name, user ID, verified badge, private-account flag, and profile picture URL
- Post ID, shortcode, and URL on every record

**Comment likers mode** — one record per liker:

- Username, full name, user ID, verified badge, private-account flag, and profile picture URL of every user who liked the comment
- The comment ID and post shortcode/URL on every record

Export everything to JSON, CSV, Excel, or Google Sheets directly from the Apify console.

### Use cases

- Audience research — find the most engaged users inside a post's comment threads
- Lead generation — collect the accounts replying to or liking comments on competitor posts
- Community management — pull full reply threads for sentiment analysis and moderation
- Influencer vetting — see who actually engages with a creator's comment section
- Giveaway and contest verification — list everyone who liked a specific comment

### How to use

1. Paste the Instagram post or Reel URL (or just its shortcode) into **Post URL**
2. Pick a **Mode**: **Comment replies** (default) or **Comment likers**
3. Optionally paste specific **Comment IDs** — leave empty to auto-discover the post's top-level comments and process them all
4. Set **Max Items** (default 500; set 0 for unlimited)
5. Run the actor — results appear in the **Dataset** tab

#### Fetching more pages

Large posts can hold more replies or likers than fit in one run. After the run finishes, open the **Key-value store** tab → copy the `NEXT_PAGE_ID` value → paste it into **Page ID** on your next run to resume exactly where the previous run stopped. If `NEXT_PAGE_ID` is `null`, you've fetched everything.

### Output format

Replies mode:

```json
{
  "replyId": "18104716301165668",
  "text": "@disney So enemies beware",
  "likeCount": 12,
  "createdAt": "2026-08-07T02:49:44.000Z",
  "createdAtTimestamp": 1786070984,
  "parentCommentId": "18098751365613581",
  "parentCommentText": "He's gonna be a mighty king",
  "postId": "3957463127796339198",
  "postShortcode": "Dbru79IAdH-",
  "postUrl": "https://www.instagram.com/p/Dbru79IAdH-/",
  "userId": "544460163",
  "username": "marvelloustej",
  "fullName": "Tej Kowlessar",
  "isVerified": false,
  "isPrivate": false,
  "profilePicUrl": "https://..."
}
```

Comment likers mode:

```json
{
  "userId": "46343129662",
  "username": "one_continuous_cut",
  "fullName": "One Continuous Cut",
  "isPrivate": false,
  "isVerified": false,
  "profilePicUrl": "https://...",
  "commentId": "18098751365613581",
  "postId": "3957463127796339198",
  "postShortcode": "Dbru79IAdH-",
  "postUrl": "https://www.instagram.com/p/Dbru79IAdH-/"
}
```

### FAQ

**Does it work on private accounts?** No — only public posts and Reels.

**Where do I find a comment ID?** Run the auto-discover mode once (or use an Instagram comments scraper) — every comment record includes its ID. You can then feed specific IDs back into **Comment IDs** to target single threads.

**Why fewer replies than the reply counter shows?** Instagram sometimes hides collapsed, restricted, or spam-filtered replies; the actor returns every reply Instagram exposes publicly.

# Actor input Schema

## `postUrl` (type: `string`):

Instagram post or Reel - paste the full URL (e.g. https://www.instagram.com/reel/Dbru79IAdH-/) or just the shortcode (Dbru79IAdH-).

## `mode` (type: `string`):

What to scrape for each comment: 'Comment replies' collects the reply threads under comments; 'Comment likers' collects the users who liked each comment.

## `commentIds` (type: `array`):

Optional list of specific comment IDs to process (e.g. 18098751365613581). Leave empty to auto-discover the post's top-level comments and process those.

## `maxItems` (type: `integer`):

Maximum number of records (replies or likers) to scrape. Set 0 for unlimited (runs until the post is exhausted or the actor times out).

## `pageId` (type: `string`):

Optional. Paste NEXT\_PAGE\_ID from the previous run's Key-value store to resume where the last run stopped.

## Actor input object example

```json
{
  "postUrl": "https://www.instagram.com/reel/Dbru79IAdH-/",
  "mode": "replies",
  "maxItems": 500
}
```

# Actor output Schema

## `results` (type: `string`):

Replies mode: replyId, text, likeCount, createdAt, createdAtTimestamp, parentCommentId, parentCommentText, postId, postShortcode, postUrl, userId, username, fullName, isVerified, isPrivate, profilePicUrl. Likers mode: userId, username, fullName, isPrivate, isVerified, profilePicUrl, commentId, postId, postShortcode, postUrl.

## `nextPageId` (type: `string`):

NEXT\_PAGE\_ID record in the default key-value store. Paste into Page ID on the next run to resume; null when everything is fetched.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "postUrl": "https://www.instagram.com/reel/Dbru79IAdH-/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/instagram-comment-replies-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "postUrl": "https://www.instagram.com/reel/Dbru79IAdH-/" }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/instagram-comment-replies-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "postUrl": "https://www.instagram.com/reel/Dbru79IAdH-/"
}' |
apify call seemuapps/instagram-comment-replies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/instagram-comment-replies-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vdggoWH56mJMKDJ8w/builds/P1OzVlQJDhBKmPLqF/openapi.json
