Instagram, comments
Export Instagram comments to Excel or CSV
Paste a post or reel link and get its public comments as rows: the text, like count, date and commenter, ready for Excel, Google Sheets or a CSV file. The Actor keeps paging until the thread ends, up to about 4,800 comments per post, and its keyword, like and date filters run before billing, so you pay only for the comments you keep.
- $1.90 per 1,000 comments (Free plan)
- No login or cookies
- Up to about 4,800 per post
- Filters run before billing
What each row holds
One row is one comment. Nested fields such as the commenter's username get their own columns in the Excel and CSV exports.
| Field | What it holds |
|---|---|
text | The comment itself |
likeCount | Likes on the comment |
createdAt | When it was posted, as a date and time |
owner | The commenter's public username, user ID and verified badge |
postUrl, postCode | The post or reel the comment belongs to |
isPostOwner | True when the post's own creator wrote the comment (filled when the post's owner is known) |
id | The comment ID, so you can drop duplicates across runs |
Filters that run before you pay
- Keywords (
keywords): keep only comments that contain any of your words, case-insensitive. Questions like "price" or "where", complaints like "broken", or a brand name. - Minimum likes (
minLikes): skip the long tail and keep what people agreed with. - Newer than (
newerThan): a date such as2026-09-01or a period such as7 daysor24 hours. - Top comments first (
sort: "top"): reads up to 2,000 comments per post and returns the most-liked ones. - Cost caps:
maxCommentsper post andmaxItemsfor the whole run. With filters on,maxCommentscounts only the comments that match.
Comments your filters skip are never charged, and there is no start fee.
What it costs
| Comments | Free and Starter | Scale | Business |
|---|---|---|---|
| 1,000 | $1.90 | $1.50 | $1.10 |
| 10,000 | $19.00 | $15.00 | $11.00 |
| 100,000 | $190.00 | $150.00 | $110.00 |
The Free plan is capped at 100 comments per run. That is enough to check the output on a real post, but a giveaway with a few thousand entries, or a daily monitor across several posts, needs a paid Apify plan. The Starter plan is $19 a month and includes $19 of prepaid usage (Apify pricing page, 2026-10-15), which covers about 10,000 comments a month at $1.90 per 1,000.
Exporting comments for a giveaway
- Run the Actor on the giveaway post with
maxCommentsandmaxItemsboth set above the number of comments you expect (maxItemsdefaults to 1,000 for the whole run). - Export to Excel or Google Sheets, then drop entries posted after your deadline using
createdAt. - If your rules allow one entry per person, remove duplicate commenters by username. If entrants had to tag a friend, keep the rows whose
textcontains "@". - Draw the winner in the sheet, for example with
RANDBETWEENover the row numbers.
The Actor exports; it doesn't pick winners, and the draw is yours to run and record.
Limits to know
- No replies. Instagram shows reply threads only to logged-in users, so replies aren't collected and
replyCountis always empty. - Your total won't match Instagram's count. Instagram's number includes replies, plus comments that are hidden, restricted or deleted, none of which a visitor can see.
- Public posts only. Private accounts are never accessed.
How it compares
| Actor | Free | Starter | Scale | Business | Users |
|---|---|---|---|---|---|
| yugenox/instagram-comments-scraper | $1.90 | $1.90 | $1.50 | $1.10 | 40 |
| apify/instagram-comment-scraper | $2.60 | $2.30 | $2.10 | $1.90 | 61,182 |
Lower per-comment prices exist. apidojo/instagram-comments-scraper-api lists $0.50 per 1,000 comments beyond the first 15 on each post, plus $0.0075 per post, and scrapesmith/instagram-comments-scraper lists $0.50 per 1,000 plus a $0.00005 run start (both 2026-10-15). If price per comment is all that matters, try them on a small run. apify/instagram-comment-scraper's listing also mentions replies, which ours can't collect. What you pay for here is the whole public thread (up to about 4,800 comments per post), filters that run before billing, most-liked-first ordering and no login.
Personal data
Commenters' usernames are personal data under PIPEDA, GDPR and similar laws. Keep what you need for the job, delete the rest, and follow anti-spam laws such as CASL and CAN-SPAM before you message anyone. The legal FAQ on the Actor's Store page covers this in more detail.
Run it from code
The 200 most-liked comments with at least 5 likes on one reel: at most 200 comments, $0.38 on the Starter plan. On the Free plan the same run stops at 100 comments ($0.19). For a daily monitor, schedule it with newerThan: "24 hours" and each run returns only the new comments; comment monitoring covers keyword alerts and the monthly cost.
// Save as run.mjs, then: npm i apify-client && APIFY_TOKEN=... node run.mjs
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yugenox/instagram-comments-scraper').call({
postUrls: [
"https://www.instagram.com/reel/Ddl5eH-u4le/"
],
maxComments: 200,
sort: "top",
minLikes: 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.likeCount, item.createdAt, item.text);import os
from apify_client import ApifyClient # pip install apify-client
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yugenox/instagram-comments-scraper").call(run_input={
"postUrls": ["https://www.instagram.com/reel/Ddl5eH-u4le/"],
"maxComments": 200,
"sort": "top",
"minLikes": 5,
})
if run is None:
raise RuntimeError("Run did not finish")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item.get("likeCount"), item.get("createdAt"), item.get("text"))# Small jobs: runs the Actor and returns the rows in one call (up to 5 minutes).
curl -X POST "https://api.apify.com/v2/acts/yugenox~instagram-comments-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"postUrls":["https://www.instagram.com/reel/Ddl5eH-u4le/"],"maxComments":200,"sort":"top","minLikes":5}'To download the whole dataset as one file, use https://api.apify.com/v2/datasets/<datasetId>/items?format=xlsx (or format=csv). To ask for comments from ChatGPT, Claude or Cursor, add https://mcp.apify.com/?tools=fetch-actor-details,yugenox/instagram-comments-scraper as an MCP server; the setup guide shows how.
Questions people ask
Do I need an Instagram account or cookies?
No. The Actor reads only what Instagram shows to any logged-out visitor. You need an Apify account, which runs the Actor and bills you per comment.
Can I export comment replies?
No. Instagram shows replies, and how many replies a comment has, only to logged-in users. You get the top-level comments, and replyCount is always empty.
Why do I get fewer comments than the post shows?
Instagram's count includes replies and comments that are hidden, restricted or deleted. None of those are visible to the public, so they can't be exported.
Can I try it on Apify's Free plan?
Yes. The Free plan is capped at 100 comments per run, paid from the plan's $5 monthly usage credit. That is enough to see the output before a larger run on a paid plan.
Can it pick a giveaway winner?
No. It exports the comments; you remove late or duplicate entries and draw the winner in your spreadsheet.
Is it legal to export Instagram comments?
The Actor collects only public comments that anyone can see without logging in. Usernames and comments are still personal data, so follow privacy laws such as GDPR, PIPEDA and CCPA and Instagram's terms, and ask a lawyer if you are unsure.
Run it on your own data
Open the Instagram Comments Scraper on Apify, paste a post or reel link and press Start. You pay per comment from your own Apify account, with no subscription to us.
Last updated 2026-10-06.