Instagram Comments Scraper with Replies — CSV Export, No Login
Pricing
from $1.82 / 1,000 comments
Instagram Comments Scraper with Replies — CSV Export, No Login
Export Instagram comments from any public post or reel to CSV, JSON or Excel: comment text, author, likes, time, reply threads, @mentions and #hashtags as columns, optional comment likers, no duplicates, no login. Each post gets a summary row with how many comments Instagram served.
Pricing
from $1.82 / 1,000 comments
Rating
0.0
(0)
Developer
Andrey Afanasenko
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Paste an Instagram post or reel link. Get every comment Instagram serves as a spreadsheet row: who wrote it, what they said, when, and how many likes it has. Replies come as their own rows. @mentions and #hashtags get their own columns. Public posts only, no login, no cookies. Export to CSV, JSON or Excel.
🆓 Free to start: 50 comments per run · 15 runs a month · replies, mentions and both views included · no card, no login.
🎯 What it does
You give links to public Instagram posts or reels, one per line — up to 50 per run on a paid plan, 3 on the free one. Leave the box empty and it reads a demo post instead.
You get one row per comment: text, time, likes, author. Replies are rows too, each pointing at the comment it answers. @mentions and #hashtags get their own columns. Optional: who liked each comment.
What you won't get: every comment the counter shows. The number on the post counts replies, hidden and deleted comments. Instagram hands over fewer — a bit under half on a typical post. Every post gets a free summary row: what arrived, and why reading stopped.
Comments by private accounts are included — about six in ten on a busy post. Their comment is public.
📦 Output sample
Every comment is one row. Here is what a row holds:
- The comment — Comment Text, Posted At, Likes, Replies, Is Reply, Parent Comment ID, Mentions, Hashtags.
- Who wrote it — Account, Full Name, Author ID, Author Is Verified, Author Is Private, Profile Picture.
- Which post — Source, Post URL, Post Owner, Declared Comments.
- Coverage and notices — Delivered Top-Level, Delivered Replies, Stop Reason, Analysis Status, Why Not Analyzed, Comment Likers.
A real row from a recent run (likers switched on):
{"Account": "https://instagram.com/marie.dubois","Source": "DccbeHGPj3T","Analysis Status": "analyzed","Why Not Analyzed": "N/A","Post URL": "https://www.instagram.com/p/DccbeHGPj3T/","Post Owner": "natgeo","Declared Comments": 173,"Delivered Top-Level": null,"Delivered Replies": null,"Stop Reason": null,"Comment ID": "17912345678901234","Parent Comment ID": null,"Is Reply": false,"Comment Text": "This is stunning 😍 @jules_martin you have to see this","Posted At": "2026-08-29T14:22:07.000Z","Likes": 34,"Replies": 2,"Full Name": "Marie Dubois","Author ID": "51234567890","Author Is Private": true,"Author Is Verified": false,"Profile Picture": "https://scontent.cdninstagram.com/v/...","Mentions": ["jules_martin"],"Hashtags": [],"Comment Likers": []}
The coverage columns are filled on the post_summary row, not on comment rows.
Views — two ways to look at the same rows, in the Storage → Dataset tab:
| View | What each row is | Best for |
|---|---|---|
| Comments (default) | One comment, plus one post_summary row per post with its totals | Reading the discussion, sentiment work, export |
| Commenters | The same rows, trimmed to the person and who they tagged; someone who commented twice appears twice — dedupe by handle | Giveaway entrant lists |
Full per-field schema: .actor/dataset_schema.json — what AI agents see through Apify's MCP server too.
⚡ Quick start
- Open the Input tab.
- Paste one or more post links into Post Links, one per line. Reel links work too.
- Click Start. Rows appear in Storage → Dataset as they arrive; download CSV, JSON or Excel there.
A minimal input that works on the free plan:
{"postUrls": ["https://www.instagram.com/p/CA2aJYrg6cZ/"],"maxCommentsPerPost": 50}
🧭 When to use it
- Giveaway entrant lists — every entry as a row with the friends they tagged already in
Mentions. - Comment sentiment analysis — full text, time and likes, ready to score.
- Competitor comment research — what people say under a rival's posts, reply threads included.
- Reply-thread export — every reply as a row that names the comment it answers.
- Finding who engages — handle, name, verified and private flags on every row.
🛠 Input
Two sections in the form: 🎯 Posts to export and ▶️ Run & Storage Options.
| Field | What it does | Default |
|---|---|---|
| Post Links | Post or reel links, one per line — up to 50 on a paid plan, 3 on the free one. Empty = demo run. | empty |
| Max comments per post (cost control) | Cost ceiling per post, in comments. A reply is a comment. 0 = no cap (paid plans). | 1000 |
| Include reply threads | Return each reply as its own row. | on |
| Include who liked each comment | Adds the accounts that liked each comment; a separate, cheaper event. | off |
| Max likers per comment | How deep to read each comment's liker list. | 50 |
| Start a Fresh Run | Uncheck to resume the previous run. | on |
An unreadable link — not a post, deleted, or inside a private account — comes back as a free row with the reason.
💰 How much will scraping Instagram comments cost?
You pay per comment, not per run. Two events, priced by your Apify plan:
| Event (per 1,000) | Free | Bronze | Silver | Gold, Platinum & Diamond |
|---|---|---|---|---|
| Comment (a reply is a comment) | $2.60 | $2.34 | $2.08 | $1.82 |
| Comment liker (optional) | $0.43 | $0.39 | $0.34 | $0.30 |
| You ask for | Plan | Approx. cost |
|---|---|---|
| 50 comments — all a free run reads | Free | $0.13 |
| 1,000 comments | Bronze | $2.34 |
| 5,000 comments | Gold | $9.10 |
- Duplicates are removed before charging — you pay once per comment.
- Free rows: unreadable links, comments-off posts, and every
post_summary.
Replies count toward the cap — 200 top-level comments with busy threads is closer to 400 rows, so set the cap for both. Likers add work, not rows — one lookup per comment, off by default.
🆓 Free vs paid plan
| Free plan | Paid plan | |
|---|---|---|
| Comments per run | 50 | as many as you ask for |
| Runs per month | 15 | unlimited |
| Post links per run | 3 | up to 50 |
| Reply threads | ✅ | ✅ |
| Comment likers | ✅ | ✅ |
| Resume from checkpoint | ✅ | ✅ |
Nothing else is held back: every column, both views and every option work the same on either plan. Links past the third come back as free rows and cost nothing. A run you abort still uses up a slot.
All fifteen runs together cost $1.95 of the $5 monthly credit Apify gives a free account, so the allowance is really yours to spend.
🧪 Recipes
A giveaway entrant list — replies off (giveaway rules count top-level comments, and you pay for fewer rows), then open the Commenters view and dedupe by handle.
{ "postUrls": ["https://www.instagram.com/p/YOUR_GIVEAWAY_POST/"],"includeReplies": false, "maxCommentsPerPost": 0 }
A full discussion, threads and all — sort the sheet by Parent Comment ID and every thread reads top to bottom.
{ "postUrls": ["https://www.instagram.com/p/YOUR_POST/"],"includeReplies": true, "maxCommentsPerPost": 0 }
Several posts, bounded spend — posts are read in turn, so one viral post cannot starve the others.
{ "postUrls": ["https://www.instagram.com/p/POST_ONE/","https://www.instagram.com/reel/POST_TWO/"],"maxCommentsPerPost": 500 }
🔁 Resume / checkpoint
Uncheck Start a Fresh Run to pick up where the last run stopped.
- Posts already finished are skipped.
- A post that hit a cap or an error is read again.
- A post cut off part-way carries on from where it stopped.
A resumed run gets a fresh allowance and spends a monthly slot.
📡 Live status & storage records
The run's Storage → Key-value store tab holds a live status page and these records:
| Record | What it holds |
|---|---|
status.html | Live progress and cost |
RUN_SUMMARY | Everything about the run, incl. declared vs delivered per post |
COMMENT_COVERAGE | The coverage record alone, for integrations |
USER_MESSAGE | The one thing this run most needs to tell you |
UNREAD_LINKS | Every link that could not be read, with the reason |
API_USAGE | Upstream request counts |
FREE_LIMITS_APPLIED | Free-plan ceilings that applied |
🤖 Programmatic / API use
REST API:
curl -X POST "https://api.apify.com/v2/acts/afanasenko~instagram-comments-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls":["https://www.instagram.com/p/CA2aJYrg6cZ/"],"maxCommentsPerPost":200}'
MCP / agentic clients: the actor is a tool on Apify's MCP server at mcp.apify.com. Any AI assistant with your token can find it, read its schemas and run it — just ask: "get the comments on this Instagram post, replies included, as CSV".
A run ends SUCCEEDED even with nothing to deliver; the reason is in USER_MESSAGE — branch on that.
💡 Tips & Best Practices
Getting maximum results
- Read a post soon after it goes up; Instagram serves less of an old thread.
- Judge coverage by Declared vs Delivered on the summary row.
- Paste several posts into one run; one viral post cannot starve the others.
Cost optimization
- Max comments per post bounds each post's bill, replies included.
- Turn replies off for giveaways; you pay for fewer rows.
- Keep likers off unless you need them; they multiply lookups, not rows.
Performance
- Small posts finish in under a minute; thousands of comments take several.
- Stop a long run any time; continue with Start a Fresh Run unchecked.
- Bound a huge post with the comment cap, not the run timeout — a cap ends cleanly.
Data quality
- Spot-check five rows against the post before scaling up.
- Sort by
Parent Comment IDto rebuild threads in a sheet. Author Is Privateis information, not a filter.
❓ FAQ
Q: How do I get the comments on an Instagram post? A: Paste the post link into Post Links and click Start. Download the table from Storage → Dataset.
Q: Is there a free Instagram comment scraper? A: Yes — 50 comments per run from up to 3 links, 15 runs a month, replies and both views included. No card needed.
Q: Can I use the Instagram API instead? A: Instagram's Graph API returns comments only on your own business account's posts. This actor reads any public post or reel.
Q: What are the best Instagram comment scraper alternatives? A: Check for replies as rows, duplicates removed before you pay, and declared vs delivered per post. This actor does all three.
Q: Why did I get fewer comments than the post shows?
A: The counter includes replies, hidden and deleted comments, and Instagram serves only some. Posts read to the very end returned 39–75% of it, median 44% across eight posts. Totals sit on the post_summary row.
Q: Does it work on private accounts? A: No — a post inside a private account comes back as a free row saying so. Comments written by private accounts are included.
Q: Are duplicate comments possible? A: No. Instagram sometimes serves a comment on two pages; the actor drops the repeat by id before charging, also after a restart.
Q: Can I sort comments by newest or most popular? A: No — Instagram offers no sort order for this data, so no tool can honestly promise one. Rows arrive in the order served.
Q: What is the post_summary row?
A: One free row per post with the declared count, what was delivered, and Stop Reason: end (list ran out) · cap (your limit or the free ceiling) · error (source stopped answering) · disabled (comments off).
Q: Why do I see null for missing values?
A: null means Instagram did not give it; only Why Not Analyzed uses N/A. Every key is present except Comment Likers, which appears only when likers are on.
🔗 Other Instagram scrapers (same author)
| You start with… | You want to find… | Use this actor |
|---|---|---|
| A post or reel link | Its comments and replies, as rows | This actor |
| A post or reel link | Who liked or commented, as full profiles | Instagram Likes Scraper |
| Handles, links, keywords or places | Profiles via 6 discovery modes | Instagram Profile Scraper |
| One known account | Its followers and following | Instagram Followers & Following Extractor |
| One known account | Who followed and unfollowed over time | Instagram Follower Tracker |
| 1–5 seed handles | Similar profiles via «Suggested for You» | Instagram Related Profiles Scraper |
| A keyword or a hashtag | The accounts in that niche | Instagram Influencer Search |
| A reel link or a creator handle | What the reels say — transcript, on-screen text | Instagram Reel Script Extractor |
| An AI agent | The profile scraper's modes as MCP tools | Instagram Profile Scraper MCP Server |
People behind a post as profiles → Instagram Likes Scraper. What they said → this one.
🛟 Support & feedback
- Open an issue on the actor's Issues tab in Apify Console — paste the run URL.
- Feature requests in the same tab; we read every one.
- Ratings & reviews on the Apify Store page help other users find the actor.
⚖️ Is it legal to scrape Instagram comments?
Yes — the actor reads publicly available comments and does not log in, bypass authentication, read private accounts, or interact with content on your behalf. You are responsible for how you use the data, including GDPR, CCPA and Instagram's terms.