# Instagram Comments Extractor | No Cookies (`krazee_kaushik/instagram-comments-extractor`) Actor

Scrape comments from multiple Instagram posts and reels using URLs or shortcodes. No Instagram cookies required. Compatible with our Instagram Bulk Profile Scraper for enriching thousands of unique commenters using a Dataset ID. Starting at $0.50/1,000 comments.

- **URL**: https://apify.com/krazee\_kaushik/instagram-comments-extractor.md
- **Developed by:** [Krazee](https://apify.com/krazee_kaushik) (community)
- **Categories:** AI, Lead generation, Social media
- **Stats:** 4 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 instagram comment scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### 💬 What is Instagram Comments Extractor?

Instagram Comments Extractor helps you scrape comments from public Instagram posts and Reels at scale.

Scrape comments from one or multiple posts or Reels with configurable comment limits and sorting options.

Simply add one or more Instagram post or Reel URLs (or shortcodes), click **"Save & Start"**, and start collecting Instagram comment data.

---

### ⭐ Why Use This Actor?

- 🔓 No Instagram logins, cookies, sessions, or API access required

- ⚡ Configure comment limits and sort comments by Popular, Recent, or Verified

- 🤳 Enrich commenters with profile data with our [Instagram Bulk Profile Scraper](https://apify.com/krazee_kaushik/instagram-bulk-profile-scraper)

- 🛡️ Supports Apify resurrect runs so interrupted jobs can continue from where they stopped

---

### 📊 What Data Can You Extract?

Each comment includes:

- 💬 Comment text, timestamps, like counts, reply counts, and edit status
- 👤 Author information including username, profile picture, verified status, and Instagram user ID
- 🧵 Conversation structure such as parent comment IDs and reply relationships
- 🌐 Additional Instagram metadata including translation availability, restriction status, and other related metadata

The actor returns one dataset item per comment.

---

### 🚀 Quick Start

Use Instagram post or Reel URLs (or shortcodes) as input.

```json
{
  "posts": [
    "https://www.instagram.com/p/DY_lOd9TdJr/"
  ]
}
````

By default, the actor collects up to **50 comments per post or reel** and uses Instagram's **Popular** comment sorting. You can customize these settings using the input options.

***

### ⚙️ Input Options

| Input | Type | Description |
|---|---|---|
| `posts` | array | Instagram post or Reel URLs, or Instagram shortcodes to scrape |
| `commentsPerPost` | number | Maximum number of comments to collect per post |
| `commentsSortOrder` | string | Sort comments by `recent` or `popular` |

***

### Output Example

```json
{
  "id": null,
  "pk": "17972395896049317",
  "text": "♥️♥️",
  "created_at": 1780394898,
  "scraped_at": "2026-06-02T10:33:42.353614+00:00",
  "is_edited": false,
  "comment_like_count": 0,
  "has_liked_comment": false,
  "child_comment_count": null,
  "parent_comment_id": null,
  "is_covered": false,
  "restricted_status": null,
  "has_translation": null,
  "giphy_media_info": null,
  "fallback_user_info": null,
  "__typename": "XDTCommentDict",
  "user": {
    "id": "76868593162",
    "pk": "76868593162",
    "username": "burnwal8882_abhijit",
    "profile_pic_url": "https://scontent-ord5-3.cdninstagram.com/v/t51.82787-19/702094898_17883712605561163_3017906907419372062_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=109&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=NoZbf6gfFHoQ7kNvwEWclZ5&_nc_oc=AdqbSu3eCGLRrdkkOuMsFhWasaTHcKfFmx9dluKKjBpyRjvWBVo1EVZk1YosbnrLYK8&_nc_zt=24&_nc_ht=scontent-ord5-3.cdninstagram.com&_nc_gid=VsCNr4-i04FIdqiSvZUqhA&_nc_ss=7fa8c&oh=00_Af_lA3TW9MNY5E8Q6EyKNj8s4Bpl_UHbCbK_i9fM3v-FZQ&oe=6A24730C",
    "is_verified": false,
    "is_unpublished": false,
    "fbid_v2": "17841476834868574"
  }  
}
```

***

### 🤳 Turn Commenters Into Profile Datasets

The resulting dataset can be used directly with our Instagram Bulk Profile Scraper.

Simply paste the Dataset ID from this actor into the [Bulk Profile Scraper](https://apify.com/krazee_kaushik/instagram-bulk-profile-scraper) to automatically enrich unique commenters with profile metrics, engagement statistics, business information, bio data, links, and audience insights.

This makes it easy to transform Instagram conversations into structured datasets for audience research, influencer discovery, lead generation, and automation workflows.

***

### 💰 How Much Does It Cost?

|  | Free Apify Users | Paid Apify Users |
|---|---|---|
| **Pricing** | $1 per 1,000 comments | $0.50 per 1,000 comments |
| **Posts / Reels per Run** | Up to 1 | Multiple supported |
| **Testing** | Includes a small allowance for testing | No testing limits |
| **Best For** | Trying the actor and small runs | Larger scraping jobs |

💡 Start with a small test run to verify the output structure and estimate usage before scaling up.

Upgrade your Apify subscription to unlock lower pricing and higher limits: https://apify.com/pricing

***

### ⚠️ Limitations & Troubleshooting

- **Public content only**\
  Only public Instagram posts, Reels, and publicly visible comments can be scraped.

- **Unavailable content cannot be accessed**\
  Private, deleted, age-restricted, unavailable, or region-restricted posts are not accessible.

- **Comment availability varies**\
  Some posts may contain fewer public comments than the requested limit.

- **Comment ordering may differ from Instagram**\
  Results depend on the selected sorting option and the comment data available from Instagram.

- **Large runs may take longer to complete**\
  Processing thousands of comments across multiple posts can increase runtime.

- **Monitor progress in Logs**\
  Open the actor run and check the **Logs** tab to track processed posts, collected comments, and any warnings generated during execution.

***

### ❓ Frequently Asked Questions

#### What Instagram content can be scraped?

The actor supports public Instagram posts and Reels provided as URLs or Instagram shortcodes.

#### Can I scrape multiple posts or Reels in a single run?

Yes. Add multiple post or Reel URLs to the input and the actor will process them in one run.

#### Can I control how comments are sorted?

Yes. Comments can be collected using Instagram's available sorting options, including Popular, Recent, and Verified.

#### What data is returned for each comment?

Each comment includes the comment text, engagement metrics, timestamps, author information, conversation structure, and additional Instagram metadata.

#### Can I enrich commenters with profile data?

Yes. The resulting dataset can be passed directly to the Instagram Bulk Profile Scraper to enrich unique commenters with profile metrics, audience insights, business information, and more.

#### Does the actor support interrupted runs?

Yes. The actor supports Apify resurrect runs, allowing interrupted jobs to continue from their previous progress point.

***

### 💬 Support

Check the troubleshooting section above before opening an issue.

For bug reports, scraping issues, or feature requests, please open an [issues](https://console.apify.com/organization/XjtvaC9MoQZuFl4Da/actors/We2axPP3LqNTebMMu/issues) on the actor page.

If you need custom scraper modifications, automation workflows, or additional extraction features, feel free to contact:

📧 kamakrazeekaushik@gmail.com

When reporting issues, please include the Actor Run ID or relevant run logs to help speed up debugging.

***

### 🔗 Related actors

- 🤳 [Instagram Bulk Profile Scraper](https://apify.com/krazee_kaushik/instagram-bulk-profile-scraper) - Bulk scrape and enrich thousands of Instagram profiles using the dataset ID from this actor's run.

- 📸 [Instagram Profile Posts & Comments Scraper](https://apify.com/krazee_kaushik/instagram-profile-posts-and-comments-scraper) - Scrape Instagram posts from multiple profiles in a single run and optionally collect comments for every post with configurable limits and sorting options.

- 🧵 [X Thread & Reply Scraper](https://apify.com/krazee_kaushik/x-thread-scraper) - Scrape X threads with nested replies and conversation structure.

# Actor input Schema

## `posts` (type: `array`):

Enter one or more Instagram post or reel URLs or shortcodes.

## `commentsPerPost` (type: `integer`):

Number of comments to scrape for each post.

## `commentsSortOrder` (type: `string`):

Choose how comments should be ordered before scraping.

## Actor input object example

```json
{
  "posts": [
    "https://www.instagram.com/instagram/"
  ],
  "commentsPerPost": 50,
  "commentsSortOrder": "popular"
}
```

# Actor output Schema

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

No description

# 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 = {
    "posts": [
        "https://www.instagram.com/instagram/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("krazee_kaushik/instagram-comments-extractor").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 = { "posts": ["https://www.instagram.com/instagram/"] }

# Run the Actor and wait for it to finish
run = client.actor("krazee_kaushik/instagram-comments-extractor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "posts": [
    "https://www.instagram.com/instagram/"
  ]
}' |
apify call krazee_kaushik/instagram-comments-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=krazee_kaushik/instagram-comments-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Comments Extractor | No Cookies",
        "description": "Scrape comments from multiple Instagram posts and reels using URLs or shortcodes. No Instagram cookies required. Compatible with our Instagram Bulk Profile Scraper for enriching thousands of unique commenters using a Dataset ID. Starting at $0.50/1,000 comments.",
        "version": "0.0",
        "x-build-id": "yjsrVFhyNpn6ELHea"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/krazee_kaushik~instagram-comments-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-krazee_kaushik-instagram-comments-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/krazee_kaushik~instagram-comments-extractor/runs": {
            "post": {
                "operationId": "runs-sync-krazee_kaushik-instagram-comments-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/krazee_kaushik~instagram-comments-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-krazee_kaushik-instagram-comments-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "posts"
                ],
                "properties": {
                    "posts": {
                        "title": "Post/Reels URLs or shortcodes (ex. DY_lOd9TdJr)",
                        "type": "array",
                        "description": "Enter one or more Instagram post or reel URLs or shortcodes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "commentsPerPost": {
                        "title": "Comments Per Post",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of comments to scrape for each post.",
                        "default": 50
                    },
                    "commentsSortOrder": {
                        "title": "Comments Sort Order",
                        "enum": [
                            "popular",
                            "recent",
                            "verified"
                        ],
                        "type": "string",
                        "description": "Choose how comments should be ordered before scraping.",
                        "default": "popular"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
