Reddit Comments Scraper

Point it at a post,
keep the whole thread.

Paste the URL of a Reddit post and its comments come back as a table: who wrote each one, the comment text itself, its score, when it was posted, a link straight to it, and a status column. Seven columns, one row per comment, in whichever of six orders you choose.

one-time 500 free rows$0.002 per row after7 columnsCSV · XLSX · JSON
How it works

A post URL in,
a thread out.

You choose the posts and the order. The job reads the comments on each one and writes a row for every comment it returns.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Reddit Comments Scraper.
  3. STEP 3Paste Reddit post URLs, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  4. STEP 4Choose a sort order: Best, Top, New, Controversial, Old or Q&A.
  5. STEP 5Set a limit per query, or leave it empty to take everything.
  6. STEP 6Choose your output format and click Get Data.

One row per comment, each tagged with the post URL it came from - which matters here, because it is the only column that ties a comment back to its thread.

Why teams use it

The comment text itself,
not a count of them.

What people actually wrote

This is the service that returns comment bodies. Its sibling, the Reddit Search Scraper, has a column called comments - but that is how many a post has, a number. If you want the sentences rather than the tally, this is the one, and the two are designed to be run one after the other.

Six orders, including the ones that matter

Best, Top, New, Controversial, Old and Q&A. The order is not cosmetic when you are capping rows per query: a limit plus Top gives you the comments the thread agreed with, and the same limit plus Controversial gives you the argument. Choose the sort with the limit in mind, not after it.

Every row links back to itself

Each comment carries its own permalink, not just the post's. That is what makes an export auditable months later - a quote in a report can be traced to the exact comment it came from, and a reviewer can open it without searching the thread by hand.

What you get back

Seven columns,
one row per comment.

Each row is one comment: who wrote it, what it says, how it scored, when it appeared, where to find it, and how the fetch went.

Two things are worth knowing before you plan around this export, and both come from the shape of the schema rather than from any run. The first is that it is flat: there is no parent id, no comment id and no depth column, so what you get is a list of comments and not a reply tree - query is the only thing tying a row back to its thread, which is why it is worth keeping. The second is that status is a real column and not decoration. The column list below is the platform's own published array, confirmed against the header of the archived runs; read the note under it before you write a parser, because it is candid about what this page will and will not tell you.

Data dictionary

Seven columns,
in export order.

The export's header row, in order, confirmed against the platform's published column list. Descriptions say what each field is for; they claim nothing about its format or how often it arrives filled - see the note underneath.

query
The Reddit post URL you submitted, repeated on every row that came from it. Written by the scraper rather than taken from the page, so it is there on every row - and on this export it carries more weight than usual, because nothing else identifies which thread a comment belongs to.
author
The Reddit account that wrote the comment. A username rather than a real name, but still a person - see the note on personal data further down this page.
body
The comment text. This is the column that makes this service different from the search one, whose comments field is a count rather than the writing.
score
The comment's score as Reddit shows it - the net of the votes it has received.
created
When the comment was posted. This page does not tell you the format, because no run we hold returned one; check the first rows of your own run before parsing it.
permalink
A link to the individual comment, not to the post. The column to keep if you ever need to check a quote by hand or cite one in a report.
status
How the fetch went for that row. It is a working column, not decoration: when a row comes back without content, this is where the reason is. Read it before concluding that a post simply had no comments.

Read this dictionary as a list of names, not a promise about contents. The seven names and their order are solid - the platform's published column list and the header row of the archived runs agree exactly. What is not settled is what arrives in them, because no populated Reddit Comments export exists to base a claim on: the runs we hold came back with only query and status filled, and they were aimed at a placeholder URL rather than a real post, so they tell you about the schema and nothing whatever about Reddit - in either direction. That is why you will find no example value, no date format and no fill rate anywhere on this page. Two structural facts do carry over regardless, because they are properties of the column list itself: the export is flat, with no parent id, comment id or depth to rebuild a reply tree from, so plan for a list rather than a hierarchy; and status is worth wiring into your pipeline from the start. The platform's own form warns that anti-bot sites return a blocked status on the free pool, which is residential-only - that is its general caution about the shared pipeline, and it is worth planning for whatever you are pointing at. Run one post on the free tier and look at the first rows before you build.

Run controls

Set on the job,
not in the spreadsheet.

A list of post URLs, an order and a limit. The sort and the limit work together - they decide which part of a thread you keep, and what a run costs.

Reddit post URL One per line Sort: Best Sort: Top Sort: New Sort: Controversial Sort: Old Sort: Q&A Limit per query Empty for everything CSV · XLSX · TXT · Parquet upload Shared proxy pool, never your IP
Common workflows

Three jobs this
runs more than any other.

A few examples of how teams use comment data to answer a question they actually have.

Research

Read what a thread actually said

A post's score tells you the reaction was strong; it does not tell you what the reaction was. Pull the bodies and you have the argument in front of you rather than a number standing in for it - and with a permalink on every row, anything you quote can be checked.

Research · Insights
Product

Find the complaint under the upvotes

Sort by Controversial rather than Top and cap the rows, and you get the part of the thread that disagreed with itself. That is usually where the unmet need is - the objection people are still arguing about rather than the take everyone already agreed on.

Product · Support
Pipeline

Chain it after a search

Run the Reddit Search Scraper to find the posts, keep its url column, and feed that list straight in here as your queries. Search gives you which threads matter; this gives you what was said in them. The two schemas are separate on purpose and join on the post link.

Data · Ops
Pricing

Pay only for the rows
you actually pull.

No subscription, no minimum, no recurring bill. Your first 500 rows are on us - after that, pay-as-you-go at the same flat rate as every other scraper here.

Free tier

500 free rows - $0

Every new account, one-time. No credit card required. Per-query limits, file upload and every export format included.

$0 forever
Pay-as-you-go

$0.002 per row, after the free tier

Roughly $2 per 1,000 comments. The pre-flight estimator shows the row count and credit cost before a run starts - no surprise bills, no compute units to translate.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for continuous monitoring or very large thread pulls. Tell us your numbers and we will quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

The post it came from,
and the same job elsewhere.

The legal bit

Is it legal to scrape
Reddit comments?

Short answer: the comments are public - but this export contains personal data, and that is worth being straight about.

The comments collected here are the ones a post shows to anyone who opens it, signed in or not. Nothing here touches a login, a private subreddit, a direct message or an account you do not own. Collecting publicly published discussion is long-established practice, and the permalink on every row means anything you take can be traced back to its source.

Unlike a product catalogue, this export is personal data and we would rather say so than imply otherwise. author is a Reddit account, and body is something a person wrote - pseudonymous, not anonymous. Usernames are routinely linkable to individuals, and comment text can reveal a great deal about the person who wrote it. Treat both columns under whatever privacy rules apply to you, keep only what you need, and think carefully before republishing a comment next to its author's name.

Reddit's own terms restrict automated access and its content licensing has changed more than once, so this is a terms question as well as a legal one - check them, especially for anything commercial or redistributive. We run no third-party trackers on the data layer, and your exports auto-delete after 30 days.

livescraper.app · principles
Public comments only
No logins, no private subreddits
Usernames are personal data
Every row keeps its permalink
Exports auto-delete (30 days)
Check Reddit's own terms before scaling.
Common questions

Things people
ask before signing up.

The questions we hear most. Anything else? Talk to us - humans, not bots, write the answers.

How do I scrape Reddit comments?+
Using the Reddit Comments Scraper:
  1. Sign in to the platform.
  2. Open the Reddit Comments Scraper.
  3. Paste Reddit post URLs, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  4. Choose a sort order: Best, Top, New, Controversial, Old or Q&A.
  5. Set a limit per query, or leave it empty to take everything.
  6. Choose your output format and click Get Data.
What is the difference between this and the Reddit Search Scraper?+
Search finds posts; this reads the comments on one. The search service has a column called comments, but that is how many a post has - a number, not the writing. This service returns the comment bodies themselves. Running search first and feeding its post links in here is the intended pairing.
Do I get the reply structure?+
No. The schema is flat - seven columns with no parent id, no comment id and no depth - so you get a list of comments rather than a reply tree. The query column, which holds the post URL you submitted, is the only thing tying a row back to its thread, which is why it is worth keeping in your output.
Can I choose which comments I get?+
Yes, through the sort order, and it matters more than it looks when you are also capping rows. There are six: Best, Top, New, Controversial, Old and Q&A. A limit plus Top keeps what the thread agreed with; the same limit plus Controversial keeps what it argued about.
What comes back for each comment?+
Seven columns: the post URL you submitted, the author, the comment body, its score, when it was created, a permalink to that individual comment, and a status column.
What is the status column for?+
It records how the fetch went for that row, and it is worth reading rather than ignoring. When a row comes back without content, the reason is there. The platform's own form also warns that anti-bot sites return a blocked status on the free pool, which is residential-only - that is its general caution about the shared pipeline, and it is worth planning for.
Why does this page not show example values?+
Because we have not seen any, and we would rather say so than invent them. No populated Reddit Comments export exists here: the runs we hold came back with only the query and status columns filled, and they were pointed at a placeholder URL rather than a real post, so they establish the schema and nothing about Reddit either way. The column names and their order are solid; the formats are not ours to promise. Run one post on the free tier and look.
How do I take a whole thread?+
Leave the limit box empty. It is pre-filled with 100 and its minimum is one, so emptying it - not typing zero - is what takes everything a post returns. Bear in mind that a busy thread can be large, and the estimator will show you the row count before the run starts.
How much does it cost?+
The first 500 rows are free and one-time, with no credit card. After that it is $0.002 per row - about $2 per 1,000 comments - which is the same flat rate as every other scraper on the platform. The estimator shows the cost of a run before it starts.

Your first 500 rows,
on the house.

500 one-time free rows on every new account - no expiry. After that it is $0.002 per row, pay-as-you-go - no card on file until you say so.

Activates instantly · no card required

Scrape Reddit comments from any post at scale

Livescraper's Reddit Comments Scraper turns post URLs into a comment table. You paste the links one per line - or upload them as a CSV, XLSX, TXT or Parquet file - pick one of six sort orders, cap the rows per query or leave the box empty to take everything, and download the results as a clean CSV, Excel or JSON file. Requests go out through the shared proxy pool rather than your own address.

Each row is one comment: the post URL you submitted, the account that wrote it, the comment text, its score, when it was created, a permalink to that individual comment, and a status column recording how the fetch went. The sort order is the control worth thinking about, because it decides which part of a thread a capped run keeps - Top and Controversial answer genuinely different questions about the same post.

Two things are worth knowing before you build against it. The schema is flat: there is no parent id, comment id or depth column, so the export is a list of comments rather than a reply tree, and the query column is the only link back to the thread. And this page names the seven columns and their order without claiming a single value format or fill rate, because no populated Reddit Comments export exists to base one on - the runs we hold returned only the query and status columns and were aimed at a placeholder URL, so they establish the schema and nothing about Reddit in either direction.

It is also worth wiring the status column into your pipeline from the start: the platform's own form warns that anti-bot sites return a blocked status on the free pool, which is residential-only. Run one post on the free tier and read the first rows before you write a parser. Your first 500 rows cost nothing and need no credit card, and after that it is $0.002 per row, flat.