An Obama AMA from 2012 still has thousands of comments worth reading, threaded eight or nine levels deep, with the OP's replies scattered across the tree like Easter eggs. Reddit's UI handles that nesting beautifully on the page, but the moment you want to actually analyze the conversation — pull the top-100 highest-upvoted replies, find every reply chain that involved the original poster, see which controversial branches collected gold — you need the data flat in a spreadsheet. This guide walks you through using ExportComments' Reddit exporter to pull every comment from any thread into Excel, CSV, or JSON, with the parent_id field intact so you can rebuild the tree on your own terms.
Why export Reddit comments
Reddit is the only mainstream platform that exposes the full reply tree as a first-class structure — not a flat feed, not a two-level "reply to reply" cap, but actual recursive nesting that often runs five, six, ten levels deep. That's a feature for readers and a problem for analysts. The 2023 API-pricing protests made the problem worse: Apollo, RIF, and most of the third-party tooling people relied on for bulk Reddit data died in a single quarter. The site's own export options never filled the gap. Once a thread is in a spreadsheet, the work changes shape:
- Thread-tree analysis — pivot by parent_id depth to see where conversations actually happen versus where they get truncated by the UI's collapse-children behavior.
- Brigade detection — sort by created_at in five-minute buckets and watch for sudden, coordinated upvote-or-downvote patterns on a specific comment branch.
- AMA harvest — pull the top-N highest-upvoted comments from a single AMA thread and you've got the question-and-answer transcript everyone actually wanted.
- Cross-subreddit user behavior — combine multiple thread exports and group by commenter_username to study how the same accounts behave across r/AskReddit, r/wallstreetbets, and the niche subs.
- Sentiment shift over long-running threads — long /r/news megathreads evolve over hours; chart sentiment by created_at and the inflection points line up with breaking updates.
- Mod-action archive — export before a thread gets locked, archived, or pruned, and you've got the unredacted history.
How to export — step by step
Step 1: Grab the Reddit thread URL
Open the post on reddit.com or old.reddit.com — for example https://www.reddit.com/r/AMA/comments/abc123/i_am_barack_obama/. Both subdomains work. The exporter doesn't care whether you copy the new-Reddit, old-Reddit, or share-link version of the URL; they all resolve to the same post ID.
Step 2: Paste the URL into the exporter
Head to the Reddit exporter and drop the URL into the input field. If you've got a slate of threads to pull in one go — every weekly r/wallstreetbets daily-discussion thread for a quarter, every AMA from a single guest's profile, every megathread on a breaking-news event — switch to bulk mode and paste one URL per line. Bulk runs return one file per URL, packaged together in a single ZIP at the end of the job, so each thread stays cleanly separated for downstream analysis.
Step 3: Pick a format
Choose Excel (.xlsx), CSV, or JSON. Excel is the right pick if you want to pivot, filter, and chart immediately. CSV is the safest pick for BI imports and academic pipelines. JSON is the right pick if you're piping into a notebook or feeding the parent_id tree into a graph database to reconstruct the conversation as a DAG.
Step 4: Start the export
Click Export. The job runs server-side and walks the whole comment tree, including the "continue this thread" branches that the UI hides behind a click and the "load more comments" stubs Reddit collapses on long threads. Big AMAs with tens of thousands of comments 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 and you're ready to filter, pivot, and chart. Each row is one comment, with the columns described in the next section.
Inside the export — what fields you get
Each row is one Reddit comment. You'll find columns for:
- commenter_username — the u/handle of the comment author, or [deleted] if the account is gone.
- comment_text — the comment body, with Markdown formatting preserved.
- upvotes and downvotes — vote counts as Reddit reports them.
- awards — the awards attached (gold, silver, platinum, and the rotating special awards).
- parent_id — the ID of the comment this reply was posted to, which is what makes Reddit's nested tree reconstructable. Top-level comments have the post itself as their parent.
- is_op — Y if the commenter is the original poster of the thread.
- is_mod — Y if the commenter has moderator status in that subreddit.
- edited_at — the timestamp of the most recent edit, blank if the comment was never edited.
- created_at — original post timestamp in UTC.
- permalink — direct link straight to the comment on Reddit.
Common workflows
- AMA harvest — export the AMA, sort by upvotes descending, filter is_op=Y, and you've got the de facto Q&A transcript. The community already curated it for you by upvoting the questions worth asking.
- Brigade detection — bucket created_at into five-minute windows and chart comment-and-vote velocity per branch. Coordinated brigades show up as sharp spikes against a flat baseline, often concentrated on one parent_id.
- Thread-tree depth analysis — recursively walk the parent_id chain to compute depth per comment, then pivot by depth. Most threads die at depth three; the ones that go to ten are usually arguments worth reading.
- Cross-subreddit user behavior — combine exports from r/wallstreetbets, r/stocks, and r/investing, group by commenter_username, and study the overlap. Useful for spotting sock puppets and for understanding which accounts shape narratives across the cluster.
- Long-running thread sentiment shift — on a megathread that runs for twelve hours of breaking news, chart sentiment by created_at and the inflection points usually align with new information dropping into the conversation.
- Earnings-window monitoring — r/wallstreetbets surges around earnings days; export the daily-discussion thread from the day before, the day of, and the day after, and you can study how comment volume and tone shift around a single ticker.
Plan limits and API access
The Free tier returns up to 100 comments per export, enough to evaluate the format on a smaller thread. Personal scales to 5,000 results per export, Premium to 50,000, and Business to 250,000 — enough to capture every comment on the deepest AMAs. If you'd rather pull threads 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 and docs.exportcomments.com for endpoints and authentication.
FAQ
- Does this still work after the 2023 Reddit API changes?
Yes. The exporter handles the heavy lifting and absorbs the rate-limit and cost changes that broke most third-party Reddit tooling that quarter — you don't need your own API key, and you don't pay Reddit per call. - Can I rebuild the full nested reply tree from the export?
Yes. The parent_id column gives you the edge list. Walk it recursively from the post root and you reconstruct the tree exactly as Reddit renders it, including the depth-eight branches the UI hides behind "continue this thread." - Does it pull deleted or removed comments?
If a comment was deleted by the user or removed by a mod before you exported, the body is gone and the username will be [deleted] or [removed], same as on the page. There's no way to recover content Reddit has already wiped. - How do I tell which replies are from the original poster?
Filter is_op=Y. The column is set per-row, so on an AMA you can isolate every answer the host gave in one click. - Does it work on old.reddit.com URLs?
Yes. Old-Reddit, new-Reddit, and the share-link short URLs all resolve to the same post ID, so any of them works. - Can I run the same thread on a schedule to track changes?
Yes — schedule the job through the API or the dashboard scheduler. New comments, edits (visible via edited_at), and vote-count changes all show up on the next run.