You ran a giveaway. The rules said tag two friends in the comments. Three days later you have 18,000 comments to wade through and Instagram's UI shows them in the algorithm's favourite order, not chronologically, with no way to spot the duplicates. The only sane move is to pull the whole thread into a spreadsheet, dedupe, and pick a winner. This guide walks you through using ExportComments' Instagram Comments exporter to do that — and a lot more — in Excel, CSV, or JSON.
Why export Instagram comments
Instagram is multilingual by default. The same Reel can collect comments in English, Spanish, Portuguese, Arabic, Korean, and three flavours of emoji-only — and the in-app view shows you maybe twenty at a time, ranked by an opaque algorithm. Once you've exported the comments to a spreadsheet you can do things the app actively prevents:
- De-duplicate giveaway entries by handle so a single account that posted forty times only counts once.
- Sentiment-bucket by language — IG comments are not English-by-default and your model needs to know that before it scores.
- Detect influencer comment-spam patterns — a high comment count from accounts with low engagement velocity is the classic bot-follower-farm signature.
- Audit your creator's response cadence — how many top-comments did they actually reply to, and how fast.
- Pull every @mention out of every comment to build an organic-tag map of who your audience associates you with.
- Compare comment density on a post with likes-disabled versus likes-on — Instagram's 2019 likes-hidden experiment changed comment behaviour in measurable ways and the effect is still visible on accounts that opt in.
How to export Instagram comments — step by step
Step 1: Grab the post or Reel URL
Open the Instagram post or Reel you want to export and copy its URL from the browser bar. Posts (/p/) and Reels (/reel/) both work. The post needs to be public — IG enforces this strictly, and a private account will return nothing.
Step 2: Paste the URL into the exporter
Head to the Instagram Comments exporter and paste the URL. For multiple posts in one go — a campaign rollup, a creator's last ten Reels, a portfolio of brand accounts — switch to bulk mode and paste one URL per line. Bulk runs return one file per URL bundled together in a single ZIP at the end of the job, so each post stays cleanly separated.
Step 3: Pick a format
Choose Excel (.xlsx), CSV, or JSON. Excel is right for filtering, pivoting, and charting straight away. JSON is right if you're feeding the data into a notebook, a sentiment pipeline, or your own dashboard.
Step 4: Start the export
Click Export. The job runs server-side and paginates through every comment plus its replies. Heavy posts — viral Reels, K-pop fan-account swarms on big-account drops — can take a few minutes; you can close the tab and the file lands in your dashboard plus your inbox when it's ready.
Step 5: Open the file
Open the .xlsx in Excel, Numbers, or Google Sheets. One row per comment, with the columns described below.
Inside the export — what fields you get
Each row is a single comment or reply. You'll find columns for:
- commenter_handle — the public @username on the comment.
- full_name — the display name shown next to the handle.
- comment_text — the full body of the comment.
- like_count_per_comment — how many likes the comment itself collected.
- parent_id — empty for top-level comments; populated with the parent comment's ID for replies, so you can rebuild the thread.
- is_creator_comment — Y/N flag identifying whether the comment is from the post owner. Useful for filtering host responses out of the conversation.
- created_at — original timestamp in UTC.
- mentioned_handles — every @mention parsed out of the comment text into its own column, ready for tag-network analysis.
Common workflows
- Giveaway de-duplication — pivot by commenter_handle to collapse multi-entries, filter to comments containing two or more @mentions to enforce the tag rule, and pick a winner with a deterministic random function.
- Sentiment by language — language-detect the comment_text column first, bucket by detected language, then sentiment-score per bucket. Aggregating across languages with one model trained on English produces noise.
- Influencer-spam detection — count comments per commenter_handle and cross-reference with the like_count_per_comment column. Accounts that comment a lot but their comments collect almost no likes are usually bot-farm follower accounts working through a list.
- Creator-response audit — filter to is_creator_comment = Y to get every creator reply in one view. Compare reply timestamps to parent comment timestamps to measure response cadence.
- Mention-network mapping — explode the mentioned_handles column and aggregate. The accounts your audience tags most often in your comments are the ones you should be collaborating with.
- Algorithmic-vs-chronological reality check — IG defaults to algorithmic comment ordering. Sort by created_at after export and the loudest voices in the thread often turn out not to be the earliest, the most-liked, or even the most representative.
- K-pop fan-account behaviour modelling — fan accounts on big-account Reels comment in coordinated bursts, often in non-Latin scripts, often with identical emoji combinations. Group by commenter_handle and bucket the comment_text by language to separate organic fan engagement from scripted bursts.
- Likes-disabled effect on comment density — if you have access to posts with the likes-hidden setting on (Instagram has been testing it on and off since 2019), pull comment volume per post and compare to your normal baseline. The pattern most accounts see is fewer drive-by reactions and a slightly higher share of full-sentence comments.
Plan limits and API access
The Free tier returns up to 100 comments per export, which is enough to evaluate the format. Personal scales to 5,000 results per export, Premium to 50,000, and Business to 250,000 — enough to fully capture viral Reels. If you'd rather pull comments on a schedule or trigger an export from your own pipeline, the same job is available through the REST API and via webhooks. See pricing for the full breakdown.
FAQ
- Does this work on Reels and Stories?
Reels yes — the URL ending in /reel/ pulls comments the same way as a feed post. Stories no, because Story replies are private DMs, not public comments. - Can I export comments from a private account?
No. The exporter only handles publicly visible content. Private accounts return nothing. - Are nested replies included?
Yes. Replies are returned alongside top-level comments and linked through the parent_id column. - How do I pick a giveaway winner from the export?
Dedupe by commenter_handle, filter to comments that meet your rules (e.g. contain at least two @mentions), then use a deterministic random function in Excel or your spreadsheet of choice. Auditable and reproducible. - Can I schedule a weekly export?
Yes. Scheduled exports are available on Premium and Business — useful for tracking comment volume and sentiment shift week over week without re-running the job. - What about a long list of post URLs?
Use bulk mode: paste one URL per line and the run returns one file per URL packaged in a single ZIP, so each post's data stays cleanly separated.