Can I get historical Reddit posts and comments from 2025?
Not as a complete archive. No Reddit API, official or third-party, returns every post and comment from a past year like 2025, because Reddit's own API exposes only live listings and the public archive that used to fill that gap was shut down. What you can pull on Redditapis is targeted: keyword search across posts and comments with sort and time filters, a subreddit's top posts for the past year, any post's full comment tree by ID, and a user's full post and comment history, all as clean JSON from $0.0015 a read.
Why there is no full historical archive
Reddit's own API is built around live listings: a subreddit feed, a search, a post's comment tree, and a user's recent activity. It has never exposed a bulk archive of every post and comment, so there is no official endpoint that hands you all of 2025 in one call. For a while a large third-party archive filled that gap, but it was shut down, and nothing has replaced it as a full-history source. Every current Reddit API, including Redditapis, reads live Reddit data rather than a stored archive, so a past year is reachable only through targeted queries.
The practical answer is to stop thinking of it as a download and start thinking of it as a lookup. If you know the topic, the subreddit, the post, or the user, you can pull the 2025 content that matters and skip the rest.
What you can pull instead
These Redditapis endpoints reach past content through live Reddit queries. Reads are $0.0015 per call, and deep comment search is $0.02.
| What you want | Endpoint | Returns |
|---|---|---|
| Keyword search across posts | GET /search | Posts matching a query, with a sort (relevance, new, or top) and a time filter (t=year, month, week). |
| Keyword search across comments | GET /search/comments | Comments matching a query, with the same sort and time filters as post search. |
| Deep comment search | GET /search/comments/deep | A query fanned out across matching comment trees for deeper comment coverage. Billed at $0.02 per call. |
| Top of the past year | GET /sub/:name/top?t=year | A subreddit's highest-scoring posts for the window you ask for, including t=year. |
| A post's full comment tree | GET /post/:id/comments | Every comment under one post, addressed by the post ID. |
| A user's post history | GET /user/:name/submitted | The posts a single account has submitted, newest first. |
| A user's comment history | GET /user/:name/comments | The comments a single account has left, newest first. |
Set realistic coverage expectations
Because every one of these calls reads live Reddit rather than an archive, coverage is bounded by what Reddit still serves, not by what once existed:
Search is index depth, not the whole year
Keyword search returns Reddit's own search index for your query, which favors relevance and score over an exhaustive list. A time filter such as t=year bounds the window, but it does not guarantee every post from that window.
Top of the year is top by score
A subreddit's top of the past year gives you the highest-scoring posts for that window, which is the right tool for the best of 2025, but it is not the same as every post published that year.
Listings cap around 1,000 items
A single Reddit listing, including a user's submitted posts or comments, is paginated with an after cursor and caps at roughly 1,000 items. A very active account may not page all the way back to early 2025 through one listing.
A known post or comment is exact
When you already have a post ID, its full comment tree comes back complete for whatever is still live on Reddit. Deleted or removed items return as such rather than as original text.
Why t=year does not mean the year 2025
Reddit's time filter is relative to the moment you ask, not to the calendar. The values it accepts are hour, day, week, month, year and all, and t=year means the last twelve months counted back from today. Run in October 2026, a t=year query covers roughly October 2025 to October 2026, so the first nine months of 2025 sit outside it. To reach January to September 2025 you query with t=all and filter the results yourself on each item's creation time, keeping only the posts and comments created inside the dates you care about.
The same holds for a subreddit's top listing, which accepts day, week, month, year and all (there is no hour on that endpoint). Asking for the top of all time and then filtering by date is the reliable way to get the strongest posts from an older window, because the listing is ordered by score and the best of early 2025 usually still ranks there.
How to rebuild a 2025 dataset, step by step
A historical pull is a collection job you run once and then keep current. This is the order that wastes the fewest calls:
- Write the scope down first. Name the subreddits, the keywords and the date range. A scope of three subreddits and ten keywords is a few hundred calls; an open question such as everything about a brand in 2025 has no end.
- Collect post ids, not full threads. Run each keyword through search, and read each subreddit's top listing, at up to 100 items a page. Keep only the ids and creation times at this stage, and drop anything outside your dates.
- Deduplicate. The same post turns up under several keywords and sorts. Merge on the post id before you spend a single call on comments.
- Fetch comment trees for the posts that matter. One call per post returns the post and up to 500 top-level comments. Prioritise by score or comment count, because a thread with no replies needs no second call.
- Refresh in batches. GET /by_id takes up to 100 fullnames per call, so re-reading 2,000 known posts for their current score and status is 20 calls, not 2,000.
Getting past the 1,000-item cap
Every Reddit listing stops at about 1,000 items however far you page. The way past it is to ask several different questions whose answers overlap only partly, then merge them:
- Vary the sort. Search accepts relevance, new, hot, top and comments. Each sort is its own ranked list with its own 1,000-item ceiling, so five sorts of one keyword can surface several thousand distinct posts.
- Split by subreddit. A keyword searched inside each relevant subreddit gets a separate ceiling per subreddit instead of one ceiling for all of Reddit.
- Split the keyword. A product name, its common misspelling and its ticker or handle are three searches with three ceilings.
- Read user history both ways. A user's submitted posts and comments accept new, top, hot and controversial. New reaches back in time order until the cap, and top with t=all reaches the account's strongest older items that new may never get to.
- Search comments, not only posts. Deep comment search reads into thread bodies and returns the matching comments themselves, which finds 2025 discussion buried in threads whose titles never mention your keyword.
What a year of one subreddit costs to pull
Reads are billed per call, not per row, at $0.0015 a call (source: our published pricing on the pricing page). A full page of 100 posts costs the same as a page of 1, so the cheapest pull is the one that always asks for full pages. A worked example for one mid-sized subreddit and five keywords:
| Step | Calls | Cost |
|---|---|---|
| Search: 5 keywords x 5 sorts x 10 full pages | 250 | $0.375 |
| Subreddit top of all time, 10 full pages | 10 | $0.015 |
| Comment trees for 2,000 posts in your dates | 2,000 | $3 |
| Refresh those 2,000 posts by id, 100 per call | 20 | $0.03 |
| Total | 2,280 | $3.42 |
The comment trees are most of the bill, which is why step 4 above says to prioritise. Skipping threads with no replies typically removes a large share of those calls without losing any discussion.
Store what you pull so the dataset stays usable
A historical pull is only worth its cost if you can query it again without paying for it twice. Per our endpoint reference, 100 known posts refresh in one GET /by_id call, so the ids you keep are what make later refreshes cheap: a dataset of 10,000 posts costs 100 calls to bring up to date, not 10,000. Keep one row per item with these fields:
- The fullname and the subreddit. The fullname (t3_ for a post, t1_ for a comment) is the key every later call takes, and the subreddit lets you split the dataset without re-reading it.
- The creation time and the time you read it. The first places the item in 2025; the second tells a reader how old the score and the comment count are.
- The score and comment count at read time. Reddit gives you today's numbers only, so a second read later is the only way to see how a thread moved.
- Whether the item was deleted or removed. Mark it rather than dropping the row, so a gap in the data is explained instead of looking like missing coverage.
- Which query found it. When a post came from search with one sort and not another, keeping the source lets you measure how much each query added and drop the ones that add nothing next time.
With that table in place, a question about 2025 becomes a query against your own copy, and the only calls you pay for are the refreshes you choose to run.
When a sample is enough
Many historical questions do not need every post. Tracking how a community felt about a product across 2025, or which complaints came up most, is answered well by a consistent sample: the top posts and the newest posts for each keyword, read the same way every time, with their comment trees. A sample read on a fixed recipe can be repeated next quarter and compared like for like, which a one-off attempt at everything cannot. Save the exhaustive pull for the cases that need it, such as a legal hold, a moderation audit or a dataset you plan to publish.
Whichever route you take, write the recipe down next to the data: the subreddits, the keywords, the sorts, the time filter and the date you ran it. Anyone who reads your numbers later can then see exactly what the dataset covers and what it leaves out, and the next refresh will be comparable with this one.
Deleted, removed and edited content in 2025 data
A live read returns each item as it is today. That has three consequences for a 2025 dataset. A post or comment its author deleted comes back as deleted, and one a moderator removed comes back as removed, without the original text. An edited comment returns its current wording, not the version people replied to. And scores and comment counts are today's numbers, not the numbers on the day the post went up, so a thread's trajectory through 2025 cannot be reconstructed after the fact.
None of this is a limit you can pay around: no current Reddit API returns text that Reddit no longer serves. It is the reason a historical study should record when each item was read, and it is the reason to start keeping your own copy from today.
Start a forward archive so next year is complete
The gaps above exist because nobody saved the data when it was new. A monitor closes that gap going forward: point it at a subreddit or a keyword and each new matching post is delivered to your webhook as it appears, with its original text and the score at that moment. Store what arrives and in a year you will hold the full record that a backfill can no longer give you. Pair it with a one-off backfill using the steps above and you have the best of both: as much of 2025 as Reddit still serves, and everything from today onward.
Which method fits which historical question
| Question | Method | How complete |
|---|---|---|
| Every post and comment from 2025 | Not available from any current API | No full archive exists; plan a targeted pull instead |
| Mentions of a brand or topic in 2025 | Search with several sorts and t=all, filter by date | Strong for discussed topics, partial for quiet ones |
| The best posts of a subreddit in 2025 | Subreddit top with t=all, filter by date | High, since the listing is ordered by score |
| One user's 2025 posts and comments | User submitted and comments, sort new and top | Complete unless the account passed about 1,000 items since |
| A known thread from 2025 | Post comments by id | Exact for what is still live |
A first query for 2025 content
This pulls the top posts of the past year for a subreddit, sorted by score. Swap in a search with sort=top and t=year to target a keyword instead.
curl "https://api.redditapis.com/api/reddit/sub/programming/top?t=year&limit=100" \
-H "Authorization: Bearer YOUR_TOKEN"For the request format and the header, see how to use the Reddit API. For the old .json trick and why it is no longer a history source, read the Reddit JSON API answer. For the common query patterns, see the use cases page, and per-call rates on pricing.
Frequently asked
Can I download every Reddit post and comment from 2025?
No. No Reddit API returns a complete year archive. Reddit's own API exposes live listings rather than a full historical dump, and the public archive that developers once used for bulk history was shut down. You can still reach specific 2025 content by keyword, subreddit, post ID, or user, but you cannot enumerate the entire year.
Does the official Reddit API have a historical archive?
No. The official Reddit Data API serves live listings such as a subreddit feed, a search, a post's comments, and a user's recent activity. It has never exposed a full historical archive of every post and comment, so a past year like 2025 is reachable only through those same live endpoints.
What happened to the third-party Reddit archive?
The large third-party archive that used to let developers query Reddit's full history was shut down, so there is no drop-in source that returns every post and comment from a past year. Current APIs, including Redditapis, read live Reddit data rather than a stored archive.
How do I find 2025 Reddit posts on a topic?
Use keyword search with a time filter, for example GET /search with sort=top and t=year, or read a subreddit's top of the past year with GET /sub/:name/top?t=year. Both return clean JSON at $0.0015 per read, so you can page through the results for the topic you care about.
Can I get a specific user's 2025 activity?
Yes, up to the depth Reddit still serves. GET /user/:name/submitted returns a user's posts and GET /user/:name/comments returns their comments, newest first. A single user listing is capped at roughly 1,000 items by Reddit, so very old or very heavy accounts may not go all the way back to early 2025.
Query 2025 Reddit content by topic, sub, post, or user
No archive dump, but a clean per-call read of what is live. Start with $0.50 in free credits, no card and no app approval.
Get your Reddit API key