Instagram Comments Scraper with Replies — CSV Export, No Login avatar

Instagram Comments Scraper with Replies — CSV Export, No Login

Pricing

from $1.82 / 1,000 comments

Go to Apify Store
Instagram Comments Scraper with Replies — CSV Export, No Login

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

Andrey Afanasenko

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Apify Actor

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:

ViewWhat each row isBest for
Comments (default)One comment, plus one post_summary row per post with its totalsReading the discussion, sentiment work, export
CommentersThe same rows, trimmed to the person and who they tagged; someone who commented twice appears twice — dedupe by handleGiveaway entrant lists

Full per-field schema: .actor/dataset_schema.json — what AI agents see through Apify's MCP server too.

⚡ Quick start

  1. Open the Input tab.
  2. Paste one or more post links into Post Links, one per line. Reel links work too.
  3. 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.

FieldWhat it doesDefault
Post LinksPost 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 threadsReturn each reply as its own row.on
Include who liked each commentAdds the accounts that liked each comment; a separate, cheaper event.off
Max likers per commentHow deep to read each comment's liker list.50
Start a Fresh RunUncheck 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)FreeBronzeSilverGold, 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 forPlanApprox. cost
50 comments — all a free run readsFree$0.13
1,000 commentsBronze$2.34
5,000 commentsGold$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 planPaid plan
Comments per run50as many as you ask for
Runs per month15unlimited
Post links per run3up 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:

RecordWhat it holds
status.htmlLive progress and cost
RUN_SUMMARYEverything about the run, incl. declared vs delivered per post
COMMENT_COVERAGEThe coverage record alone, for integrations
USER_MESSAGEThe one thing this run most needs to tell you
UNREAD_LINKSEvery link that could not be read, with the reason
API_USAGEUpstream request counts
FREE_LIMITS_APPLIEDFree-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 ID to rebuild threads in a sheet.
  • Author Is Private is 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 linkIts comments and replies, as rowsThis actor
A post or reel linkWho liked or commented, as full profilesInstagram Likes Scraper
Handles, links, keywords or placesProfiles via 6 discovery modesInstagram Profile Scraper
One known accountIts followers and followingInstagram Followers & Following Extractor
One known accountWho followed and unfollowed over timeInstagram Follower Tracker
1–5 seed handlesSimilar profiles via «Suggested for You»Instagram Related Profiles Scraper
A keyword or a hashtagThe accounts in that nicheInstagram Influencer Search
A reel link or a creator handleWhat the reels say — transcript, on-screen textInstagram Reel Script Extractor
An AI agentThe profile scraper's modes as MCP toolsInstagram Profile Scraper MCP Server

People behind a post as profiles → Instagram Likes Scraper. What they said → this one.

🛟 Support & feedback

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.