Reddit Search Scraper

Search Reddit,
keep the results.

Type a search term - or paste a reddit.com/search/?q=… URL - and the posts come back as a table: the title, which subreddit it was in, who posted it, its score, how many comments it has, when it was posted, and a link. Nine columns, one row per post, sorted the way you choose.

one-time 500 free rows$0.002 per row afterone row per postCSV · JSON · Excel
How it works

A search,
and a sort.

One required field and two controls. The sort is what decides which slice of Reddit you pay for.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Reddit Search Scraper.
  3. STEP 3Type search terms, one per line - or paste reddit.com/search/?q=… URLs, or upload a CSV, XLSX, TXT or Parquet file.
  4. STEP 4Set a limit per query if you want one. The field takes a minimum of 1 and defaults to 100.
  5. STEP 5Pick a sort: Relevance, Hot, Top, New or Comment count.
  6. STEP 6Click Get Data and download as CSV, JSON or Excel.

The limit is per query, not per run: five search terms with a limit of a hundred is a hundred posts from each, not a hundred altogether.

Why it is useful

Five sorts,
and one you rarely get.

A search read in a browser is whatever Reddit decided to show you. A sorted export is a sample you chose.

Sort by comment count, not just score

Comment count is the sort that finds arguments. A post with a modest score and hundreds of comments is a thread where people disagreed - which is usually where the useful detail about a product or a decision actually sits, and it is not what Top surfaces.

The subreddit comes as its own column

subreddit being separate from title is what makes a search across the whole site useful. One query returns posts from wherever they were written, and you can group by community afterwards rather than running a separate search per subreddit.

Two ways to ask for the same thing

A plain search term and a reddit.com/search/?q=… URL both work, in the same box. If you have already built a search in the browser - with whatever filters you added to the URL - you can paste it rather than reconstructing it.

Read this first

What comments is,
and what it is not.

One column name on this page reliably gets misread, and it is worth thirty seconds to avoid planning around the wrong thing.

The comments column is a number: how many comments a post has. It is not the comments themselves. There is no comment text anywhere in this export, and no way to make it appear - the nine columns are the whole schema. If what you want is what people actually wrote, that is a different service on this platform with its own schema, and this one will not give it to you no matter how you sort.

The confusion is easy to fall into because the sort control uses the same word: choosing Comment count posts the value comments. The sort and the column are related - one orders by the other - but neither of them is comment text. Think of this service as an index of threads, and the comments service as what is inside them.

That said, the count is exactly what you want for finding the threads worth reading. Sorting by Comment count surfaces posts where a lot of people replied, which is a different and often better signal than Top: a high score means people agreed with the post, while a high comment count means they had something to say. For product research, complaints and comparisons, the second is usually the more useful of the two.

One limit belongs here rather than buried at the bottom. We hold three run exports for this service and none of them contains a post - every content column was empty on all four rows. What makes this worth saying plainly is that the runs were not misfired: real queries were submitted, both of the shapes the form asks for, and they still came back with only query and status filled. So the column names below are dependable and nothing past them is. Run one search on the free tier and read the header row before you build anything on it.

What you get

Nine columns,
and names we can prove.

These names are confirmed twice: they are the column list the service itself declares, and they are the header row of every export we hold. What each column is for is below. What each will contain is not - the note explains why.

query
The search term or search URL this row came from, echoed back. The scraper writes it, so it is on every row even when the request failed - group by it whenever a file covers more than one search.
title
The post's title, as written by whoever posted it.
subreddit
The community the post is in. Its own column, so you can group a site-wide search by where the posts came from.
author
The Reddit username credited with the post. See the legal note below - a username is pseudonymous, not anonymous.
score
The post's score. Reddit's score is votes up minus votes down rather than a raw count of upvotes, so it can be low on a post that plenty of people saw.
comments
How many comments the post has - a count, not the comments. There is no comment text in this export. Read the note above; the text is a separate service with its own schema.
created
When the post was made, as the export reports it.
url
A link to the post.
status
What happened to this request - read this one first. Because a failed request still comes back as a labelled row rather than vanishing, you can tell exactly which query did not work. A row can arrive with all nine fields present and still be a failure notice rather than a post.

The names are solid; everything past them is your first run's job. We hold three run exports for this service and none of them contains a post. Every content column - title, subreddit, author, score, comments, created, url - was empty on all four rows; only query and status carried anything at all. It is worth being precise about why that matters here: the queries were real. A plain search term and a reddit.com/search/?q=… URL were both submitted, exactly the two shapes the form asks for, and the rows still came back with no post in them. So these runs confirm the shape of the export and tell you nothing whatsoever about its contents. What they do confirm is the column list: the header row is identical across all three exports and matches the service's declared set exactly. Everything else - what a score looks like, what format a date arrives in, whether comments is a number or a string - is deliberately absent rather than guessed. The form also warns that anti-bot sites return a blocked status on the free pool, which is residential-only; that is the platform's own warning about the shared pipeline and it is worth planning for. Run the free tier against one search and read the header row and the first few values before you build on them.

Use cases

Three jobs people
run this for.

All of them start from something you would type into Reddit's own search box.

Research

Find where a topic is actually discussed

Search a product, a company or a problem across the whole site and keep subreddit. What comes back is a map of which communities care - which is usually more useful than any single thread, and it is the thing a browser search makes you scroll to work out.

Research · Strategy
Monitoring

Re-run the same search on a schedule

The same terms run weekly give you two comparable files. New posts, movement in score and rising comments counts are a diff rather than an afternoon of scrolling - and query keeps every row tied to the search it came from.

Brand · Social listening
Triage

Shortlist the threads worth reading

Sort by Comment count, take the top of the file, and you have the threads where people argued rather than the ones where people agreed. That is the shortlist to read by hand - and the input list for the comments service, if you want what was said.

Product · Support
Pricing

Pay per post row,
nothing else.

No subscription, no minimum, no per-seat licence. Your first 500 rows are on us - after that it is pay-as-you-go.

Free

500 rows

For every new account, one time. No credit card. All scrapers unlocked. Given that no run we hold has returned a post, this is the part that matters most here: spend a few rows establishing what this export actually contains before you plan around it.

One-time · No card
Pay as you go

$0.002 per row

Roughly $2 per 1,000 posts, the same flat rate as every other scraper on the platform. The limit is per query, so ten search terms with a limit of a hundred is a thousand rows - worth the arithmetic before you start.

Credits never expire
Enterprise

Custom - whole topics, on a schedule

Volume pricing, SLAs, dedicated workers and tailored onboarding for teams tracking a subject across communities rather than running the odd search. Tell us your numbers and we will quote.

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

The same question,
somewhere else.

Reddit is one place people talk. These read the others, each with its own schema.

Legal

Is it legal to scrape
Reddit search results?

Short answer: these are public posts on a public search page - but a username is a person, and Reddit's terms govern automated access.

Everything in these columns is shown to any visitor on a public search results page, signed in or not. No login is used, no paywall is crossed and no account is touched, and the run goes through our proxy pool rather than your own address. Collecting publicly visible information for research is long-settled practice.

The author column is personal data, and Reddit is a place where that matters more than usual. Usernames are pseudonymous rather than anonymous: many are long-lived identities with years of posting history attached, and people say things under them precisely because they are not using their real name. If you store the column you are handling personal data, and the GDPR and similar regimes apply to you regardless of where you got it. Counting how often a topic comes up is an easy case; assembling a profile of what a named user has posted is not, and this service is not intended for it.

Reddit's terms restrict automated access and its content is licensed to Reddit by the people who wrote it, so this remains a question of terms rather than of what is publicly reachable; read them before you scale. We run no third-party trackers on the data layer, and your exports self-delete after 30 days.

livescraper.app · principles
Public search results only
No logins, no paywalls
Usernames are pseudonymous, not anonymous - handle them as personal data!
No third-party trackers on the data layer
Exports self-delete (30 days)
The same posts any visitor sees in Reddit's own search.
FAQ

Things people ask before signing up.

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

What do I submit?+
Either a plain search term or a Reddit search URL of the form reddit.com/search/?q=…, one per line, mixed freely. The form's own placeholder shows both shapes. You can upload a CSV, XLSX, TXT or Parquet file instead of pasting.
What columns will the export contain?+
Nine: query, title, subreddit, author, score, comments, created, url and status. That is the column list the service itself declares, and it matches the header row of every export we hold.
Does this return the comments on a post?+
No. The comments column is a count of how many comments a post has, not the comments themselves, and there is no comment text anywhere in these nine columns. Fetching what people actually wrote is a separate service on the platform with its own schema. Use this one to find the threads, and that one to read them.
What are the sort options?+
Five: Relevance, Hot, Top, New and Comment count. Comment count is the one you rarely get elsewhere, and it is often the most useful - a post with a modest score and a lot of comments is a thread where people disagreed, which is usually where the detail is.
What format is the created column?+
We do not say, and that is deliberate. None of the runs we hold returned a post, so we have never seen a value in it. Guessing would be worse than useless, because a date column is exactly the kind of field people write parsing code against. Run the free tier on one search and look at it first.
Have you actually run this?+
Three times, and not one run returned a post - every content column was empty on all four rows. Worth being precise about why that matters: the queries were real, not placeholders. Both shapes the form asks for were submitted, a plain search term and a reddit.com/search URL, and the rows still came back with only query and status filled. That tells you the shape of the export and nothing at all about its contents, and we would rather say so than dress the page up.
Does it need a proxy?+
The form warns that anti-bot sites return a blocked status on the free pool, which is residential-only. That is the platform's own warning about the shared pipeline rather than a statement about this site, and it is worth planning for. What we can tell you from our side is narrower and more useful: none of the three run exports we hold came back with a post in it, so read the status column on your own first run before you build anything on the rest.
What does it cost?+
The first 500 rows on a new account are free and one-time; after that it is $0.002 per row - about $2 per 1,000 - pay-as-you-go with no subscription. Credits do not expire and there is no monthly reset.

Find the threads first.
Read them second.

Run one search, sort by comment count, and see which conversations are worth your afternoon. Your first 500 rows are free.

Export Reddit search results as rows

The Reddit Search Scraper turns a search into a spreadsheet. You submit search terms or reddit.com/search/?q=… URLs - one per line, mixed freely, or uploaded as a CSV, XLSX, TXT or Parquet file - set a limit and pick a sort, and each post comes back as a row: the title, the subreddit it was posted in, the author, its score, how many comments it has, when it was made, and a link. Nine columns, one row per post, downloadable as CSV, Excel or JSON. The service's own description puts it plainly: it returns search results.

The column most often misread is comments, which is a count rather than the comments themselves. Nothing in these nine columns is comment text, and no sort will make it appear - fetching what people wrote is a separate service with its own schema. The word does double duty in the interface, because choosing the Comment count sort posts the value comments, but the sort and the column are both about how many, not about what. The useful way to hold it is that this service is an index of threads and the other is what is inside them.

That count is worth sorting on. Five orders are offered - Relevance, Hot, Top, New and Comment count - and the last is the one that rarely appears elsewhere. A post with a high score is one people agreed with; a post with a high comment count is one people argued about, and for product research, complaints and comparisons the argument is usually where the detail is. subreddit arriving as its own column is the other thing that makes a site-wide search worth running: one query returns posts from wherever they were written, and you group by community afterwards rather than searching each one separately. The limit applies per query, so several terms multiply.

One limit is stated plainly because it changes what to expect from this page. We hold three run exports and none of them contains a post: every content column was empty on all four rows. That is worth stating precisely, because the runs were not misfired - real queries were submitted, both of the shapes the form accepts, and the rows still came back with only query and status filled. So the nine names above are dependable and everything past them is deliberately absent rather than invented. The form also warns that anti-bot sites return a blocked status on the free pool, which is residential-only; that is the platform's own warning about the shared pipeline and it is worth planning for. On the legal side, everything collected is public, but author is a pseudonymous username attached to a real person's posting history - treat it as personal data, and read Reddit's terms before you scale. Start free: your first 500 rows cost nothing and need no credit card, and after that it is $0.002 per row, flat. See pricing for current rates.