L logiover
social-media · Jun 2, 2026 · 6 min read

How to Scrape Historical Reddit Posts and Comments in 2026

A practical guide to retrieving 10+ years of archived Reddit posts and comments via PullPush — full-text comment search, date-range queries, no login and no proxy.

Reddit’s own search is famously bad at the one thing researchers want most: finding comments by their text. You can search post titles, sort of, but you cannot full-text-search the comment bodies where the actual discussion lives — and you certainly can’t reach back ten years cleanly. The old Pushshift archive solved this for a generation of researchers before access tightened. Its community-maintained successor, PullPush.io, carries that torch: a public archive of 10+ years of Reddit posts and comments with real full-text search. This guide covers what PullPush exposes, how the archive differs from live Reddit, and how to pull large, structured historical datasets from it.

What’s worth extracting

This scraper queries the PullPush archive and returns structured post and comment records with full context:

For posts:

  • Content — title and self-text (body), with full-text search across both.
  • Identity — author, subreddit, post ID, permalink/URL.
  • Engagement — score and comment count at archive time.
  • Timing — precise creation timestamp.

For comments:

  • Content — the comment body, with full-text search across comment bodies (the thing Reddit itself can’t do).
  • Thread structure — reconstructed parent/child links and a computed comment depth, rebuilt from the archived parent references.
  • Identity & engagement — author, subreddit, score, timestamp.

It also surfaces subreddit and user metadata for context, and — importantly for accountability work — preserves the distinction between deleted (by the author) and moderator-removed content where the archive captured it.

Archive data, not live Reddit

This is the crucial mental model: you are not scraping reddit.com. You’re querying a historical archive that ingested Reddit content over time. That changes everything about how it behaves and what it’s good for:

  • No login, no proxy, no anti-bot fight. PullPush exposes public archive endpoints. The actor makes direct HTTP requests with no authentication — none of the headless-browser, OAuth or proxy machinery a live-Reddit scraper needs.
  • Full-text comment search — the headline capability. You can search comment bodies for a phrase across all of Reddit, which the live site simply does not offer. This alone is why researchers reach for the archive.
  • Deep time range. 10+ years of history with precise date-window filtering, so you can pull “every comment mentioning X in this subreddit between two timestamps.”
  • Thread reconstruction. Comments are archived flat; the actor rebuilds the parent/child hierarchy and computes depth so you can analyze conversation structure, not just a bag of comments.
  • Polite by design. Deduplication, polite request pacing and exponential-backoff retries keep the actor a good citizen of a community-run archive.

The trade-off versus live Reddit is freshness and completeness: an archive reflects what was ingested, when it was ingested. It’s the right tool for history and longitudinal research, not for “what’s on the front page right now.”

How the targeting modes work

You can target the archive several ways, alone or combined:

  • Subreddit listings — pull posts and/or comments from a subreddit within a date window.
  • Full-text search — search post titles + self-text, or search comment bodies, for a query string.
  • Individual posts — fetch a specific post with its complete archived comment tree, reconstructed.
  • User histories — pull a user’s full archived posting history across subreddits.
  • Auto-detected URLs — paste Reddit URLs and let the actor figure out what to fetch.

Combine these with date-range and score filters to scope precisely — e.g. “top-scoring comments containing a phrase, in r/wallstreetbets, in Q1 2021.”

Run the Reddit Historical Archive Scraper — 10+ years of archived posts and comments via PullPush, with full-text comment search Reddit can’t do. Date-range and score filters. No login, no proxy.

Schema design for downstream use

When the data lands in your corpus or analytics store, you want posts and comments shaped for text mining and thread reconstruction. A clean comment record:

{
  "type": "comment",
  "id": "h8x2k9a",
  "post_id": "kqz1ab",
  "parent_id": "h8x1m3p",
  "depth": 2,
  "subreddit": "investing",
  "author": "some_user",
  "body": "I bought in 2019 and held through the dip because...",
  "score": 184,
  "created_utc": "2021-02-14T18:22:07Z",
  "removed_status": null,
  "permalink": "https://www.reddit.com/r/investing/comments/kqz1ab/.../h8x2k9a/",
  "scraped_at": "2026-06-02T12:00:00Z"
}

And a post record:

{
  "type": "post",
  "id": "kqz1ab",
  "subreddit": "investing",
  "author": "another_user",
  "title": "How are people thinking about the 2021 dip?",
  "selftext": "Curious how the long-term holders here...",
  "score": 2310,
  "num_comments": 487,
  "created_utc": "2021-02-14T16:05:00Z",
  "scraped_at": "2026-06-02T12:00:00Z"
}

A few schema choices worth making early:

  • Keep parent_id and depth on comments. The whole value of the reconstruction is being able to walk threads. Without parent links and depth you have isolated comments, not conversations.
  • Preserve the removed_status distinction. Author-deleted vs. moderator-removed is a meaningful signal for accountability and moderation research. Don’t collapse them into a single “missing” flag.
  • Store created_utc precisely. Longitudinal and event-study research lives and dies on accurate timestamps. Keep full-precision UTC.
  • Tag every row with type. Posts and comments share a store but have different shapes; the type tag keeps loaders and queries clean.

Typical use cases

What customers actually do with Reddit archive data:

  • AI / ML training corpora — build large structured Reddit datasets from Q&A and discussion subreddits for fine-tuning and retrieval-augmented pipelines. The full comment threads are ideal training material.
  • Brand and reputation analysis — search historical comments mentioning a brand to reconstruct an incident timeline and trace sentiment evolution.
  • Academic / computational social science — run longitudinal discourse, linguistic and election studies with precise date-window queries.
  • Quant / finance research — backfill historical Reddit sentiment from finance subreddits to backtest signals against price history.
  • Journalism and accountability — recover archived content (including the deleted-vs-removed distinction) for investigations into deleted statements.
  • Growth / B2B — map influential users and their historical posting behavior via complete user histories.

The common thread is history at scale with searchable comments. The value is being able to ask questions of the past — by phrase, by date, by thread — that live Reddit can’t answer.

Cost math for the managed approach

This actor charges a small per-item fee on top of the per-run start cost — on the order of a tenth of a cent per post or comment. A typical research pull — say, every comment containing a phrase in one subreddit over two years — might be tens of thousands of items, landing in the low tens of dollars for a corpus that would take days to assemble by hand. Because there’s no browser and no proxy, there’s zero proxy bandwidth bill and the compute footprint is light.

What you avoid by using a managed actor rather than querying PullPush yourself:

  • Learning the archive’s endpoint quirks and pagination behavior
  • Reconstructing comment thread hierarchy and depth from flat archived data
  • Implementing deduplication, polite pacing and exponential backoff to stay a good citizen
  • Handling the deleted-vs-removed status distinction consistently

Common pitfalls

A few things to know before building a Reddit archive pipeline, whether you build or buy:

  • The archive is not real-time. Recent content may not be ingested yet. For “what’s happening now,” this is the wrong tool — it’s built for history.
  • Coverage gaps exist. Community archives have ingestion gaps over their lifetime. Treat absence of a result as “not in the archive,” not “never existed.”
  • Score is frozen at archive time. A post’s archived score reflects when it was captured, not its final tally. Don’t treat it as the definitive vote count.
  • Be a good citizen. PullPush is community-run infrastructure. Aggressive querying hurts everyone; the actor’s pacing and backoff exist for a reason — don’t try to defeat them.
  • Respect content sensitivity. Recovered deleted/removed content carries ethical and sometimes legal weight. Handle it responsibly, especially for accountability and research use.

Wrapping up

The PullPush archive is the modern answer to “how do I search Reddit’s past, including comment bodies?” — a capability the live site doesn’t offer. The work is in querying the archive cleanly, reconstructing threads, pacing politely and handling removed-content nuances. If you need a one-off lookup you can hit the API directly; if you need large, structured historical datasets — training corpora, longitudinal research, sentiment backfills — a managed actor that handles thread reconstruction and polite retrieval delivers them without authentication or proxies.

Open the Reddit Historical Archive Scraper on Apify — 10+ years of posts and comments, full-text comment search, reconstructed threads. No login, no proxy, pay per item. Start with Apify’s free monthly credit.

Related guides