Instagram Comments Scraper avatar

Instagram Comments Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Instagram Comments Scraper

Instagram Comments Scraper

Scrape public Instagram post comments and turn them into structured rows with usernames, timestamps, engagement counts, owner metadata, and direct comment URLs.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

APISmith

APISmith

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape public Instagram post comments and turn them into structured rows with usernames, timestamps, engagement counts, owner metadata, and direct comment URLs.

Paste one or more Instagram post URLs, run the Actor, and export the comments to JSON, CSV, or your workflow without manually opening each post in a browser.

What you get

For each public Instagram post URL you submit, the Actor returns a batch of comment records with:

  • comment text and direct comment URL
  • username, user ID, and owner profile metadata
  • created timestamp and comment engagement counts

Why use this Actor

  • Pull comments from multiple Instagram posts in one run instead of opening each post manually.
  • Collect comments in a structured format for analysis, moderation, reporting, or downstream AI workflows.
  • Keep the output easy to export and integrate into spreadsheets, scripts, dashboards, and APIs.
  • Handle multiple URLs in one batch without needing a browser session.

Short output example

[
{
"id": "18099948950110378",
"comment_url": "https://www.instagram.com/p/DcvbKxGlSm7/c/18099948950110378",
"text": "My friends who buy fr SHEIN never once say the quality is good",
"user_id": "286570646",
"username": "3388boo",
"created_at": 1788258442,
"child_comment_count": 0,
"comment_like_count": 12,
"owner": {
"id": "286570646",
"username": "3388boo",
"full_name": "3388boo",
"is_private": true,
"is_verified": false,
"profile_pic_url": "https://..."
},
"input_url": "https://www.instagram.com/p/DcvbKxGlSm7",
"errMsg": "",
"timestamp": "2026-09-14T06:16:14.821Z"
}
]

Quick start

  1. Open the Actor in Apify Console.
  2. Add one or more public Instagram post URLs in videoUrls.
  3. Set resultsLimit to the maximum number of comments you want per URL.
  4. Click Start.
  5. Open the Dataset when the run finishes and export the results.

Example input:

{
"videoUrls": [
"https://www.instagram.com/p/DcvbKxGlSm7"
],
"resultsLimit": 14
}

Input

The Actor accepts a JSON object with the exact fields below.

{
"videoUrls": [
"https://www.instagram.com/p/DcvbKxGlSm7"
],
"resultsLimit": 20
}

Input fields

FieldTypeRequiredDefaultDescription
videoUrlsarray of stringsYesNonePublic Instagram post or reel URLs to scrape comments from.
resultsLimitintegerYes14Maximum number of comment results to return per URL. The code enforces a hard cap of 100.

Notes:

  • videoUrls is processed one by one in a single run.
  • Invalid or empty URLs are recorded with an errMsg instead of silently disappearing.
  • A batch can contain several URLs; each URL is processed independently.

Output

The Actor pushes a dataset item for each comment, and it also includes an error row if an input URL is empty or unreachable.

Output fields

FieldTypeDescription
idstringComment ID from Instagram.
comment_urlstringDirect comment URL.
textstringComment text.
user_idstringComment author user ID.
usernamestringComment author username.
created_atnumberUnix timestamp for comment creation.
child_comment_countnumberNumber of replies attached to the comment.
comment_like_countnumberNumber of likes on the comment.
ownerobjectNested metadata for the comment author, including profile details and verification status.
input_urlstringOriginal post URL passed to the Actor.
errMsgstringError message for invalid or empty input; empty string on successful records.
timestampstringISO timestamp when the result was recorded.

Common use cases

  • Social listening — collect comment sentiment and discussion around public Instagram posts.
  • Creator research — track recurring reactions and community feedback on content you follow.
  • Brand monitoring — review public responses to campaigns, product launches, or announcements.
  • Moderation support — review large comment volumes in a structured format for reporting or triage.
  • AI workflows — feed extracted comment text and metadata into downstream classification, summarization, or search pipelines.

Pricing

This Actor follows the standard Apify pricing model for the run. The runtime cost depends on your Apify plan and the current pricing shown in Apify Console, not on a custom per-comment fee coded in the Actor itself.

For a predictable estimate, check the pricing page in the Apify Console before running large batches. The Actor does not add a separate hidden fee per result.

API and automation

You can run this Actor through the Apify API and connect it to scheduled jobs, exports, or downstream automation.

curl "https://api.apify.com/v2/acts/instagram-comments-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"videoUrls": [
"https://www.instagram.com/p/DcvbKxGlSm7"
],
"resultsLimit": 20
}'

JavaScript example:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('instagram-comments-scraper').call({
input: {
videoUrls: ['https://www.instagram.com/p/DcvbKxGlSm7'],
resultsLimit: 20,
},
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python example:

import os
from apify_client import ApifyClient
client = ApifyClient(token=os.environ['APIFY_TOKEN'])
run = client.actor('instagram-comments-scraper').call(
input={
'videoUrls': ['https://www.instagram.com/p/DcvbKxGlSm7'],
'resultsLimit': 20,
}
)
items = client.dataset(run['defaultDatasetId']).list_items()
print(items['items'][:5])

FAQ

Can I scrape comments from multiple posts in one run?

Yes. Add several URLs to videoUrls and the Actor will process each URL sequentially in the same run.

Does it work with private or login-gated Instagram posts?

No. This Actor targets public Instagram post URLs. Private, hidden, or login-restricted content may return no data or an error record.

What happens if a URL is invalid or empty?

The Actor records the input with an errMsg instead of silently dropping it, so you can see exactly what failed.

Is there a hard limit on the number of comments returned?

Yes. resultsLimit is the per-URL ceiling.

Limitations

  • Public Instagram post URLs only; private or login-restricted content is not supported.
  • Some posts may return no comments or empty data depending on Instagram availability.
  • The implementation reads comments from the provided post URLs; it does not crawl an entire account or profile feed.
  • The results are constrained by Instagram response availability and the resultsLimit cap.

Responsible use

Use this Actor only for public data you are permitted to access and process. Make sure your usage complies with Instagram's terms, applicable privacy laws, and relevant platform policies.

Support

Need help or want to report an issue? Contact support@apismith.online.

When reporting a bug, include the Apify Run ID, the related input URL, the returned status or errMsg, and any non-sensitive data needed to reproduce the issue. Do not send tokens, cookies, passwords, or authorization headers.