7-day Trial

Reddit scraper that bills the thread, not every comment

Paste a Reddit thread and get the post with its top 25 comments in one request, billed as one page. No Reddit API key, no approval, and a page that fails to load costs nothing.

Try:

1,000 free requests · Pay only on success · 195+ countries · Claude ready

reddit.com/r/marketing/comments/1x6ko90/why_the_marketing_department_is_about_to_disappear/Example run · 25 comments · billed as 1 page · 2.9 s
Download
  1. Opening a real browser in the US
  2. Loading the thread the way a visitor does
  3. Reading the post and its comments

Ready for your own threads? Get an API key or book a demo.

Get your API key and free requests

Tell us a little about your team and get:

  • API key within one business day
  • Free requests on your own targets
4.7 / 5 on G2from 79 reviews
Book a demo

No card. Cancel anytime. We reply within one business day.

Scrape 25,000 Reddit comments for $0.98

A Reddit thread page holds the post and its top 25 comments, and Web Unlocker bills it as one page. Reddit comment scrapers on Apify bill the post and every comment as rows of their own.

One page, 25 comments.
Four pages, 100 comments.

Open the same thread sorted by best, new, top and old: each order is one more page with 25 other comments. A comment's own page brings its replies.

What 1,000 threads with 25 comments each cost

1,000 posts and 25,000 comments, at published prices

  • $0.98Gologin Web Unlocker
  • $38.74Enterprise Grade (Apify based)
  • $52.02Posts & Comments (Apify based)
  • $104Reddit Scraper Lite (Apify based)

The three most used Reddit scrapers on Apify bill each post and each comment as a row, 26,000 rows on the Free plan.

Choose how you get Reddit data

Reddit's public API closes by March 2027, and Reddit scrapers bill every comment. Here is what each route of Reddit scraping takes for the same 1,000 threads.

Reddit approval, billing unit, price for 1,000 threads with comments, page formats and free start in Gologin Web Unlocker, the Reddit Data API, Apify and Bright Data
What it takesWeb UnlockerReddit Data APIApifyBright Data
Start without Reddit's approvalYesNoYesYes
You pay forA pageAn API callEach post and commentEach record
1,000 threads with 25 comments$0.98By contract only$15.53 to $104$1.50 per 1,000 records
The whole page in HTML or MarkdownYesNoNoNo
Free to start for businessYesNoYesYes

Scraping more than Reddit? Web Unlocker returns any page the same way, at the same price.

Monitor a subreddit every 15 minutes for $3 a month

Web Unlocker has no alerts of its own. Your script asks for a subreddit's newest posts as often as you like, and each check is one page: 96 checks a day come to $2.82 a month.

Syften alerts start at $29.95 a month.
Your own check costs $0.001.

How to scrape Reddit data with Python or Node.js

A plain request to a subreddit comes back empty, because Reddit draws its posts in the browser. Web Unlocker loads the page in a real browser and returns it with all 27 posts.

  1. Step 01

    Get your API key

    Fill in the form above. The key arrives by email within one business day.

  2. Step 02

    Pick the page

    A thread for comments, a subreddit sorted by new for fresh posts, or a search for your keyword.

  3. Step 03

    Read the posts

    Every post and comment on the page carries its author, score, time and text.

Install
pip install requests
Run
GOLOGIN_SCRAPING_API_KEY=your_key python reddit_thread.py
Sends to
https://parsing.webunlocker.gologin.com/v1/scrape
import html as entities
import json
import os
import re
import time

import requests

thread = "https://www.reddit.com/r/marketing/comments/1x6ko90/why_the_marketing_department_is_about_to_disappear/"


def scrape(url):
    for attempt in range(3):
        response = requests.get(
            "https://parsing.webunlocker.gologin.com/v1/scrape",
            params={"url": url, "geo": "us", "format": "json"},
            headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
            timeout=90,
        )
        page = response.json().get("data", {}).get("html", "") if response.ok else ""
        if "<shreddit-comment" in page:
            return page
        time.sleep(5)
    raise RuntimeError("No comments came back, try again later")


def attr(tag, name):
    match = re.search(rf'\s{name}="([^"]*)"', tag)
    return entities.unescape(match.group(1)) if match else None


def text(page, element_id):
    start = page.find(f'id="{element_id}"')
    end = page.find("</div>", start)
    paragraphs = re.findall(r"<p>(.*?)</p>", page[start:end], re.S)
    return "\n".join(entities.unescape(re.sub(r"<[^>]+>|\s+", " ", p)).strip() for p in paragraphs)


page = scrape(thread)
post = re.search(r"<shreddit-post\b[^>]*>", page).group(0)
comments = {}
for tag in re.findall(r'<shreddit-comment\b[^>]*thingid="t1_[^>]*>', page):
    comment_id = attr(tag, "thingid")
    comments[comment_id] = {
        "author": attr(tag, "author"),
        "score": attr(tag, "score"),
        "depth": attr(tag, "depth"),
        "text": text(page, f"{comment_id}-comment-rtjson-content"),
    }

print(json.dumps({
    "title": attr(post, "post-title"),
    "score": attr(post, "score"),
    "upvote_ratio": attr(post, "upvote-ratio"),
    "comments_on_reddit": attr(post, "comment-count"),
    "comments": list(comments.values()),
}, indent=2, ensure_ascii=False))

Ready to run it on your own threads? Get your API key and free requests.

Scrape every reply with Cloud Browser

Web Unlocker brings the top 25 comments of a page. Cloud Browser opens Reddit in a real browser and keeps clicking: 286 comments, five levels deep, in 95 seconds.

  • Every reply, five levels deep

    It clicks every "more replies" for you: 286 comments in 95 seconds, on a thread where one page holds 25.

  • The whole feed, not one page

    It scrolls a subreddit the way a person does: 576 posts in 90 seconds, back to February.

  • Log in once, stay logged in

    The profile keeps its session, so Reddit opens straight away on every next run. Residential IPs included.

Run it from Playwright, Puppeteer or Claude. See Cloud Browser.

Part of the complete tech stack

One account, one proxy network, one ecosystem. Pick the product the job needs.

Scraping stores too? See the Amazon, eBay and Walmart scrapers, or every web scraping tool.

Reddit scraper FAQ

How do I scrape Reddit data?

Send the Reddit page address to Web Unlocker: a thread, a subreddit or a search. It opens the page in a real browser and returns it, with the author, score, time and text of every post and comment on it. The code above does exactly that.

How do I scrape Reddit comments?

Scrape the thread page: it holds the post and its top 25 comments, billed as one page. Sort the thread by new, top or old for 25 more each time, or open any comment's own page for its replies.

How do I build a Reddit scraper in Python?

Send the thread address to Web Unlocker with the requests library and read the comments from the page. The Python tab above is a complete script, tested on the live API.

Can you scrape Reddit without the API?

Yes. Threads, subreddits and search are public pages that load without a login. Web Unlocker returns them the way a visitor's browser sees them, with no Reddit API key and no approval. The old .json addresses and old Reddit now ask you to sign in, the regular reddit.com pages do not.

How much does the Reddit API cost?

Free only for registered non-commercial apps. Commercial use needs Reddit's approval and a contract. Reddit does not publish its price: the last rate made public, in 2023, was $12,000 for 50 million calls.

What happens when Reddit's public API closes?

Apps without a Reddit registration lose API access from January 12, 2027, and public API access ends by March 2027. Reddit pages stay public, and Web Unlocker reads the pages.

What replaced Pushshift?

Nothing official. Archives that copy Reddit catch posts later and miss the latest votes. Web Unlocker reads Reddit itself, so a post shows its score at the moment you scrape it.

Can I scrape a whole subreddit?

Yes, page by page: each page lists about 25 posts, and the next page is one more request at the same price. Reddit stops any listing at about 1,000 posts, so for more, slice by search terms or time.

Can I scrape Reddit search results?

Yes. Send the reddit.com/search address with your keyword, sorted by new or top, for posts or for comments, and page through the results.

How do I export Reddit data to CSV?

Web Unlocker returns the page, not a table, so nothing is cut before you see it. Turning it into a CSV takes a few lines of code, or one prompt: hand the page to Claude with the Gologin scraping skill and ask for a CSV.

How much does a Reddit scraper cost?

Under $1 per 1,000 pages, and the same for every page. A thread with its top 25 comments is one page, so 1,000 threads cost about $1. A page that fails to load costs nothing. Plans start at $49 a month for 50,000 requests.

Is there a free Reddit scraper?

Yes, to start: Web Unlocker comes with 1,000 free requests, enough for 1,000 threads with their top comments.

What is the best Reddit scraper?

It depends on what you need. Apify and Bright Data sell ready rows and bill every post and every comment. Web Unlocker returns the whole Reddit page at one price, so the comments come with the thread and you parse them your way.

Is scraping Reddit legal?

Threads, subreddits and search are public pages that load without a login. Web Unlocker loads them the way a visitor's browser does and returns the page. What you collect and how you use it is your call, so check it against the rules that apply to your project.

Get your API key and free requests

Tell us a little about your team and get:

  • API key within one business day
  • Free requests on your own targets
4.7 / 5 on G2from 79 reviews
Book a demo

No card. Cancel anytime. We reply within one business day.