Instagram Commenters & Engaged Audience Scraper avatar

Instagram Commenters & Engaged Audience Scraper

Pricing

$1.90 / 1,000 engaged users

Go to Apify Store
Instagram Commenters & Engaged Audience Scraper

Instagram Commenters & Engaged Audience Scraper

Enter an Instagram username and get one row per unique person who commented on its recent posts. No post URLs needed.

Pricing

$1.90 / 1,000 engaged users

Rating

0.0

(0)

Developer

Zapticx

Zapticx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

Enter a username. Get people, not comments.

Most Instagram comment scrapers make you collect post URLs first. This one takes natgeo — or @natgeo, or a profile URL — finds the profile's recent posts and reels automatically, reads the comments, and returns one row per unique person.

Someone who comments five times on one post and twice on another is one row with engagementCount: 7 and postsEngagedWith: 2 — not seven rows you pay for seven times.

What you get

  • One row per unique person, deduplicated by numeric Instagram user ID
  • Repeat-engagement signal — engagementCount, postsEngagedWith, isRepeatEngager
  • Verified and private flags on every row, so you can filter to reachable accounts
  • The profile's own comments excluded by default — brands pin comments to their own posts, and you don't want the target inside its own audience list
  • An honest run summary — posts scanned, duplicates removed, and how many replies existed that were not fetched

Use cases

  • Competitor audience research — who actually engages with a rival brand
  • Lead generation — an active commenter beats a dormant follower
  • Influencer audience analysis — who shows up in the comments, and how often
  • Community research — find and rank your most repeat-engaged people
  • Repeat-engager identification — sort an audience by real activity
  • Social media market research — sample a niche through its commenters

What this Actor does not claim

This Actor returns observed commenters from the posts sampled at run time — not followers, and not a complete audience. Instagram does not expose "everyone who engages with an account", so no follower-coverage percentage is reported and none should be inferred. Run it again tomorrow and the posts, and therefore the people, will legitimately differ.

This is not a follower scraper.

Replies are not collected in this version. The run summary always reports repliesAvailableNotFetched so you can see exactly what was left out.

Input

{
"username": "natgeo",
"maxPosts": 3,
"maxCommentsPerPost": 50
}
FieldDescription
usernamePublic Instagram profile to analyse. Accepts natgeo, @natgeo or a profile URL. Post URLs are rejected — this Actor finds the posts for you.
maxPostsHow many of the profile's most recent posts and reels to read comments from. More posts means a larger audience and a higher cost.
maxCommentsPerPostUpper bound on comments read from each post. Popular posts can have thousands; this caps cost per post. Typical values: 25, 50, 100, 200.
excludeSourceAccountAccounts frequently comment on and pin comments to their own posts. Leave enabled so the target does not appear in its own audience list.
includeCommentTextAdds every comment each person wrote. Off by default — this Actor is audience-focused, not comment-analysis focused.
includeProfileDetailsAdds bio, follower counts and public email where available. Not available in this version.
includeRepliesNot available in this version. Replies are never included in Instagram's top-level comment response; the run summary always reports how many existed.

Output

One row per unique engaged user:

{
"username": "example_user",
"userId": "58632251513",
"fullName": "Example User",
"profileUrl": "https://www.instagram.com/example_user/",
"isVerified": false,
"isPrivate": false,
"engagementCount": 4,
"postsEngagedWith": 2,
"isRepeatEngager": true,
"engagementType": "comment",
"sourcePostUrls": ["https://www.instagram.com/p/XXXXXXXXXXX/"],
"firstObservedAt": "2026-09-10T16:53:07.000Z",
"lastObservedAt": "2026-09-14T08:12:00.000Z",
"sourceUsername": "natgeo",
"sampledPosts": 3,
"collectedAt": "2026-09-17T12:02:38.000Z"
}
FieldMeaning
userIdNumeric Instagram user ID, as a string — the deduplication key
username, fullName, profileUrl, profilePicUrlPublic profile identity
isVerified, isPrivateAccount flags; private accounts cannot be enriched
engagementCountTotal comments this person left across the sampled posts
postsEngagedWithHow many distinct sampled posts they commented on
isRepeatEngagerTrue when they commented more than once, or on more than one post
sourcePostUrlsThe sampled posts where they were observed
firstObservedAt / lastObservedAtTime window of observed engagement
sampledPostsHow many posts this run scanned — the basis for the whole row

Run summary

Every run writes a RUN_SUMMARY record to the key-value store with rawCommentsCollected, uniqueEngagers, duplicatesRemoved, sourceAccountCommentsExcluded, repliesAvailableNotFetched, per-post status, and:

  • audienceType: "observed_commenters"
  • coverageBasis: "not_applicable_engagement_mode"

No follower-coverage percentage is reported, because engaged commenters are not a subset of followers and any such ratio would be misleading.

Export and integrate

Export to JSON, CSV or Excel, run on a schedule, or call it from the API. Two dataset views are provided: Engaged Audience (default) and Repeat Engagers.

Pricing

Pay per unique engaged user delivered. Duplicate comments and the profile's own comments are never charged — if someone comments seven times, you pay once.

Notes

  • Works on public Instagram profiles. No login and no cookies required.
  • Private profiles return no public posts; the run reports no_posts_or_private_account.