Skip to content

Can You Get Reddit Data Without the Official API?

Reddit's official API tightened sharply in 2023, but Reddit still serves its public listings in machine-readable form. Here is what is public, what the official API changed, and where engagement counts quietly go missing.

7 min read · 16 Oct 2026

Mostly yes — Reddit still serves its public content in a machine-readable form, independent of the authenticated Data API that tightened so painfully in 2023. The catch is not access; it is completeness. The public surface gives you posts, comments and subreddit listings, but some of the engagement numbers that the authenticated API returns come back empty. Knowing which is the difference between reliable data and a dataset with quiet holes in it.

Here is what changed, what is public, and what to watch for.

What the official API changed

For most of Reddit's history, its Data API was free and generous, and an entire ecosystem of apps and research tools was built on it. In 2023 Reddit moved high-volume access to paid pricing and cut the free, authenticated rate limits — the change that set off the well-publicised developer backlash and the subreddit blackout that summer. The API still exists and still works; it simply stopped being free at scale, and unauthenticated access was tightened alongside it.

That is the context for "without the API": people are not usually looking for an unauthenticated back door so much as a way to read public Reddit content without taking on paid API quotas for data that is already public.

The public surface Reddit still serves

Reddit has, for years, exposed its content in two machine-readable forms that sit alongside the human pages:

  • JSON by appending .json. Almost any Reddit URL returns JSON when you add .json — a subreddit listing, a post with its comment tree, a user's posts. This is the same data the site renders, in a form you can parse.
  • RSS/Atom feeds. Subreddits, users and searches expose feeds, which are a lighter way to read a listing's recent items.

These are public and require no account. They are also rate-limited and have been tightened over time, so they are a surface to read politely, not an unlimited firehose — but for reading public posts and comments, they are what is actually available.

Where the data quietly goes missing

This is the part that bites people who assume "public JSON = full data." Depending on which public surface a given listing comes through, some fields are simply absent:

  • Engagement counts can be null. Score, comment counts and view counts are present on some public responses and missing on others. A pipeline that assumes every post carries a score will silently record zeros or nulls for a meaningful share of rows.
  • Some single-item reads are gated harder than listings. Reading a subreddit's or a user's recent posts is reliably public; pulling one specific post's full detail or a user's profile can hit a block where the listing did not, because Reddit treats those surfaces differently.

None of this is a reason the data is unusable — it is a reason to know, per field, whether a value is "genuinely zero," "not exposed on this surface," or "blocked." Collapsing those three into a single blank is how public-data pipelines end up confidently wrong. The same discipline applies elsewhere: a missing TikTok transcript means the video was never captioned, not that it was captioned with empty text — an absence to report, not a zero to invent.

What TrueScrape returns

TrueScrape reads Reddit's public surface and is explicit about the gaps rather than papering over them. The endpoints cover subreddit listings (/v1/reddit/subreddit), search, a user's posts, a post's comment tree (/v1/reddit/post-comments), and subreddit details. Where a count is not exposed on the public surface, the field comes back null — "we don't know," not a fabricated 0 — so you can tell the absence of a number from a real zero. And, as everywhere in the API, a request that genuinely returns nothing is not charged.

curl "https://api.truescrape.com/v1/reddit/subreddit?subreddit=programming" \
  -H "x-api-key: YOUR_KEY"

So: you can read public Reddit without the paid Data API, because Reddit still serves its listings and comment trees as JSON and feeds. The work is not getting access — it is handling the fields that the public surface leaves out, honestly, instead of letting nulls turn into silent zeros.

Sources

Everything described here runs on the same API. You are never charged for a failed request, an empty result, or a cache hit.