New: Instagram reply export — get every threaded reply, not just top-level comments. Try it

Guide

Bulk Export Instagram Comments: Pulling 10,000+ Comments From a Campaign Post (2026)

By The ZocialComment Team, Social-data analystsAugust 202613 min read
Bulk Export Instagram Comments: Pulling 10,000+ Comments From a Campaign Post (2026)

Export Instagram comments now

Free — 3 exports a day, no signup. CSV, Excel & JSON.

A campaign works and you have a new problem. The launch Reel has 34,000 comments, the giveaway post has 61,000, and the six creator posts you paid for have somewhere between 2,000 and 19,000 each. Somewhere in there is your entrant list, your UGC, the objection that keeps repeating, and the twelve people who should be in your ambassador programme. All of it is sitting behind a Load more button that shows you roughly thirty comments at a time in an order Instagram chose.

This is the bulk export problem, and it is specifically a brand problem. Nobody with a 40-comment post needs a strategy. This guide covers what "bulk" actually means at Instagram campaign scale, the three routes to getting the data out, what each one can and cannot reach, how to size the job before you spend anything, and what to do with the file once it exists.

Why the app cannot give you campaign comments

Three properties of the Instagram comment UI make manual collection impossible above a few hundred comments, and they compound.

Comments load in small batches. Each Load more tap fetches another slice. On a 30,000-comment post that is hundreds of taps, and the browser tab gets slower with every one because every comment stays in the DOM. Teams that attempt this usually give up somewhere around comment 2,000, then report on what they collected as though it were the post.

The order is ranked, not chronological. Instagram surfaces comments it predicts you want to see — engagement, relationships, recency all feed into it. Meta describes ranking behaviour across its surfaces in its ranking and content transparency documentation. For a campaign this is actively harmful: the entrant who commented at 3am on day four is exactly as valid as the one with 400 likes, and the ranking will never show you the first one.

Copied text loses its structure. Select-and-copy from the browser gives you a wall of names and text with no timestamp column, no like count, no reply parent and no clean username field. You cannot dedupe entrants, cannot filter by date window, and cannot prove which comment came before the deadline — which is precisely the question a giveaway audit asks.

None of this is a bug. The comment section is designed for reading, and reading is not what a campaign post needs.

Route 1: the Instagram Graph API

Meta provides programmatic comment access through the Instagram Platform APIs. If you administer the account, you can list media, then page through each media object's comments and replies, and the data comes back clean and machine-readable.

Three constraints decide whether this route fits your campaign.

  • Owned media only. The API returns comments on media belonging to the Instagram Business or Creator account your app is authorised for. Your brand's own posts, yes. The six creator posts you paid for, no — unless each creator grants your app access to their account, which in practice they will not. Competitor posts, never.
  • Rate limits are real at campaign volume. Meta's platform rate limiting is calculated per app and per user over a rolling window. Paging 60,000 comments in fifty-comment pages is 1,200 requests for one post, before replies. A campaign-wide pull needs backoff handling, retry logic and a queue, which is a small engineering project rather than an afternoon.
  • It needs an app, a review and a maintainer. A Meta app, a Business verification, a token refresh strategy, and somebody who notices when the token expires on a Friday. Perfectly reasonable if you are building a permanent dashboard; disproportionate if you need a campaign dataset by Thursday.

The honest summary: the Graph API is the right route for continuous monitoring of accounts you own, and the wrong route for a campaign that spans creators, partners and competitors. Most brands that build it end up running an exporter alongside it for everything the API cannot see.

Route 2: writing your own scraper

The DIY route — a headless browser, a scroll loop, a parser — looks cheap and is not. It breaks whenever Instagram changes a class name or a payload shape, which is often; it requires a logged-in session, which puts an account at risk of being actioned; and it is the route most likely to conflict with Instagram's Terms of Use, which prohibit automated collection without permission.

There is also a quieter cost. A scraper that silently returns 8,400 of 30,000 comments still returns a file, and a file looks like a result. Nobody notices the gap until the entrant count in the report does not match the one the client counted in the app. If you build one anyway, log the expected comment count from the post metadata and assert against it — an export that cannot tell you what it missed is worse than no export. Our guide to scraping Instagram comments goes through the failure modes in more detail.

Route 3: a bulk exporter

The third route is a hosted exporter that takes a public post URL and returns the comments as a file. No app, no token, no session, and it works on any public post regardless of who owns it — which is the property that matters for campaign work.

The steps for a single post:

  1. Copy the post permalink — instagram.com/p/SHORTCODE for a feed post, instagram.com/reel/SHORTCODE for a Reel.
  2. Paste it into the Instagram comment exporter.
  3. Enable replies if the campaign mechanic put entries in reply threads.
  4. Run it and download as CSV or Excel.

Every export returns the same columns: author, username, avatar_url, text, likes, replies, created_at, language, is_pinned, plus id and reply_to_id for reconstructing reply chains. Because the shape is fixed, forty campaign posts stack into one sheet by appending — no reshaping, no per-post schema.

Sizing the job before you spend anything

Do this arithmetic first; it takes two minutes and decides everything after it.

Read the comment count on your largest post. That single number selects your tier, because the ceiling is per post:

  • Free: the first 100 comments of a post, three exports a day, no signup. Enough to sanity-check the data shape and see the columns before committing. Not enough for a campaign.
  • Pay per export: $1 per 100 comments, $2 minimum. Right for one or two posts you need in full and nothing else.
  • 3-Day Pass — $14: unlimited posts, up to 10,000 comments each. This covers the overwhelming majority of brand campaigns. Forty creator posts at 6,000 comments each is one $14 pass.
  • Pro Pass — $49 for 3 days, $349 for 7 days, $1,499 for 30 days: up to 100,000 comments per post, plus AI analysis on the exported comments. This is the tier for viral giveaway posts and always-on programmes.

All of these are one-time purchases that expire on their own. There is nothing to cancel.

Then count posts. The common mistake is buying per-post when the campaign has thirty posts — the pass makes post count free and only the per-post ceiling matters. The second mistake is the reverse: buying a Pro Pass for a campaign whose biggest post has 4,000 comments. Size to the largest post, not the total.

Handling the genuinely enormous posts

Occasionally a giveaway post goes past 100,000 comments. Three practical notes.

Export during the campaign, not only after it. Comments get deleted — by their authors, by moderation, by Instagram's spam enforcement, which Meta reports on quarterly in its Community Standards Enforcement Report and which removes spam at a scale that will visibly dent a giveaway thread. A file pulled on day three of a seven-day campaign contains comments that no longer exist on day eight. Export daily on a live campaign; it costs nothing extra under a pass and it is the only way to have a complete record.

Daily exports also give you a time series. Stack them with an export_date column and you can see comment velocity by day, which posts drove it, and exactly when the sentiment turned. A single end-of-campaign export flattens all of that into one undated blob.

Spreadsheets have their own ceiling. Excel stops at 1,048,576 rows and gets slow long before that. Past a few hundred thousand rows, keep the CSVs and query them somewhere else — a database, a notebook, or the AI analysis included with a Pro Pass. Do not paste a 400,000-row campaign into one worksheet and expect a pivot table to finish.

What to actually do with the file

The export is not the deliverable. Five things it makes possible in an afternoon:

Deduplicate entrants properly. Pivot on username. One entrant with 80 comments is not 80 entries, and every giveaway has several. If the rules said one entry per person, that pivot is the compliance step, and doing it by eye in the app is impossible.

Enforce the deadline with a timestamp. Filter created_at to the entry window. This is the single most defensible thing an export gives a giveaway — a machine-readable record of who entered before the cut-off, which is exactly what you need if a losing entrant disputes the draw. If a random winner is the mechanic, our Instagram comment picker covers the draw itself.

Mine the UGC. Filter text for the phrases people use when they are describing an actual experience — "I bought", "it arrived", "been using". Sort those by likes. That is your testimonial shortlist, already ranked by how much other customers agreed with it. Get written permission before using any of it in an ad; the FTC's endorsement guidance is clear that repurposed customer content in advertising carries disclosure obligations.

Count objections, weighted. Tag recurring themes and count both the number of comments and the total likes behind each. Nine comments with 4,000 combined likes is a public objection thousands of people endorsed; ninety comments with 200 likes is a long tail. Both matter, differently. The method is in how to analyze Instagram comments.

Find the advocates. Sort by comment count per username and read the top twenty. These are people commenting on your posts repeatedly, unpaid, at their own initiative — the cheapest ambassador pipeline that exists, and invisible without an export.

Compliance, briefly and seriously

A campaign export is a file of personal data. Usernames plus text tied to identifiable people fall squarely inside the GDPR definition, and the fact that the data was public does not exempt it — the European Data Protection Board's guidance on lawful processing applies to publicly available personal data the same as any other. Three habits keep you out of trouble:

  • Have a stated purpose and a retention period. "Giveaway verification, deleted 30 days after the winner is announced" is a defensible position. "It has been on a shared drive since 2024" is not.
  • Store it like customer data. Access-controlled drive, not a public link, not an email attachment forwarded to five agencies.
  • Aggregate for the report. The client deck needs theme counts and percentages, not a tab of 30,000 usernames. Keep raw data in one controlled place and ship summaries.

Mistakes that cost brands the most

  • Exporting only the hero post. The launch post gets the volume; the creator posts get the honesty. Export every post in the campaign, tag them in one column, and compare — the difference between how people talk on your feed versus a creator's feed is usually the most useful finding in the dataset.
  • Skipping replies on a tag-a-friend mechanic. If the campaign asked people to tag friends, a large fraction of entries sit in reply threads. Top-level only can miss a third of the entrant list.
  • Exporting once, at the end. Covered above, and the most expensive mistake on the list because it is unrecoverable.
  • Reporting comment volume as success. 60,000 comments where 40,000 are the same three tag-a-friend accounts is not engagement, it is a mechanic. The username pivot tells you which one you have before the client asks.
  • Deleting the raw files after the report. Next quarter's campaign is only measurable against this one if you kept it. Retention rules cut both ways — set a period and keep the file for it.

The short version

If you own every post and want continuous monitoring, build on the Graph API and accept the engineering. If you need the comments from a campaign that spans creators, partners and competitors — which is what a campaign is — the URL-based export is the only route that reaches all of it. Size to your largest post, buy the pass that clears it, export daily while the campaign is live, and stack the files into one sheet with a post column. Everything else is analysis, and analysis is easy once the data is in one place.

Export Instagram comments now

Paste any Instagram post or Reel URL — every comment in CSV-ready format.