

# How to Count Unique Instagram Commenters Without Calling Them Followers

Count each known Instagram author ID once across your selected comment records. An ID is a source identifier for an account. Keep comments with missing author IDs in a separate count. Report the result as known observed commenter accounts, plus comments with unknown authors. This counts accounts that appear in your collected comments. It does not prove that they are followers, buyers, or separate people.

For a few comments, start with a manual record of the selected public posts. If you already have a checked export from an account you manage, use it when it contains the required comment and author IDs. Use a collection tool when manual records are insufficient. The method below produces two linked tables: one for unique comments and one for known author accounts.

## 1. Define what your participation count covers

Write the question before you collect data. For example: “How many known accounts appear in the top-level comments we observed on these selected posts?” A top-level comment is a comment directly under a post, rather than a reply to another comment.

Keep the following details with your tables:

| Detail | What to record |
| --- | --- |
| Selected posts | The exact public post or Reel addresses |
| Observation period | When you checked or collected the comments |
| Comment date range | Any limits on when comments were published |
| Comment scope | Top-level comments only |
| Collection limit | The maximum comments requested for each post |
| Comment order | The order selected for collection |
| Count scope | Each post separately, all selected posts together, or both |

The observation period and comment date range serve different purposes. A comment can have an earlier publication date than the date you collected it. Keep both dates when available.

For a combined count, count an account once across all selected posts. Do not add the separate post counts and call that the number of unique accounts. The same account can comment on more than one post.

A public question asks how to find users who commented on a specific post. That supports starting with a known post and its comment authors. It does not support claims about the whole audience or demand for this method. [Public question, retrieved August 11, 2026; one question record](https://www.reddit.com/r/socialmedia/comments/dcoeuq/scraping_users_who_commented_on_a_specific_post/).

## 2. Choose a source and make a small checked collection

Use manual records if they answer the question with enough detail. Save the post address and the source evidence for each comment. If you cannot establish a stable author ID, leave that identity unresolved. A visible username alone is not a substitute for the required ID.

If you use an existing account-owner export, check its scope and fields first. Keep owner-only records separate from public comment records. A public comment does not establish a purchase. A purchase record would need its own source and a checked link to the account before it could support a buyer claim.

For a larger public comment collection, the documented fit is the [Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper). An Actor is a hosted data collection program. This Actor documents collection of public top-level Instagram comments without login or cookies. You still build and check the account count yourself.

The following input is the supplied small configuration. Replace the sample address with the intended public post or Reel address before use.

```json
{"collectAllAvailable":false,"commentSortMode":"default","maxCommentsPerPost":10,"postUrls":["https://www.instagram.com/reel/DZu6dkVyImf/"]}
```

2. Choose a source and make a small checked collection

The settings mean:

1. `postUrls` holds the public posts or Reels to check.
2. `maxCommentsPerPost` limits saved unique top-level comments to ten per post in this input.
3. `commentSortMode` keeps the default comment order.
4. `collectAllAvailable` remains `false`, so the limit stays in use.

The input shape was checked against the supplied public schema, which defines the accepted fields and values. No collection was run for this guide. The documented build is 0.1.21, checked on October 25, 2026. [Public build and field definitions, checked October 25, 2026; documentation only](https://api.apify.com/v2/acts/chronometrica~instagram-comments-scraper/builds/default).

The Actor also documents optional `commentsFrom` and `commentsUntil` fields. They filter comment publication dates, including the stated start and end dates. They are absent from the supplied input. If you add them, record their values with your results.

The order options `newest` and `oldest` sort the collected sample by date. Do not treat a sorted sample as proof that every comment was collected. Removing the limit also does not prove complete coverage. Collection can still end when the public feed ends, time runs out, or the source fails.

A public [Export Instagram Comments to CSV Task, checked October 25, 2026; page presence only](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv) is available. A Task is a saved input preset. Its saved settings were not checked through an authenticated account, and it was not run for this guide. Check its input before use. CSV means comma-separated values, a file format for table data.

## 3. Save source fields before calculating counts

Keep the original export unchanged. Build your working tables from a copy so that each result can be checked against its source.

Save these documented fields:

| Field | Meaning and use |
| --- | --- |
| `commentId` | Stable comment ID; use it to identify repeated sightings of one comment |
| `postId` | Instagram post ID; it can be missing |
| `postUrl` | Standard source address for the post |
| `postShortCode` | Short code from the post or Reel address |
| `ownerId` | Author account ID; use known values for the account count |
| `ownerUsername` | Public author username; retain it for source checks |
| `text` | Public comment text |
| `createdAt` | Comment publication time, or a missing value |
| `collectedAt` | Time the Actor collected the comment |
| `likesCount` | Public comment like count, which can be unavailable |
| `repliesCount` | Public reply count, which can be unavailable |
| `ownerVerified` | Verification flag, which can be unavailable |

Store IDs as text so your table software does not round them or change their form. The author field is `ownerId`. Use that exact field name when matching source rows.

The documented times use UTC, or Coordinated Universal Time. Keep the original times. If you display local times, label the time zone and retain the source value.

A missing value is not zero. In the documented output, `null` means unavailable. For example, `likesCount` of `0` means a known count of zero. A `null` value means that the count is unavailable. Likewise, `ownerVerified` of `false` is a known false value; `null` is unknown.

A `repliesCount` value is a count, not the text or author records of those replies. Do not add it to your collected comment rows or use it to calculate more authors. The current contract does not export follower or liker lists. [Output definitions and collection scope, checked October 25, 2026; no runtime result](https://api.apify.com/v2/acts/chronometrica~instagram-comments-scraper/builds/default).

## 4. Build the comment table before the account table

First create a table with one row per distinct `commentId`. “Distinct” means that each different ID appears once.

Follow these steps:

1. Group repeated rows with the same `commentId`.
2. Retain one comment record for the count.
3. Keep links to all source rows where you observed that comment.
4. Preserve collection times in a separate collection log if you made several checks.
5. Keep different comment IDs as different comments, even when their text matches.

Two comments from the same account remain two comments. Removing repeated sightings of one comment is a different operation from counting an author once.

Check conflicting source rows before you accept the table. If one comment ID has different author IDs in different records, retain the source evidence and mark the author link unresolved until checked. Do not choose an ID just to make the count complete.

If a working record lacks a usable comment ID, keep it outside the confirmed unique-comment total until you can check it. Identical text does not prove that two records describe the same comment.

Next create an account table with one row per known `ownerId`. Link each account to the comment IDs that support it. Use these locally created table columns:

| Account-table column | What it contains |
| --- | --- |
| Author ID | One known source `ownerId` |
| Supporting comment IDs | The unique comments linked to that ID |
| Selected posts | Posts where those comments were observed |
| Observed usernames | Source usernames associated with those records |
| Comment count | Number of linked unique comments |

These are analysis columns you create. They are not an extra Actor output.

Keep missing author IDs out of this known-account table. Do not place all missing IDs into one shared “unknown account.” That would invent an identity link. Keep the affected comments in a separate unresolved table instead.

## 5. Count accounts and unknown-author comments separately

Calculate three main values from the checked comment table:

1. Unique comments: the number of distinct known `commentId` values.
2. Known author accounts: the number of distinct known `ownerId` values linked to those comments.
3. Unknown-author comments: the number of unique comments whose author identity remains missing or unresolved.

Keep the units in your report. Comments, accounts, and people are different units.

An unknown-author comment might belong to an account already in your table. It might belong to a different account. Several unknown-author comments might also share one author. Therefore, do not add one account for every missing author ID.

Use “accounts” rather than “people.” One person may operate several accounts, and the supplied source does not resolve who operates each account. A comment also does not prove follower membership, a purchase, or a relationship between accounts.

## 6. Check the arithmetic with an original fictional example

Original fiction: all IDs and counts in this example are invented. The table illustrates the method. It is not an Actor result. The six rows below have six different comment IDs.

| Comment ID | Author ID | Treatment |
| --- | --- | --- |
| C1 | A | Link to known account A |
| C2 | A | Link to known account A |
| C3 | B | Link to known account B |
| C4 | Missing | Keep author unresolved |
| C5 | C | Link to known account C |
| C6 | C | Link to known account C |

The known-account table is:

| Author ID | Supporting comment IDs | Unique comments |
| --- | --- | --- |
| A | C1, C2 | 2 |
| B | C3 | 1 |
| C | C5, C6 | 2 |

The unknown-author table contains:

| Comment ID | Author ID | Treatment |
| --- | --- | --- |
| C4 | Missing | Preserve without assigning an account |

The arithmetic is:

- Known-author comments: 2 comments + 1 comment + 2 comments = 5 comments.
- All unique comments: 5 known-author comments + 1 unknown-author comment = 6 comments.
- Known distinct authors: account A + account B + account C = 3 accounts.
- Unknown-author comments: 1 comment.

The report should say: “The observed records contain six unique top-level comments in total: five from three known author accounts and one with unknown author identity.”

Do not report exactly four accounts. C4 could belong to A, B, C, or another account. Do not report six people, three followers, or any confirmed customers.

C2 and C6 remain in the comment count. They do not add new known accounts. C4 remains unresolved; it is not deleted and is not assigned to a guessed author.

## 7. Add public profile context only when needed

A comment participation count does not require a full profile review. Add profile checks only when the research question needs current public account context.

Check only known public profile addresses that you have verified. Save the check date and keep the profile table separate from the comment and account tables. Do not turn an uncertain username into a confirmed account match.

A later profile check describes what was available at that later time. It does not establish follower membership, buyer status, or a relationship between two accounts. It also does not change an unknown author into a known one without a checked identity link.

If you later need to clean repeated profile records, use the separate [Instagram profile identity guide](/en/articles/ig-profile-identity-dedup/). That is a later profile-record task. Keep the comment participation count based on its own source IDs.

If the next task is to review contest entries, use the [Instagram giveaway entry guide](/en/articles/ig-giveaway-eligibility/). This participation count does not decide eligibility. An observed commenter account is not automatically an accepted contest entry.

## 8. Check the tables and state collection limits

Accept the result only after these checks pass:

1. Every counted comment links to a source row and selected post.
2. Every counted account links to at least one comment with a known author ID.
3. Repeated sightings of one comment do not increase the unique-comment count.
4. Several comments from one author do not increase the known-account count.
5. Missing author IDs remain unresolved.
6. The known-author and unknown-author comment counts add to the unique-comment total.
7. The report states the selected posts, collection times, comment scope, and limits.

When a check fails, preserve the affected records and state the reason. Use this decision table:

| Condition | Next step |
| --- | --- |
| Missing author ID | Count the comment in the unknown-author group |
| Conflicting author IDs for one comment | Check the source and keep the author link unresolved |
| Missing publication time | Keep the time unknown; do not guess whether it meets a date limit |
| Post not collected or not checked | Mark its coverage unknown |
| Saved sample reaches the configured limit | Report the limit and avoid a complete-coverage claim |
| No saved comments for a selected post | Report zero saved comments; check before claiming the post has no comments |
| Reply count without reply records | Exclude those replies from the commenter calculation |

A collection below its limit still does not prove complete coverage. Report what you observed. Avoid “all commenters” unless separate evidence supports that claim.

For repeated collections, retain a collection log and match comment IDs across exports. The documented input has no since-last-run or new-comment-only switch. Do not assume that running it again returns only new records. [Input scope, checked October 25, 2026; documented settings only](https://api.apify.com/v2/acts/chronometrica~instagram-comments-scraper/builds/default).

Your report should give the comment count, known-account count, unknown-author comment count, post coverage, and collection limits together. State that replies, followers, likers, and private customer records are outside this public top-level-comment analysis.

## Next action: build and check the two tables

Start with your selected posts and any adequate manual records or checked owner export. Build the unique-comment table first. Then build the known-account table and retain unknown-author comments separately. Decide whether that observed sample answers your research question before collecting more data.

If you need public comment collection, review the [Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper) and replace the sample post address in the supplied input. Make a small collection and check its source links before expanding it. The proposed method above has not been tested by a run for this guide; the tool documentation supports its collection role, while you perform the counting and review.

## Sources

- [Instagram Comments Scraper public default build 0.1.21 and supplied README evidence — checked October 25, 2026; documented input, output, and limits only, with no runtime test](https://api.apify.com/v2/acts/chronometrica~instagram-comments-scraper/builds/default)
- [Export Instagram Comments to CSV Task — checked October 25, 2026; public page presence only, saved settings not authenticated, and Task not run](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv)
- [Public question about users who commented on a specific Instagram post — published October 3, 2019, retrieved August 11, 2026; one question record, not a demand estimate](https://www.reddit.com/r/socialmedia/comments/dcoeuq/scraping_users_who_commented_on_a_specific_post/)