By Nikhil Kumar. Last updated August 2026.
Reddit’s own search bar is famously bad. The API version is the same search, with a hard cap most people find out about the wrong way.
To search Reddit by keyword with an API, you call a search endpoint with your query and read the matching posts back as JSON. The official route is PRAW’s subreddit.search() or a site-wide search on r/all; a third-party data API gives you a /reddit/search endpoint instead. Both hit Reddit’s real constraint: a single query returns at most about 1,000 results, so anything bigger means time-slicing.
This is the third post in the Reddit set, after what the API costs and how to scrape Reddit. This one is about finding the right posts, not pulling all of them.
How do you search Reddit by keyword with an API?
You send a keyword to a search endpoint and get matching posts back. With Reddit’s official API you use PRAW: reddit.subreddit("all").search("your keyword") searches the whole site, and reddit.subreddit("python").search(...) scopes it to one community. With a data API, you send the keyword to a /reddit/search endpoint and read a JSON array. Both let you sort and filter by time; both stop at roughly 1,000 results per query.
“reddit search api” and “reddit api search” each pull about 140 US searches a month, according to DataforSEO keyword data pulled in August 2026. Most of the people searching want brand mentions, lead signals, or research data, and they want more than 1,000 rows.
What is the limit on Reddit search?
Reddit caps any single search at about 1,000 results, because its listing pagination stops after 10 pages of 100 items. Once you page 1,000 results deep, the after token runs out and the listing ends, no matter how many real matches exist. This is the single most important fact about searching Reddit, and the one most tutorials skip. It is a hard cap, not a rate limit you can wait out.
This is not a rumor. PRAW’s own documentation says you get at most 1,000 results from any listing, returned 100 at a time, and calls it an upstream Reddit limit with no workaround in the library.
The trap is that a broad query looks like it is returning everything. You get a thousand rows, the loop ends cleanly, and you assume that was all of it. It was just the cap doing its job.
The way around it is time-slicing, which I cover below. No parameter lifts it.
How do you search Reddit with PRAW?
PRAW is the official Python wrapper, and its search() method is the correct official way to query by keyword. You call .search() on a subreddit or on r/all, pass the query, and choose a sort and a time window. It respects Reddit’s rate limits automatically and returns submission objects you iterate.
import prawreddit = praw.Reddit(client_id="...", client_secret="...", user_agent="my-app/1.0 by u/you")
for post in reddit.subreddit("all").search("your keyword", sort="new", time_filter="week", limit=1000): print(post.title, post.subreddit, post.created_utc)The PRAW docs list the sort options: relevance, hot, top, new, and comments. The time_filter accepts hour, day, week, month, year, and all. Sort and time are the only real levers you get, and they are how you slice past the cap.
PRAW search is strong for recent content and weak for old content. Reddit’s index favors the last few weeks, so a time_filter="all" relevance search still misses most of the deep history.
How do you search Reddit comments by keyword?
Reddit’s native search barely touches comment bodies, so keyword search across comments is unreliable on the official API. Search matches post titles and self-text well, but a comment that mentions your keyword rarely surfaces unless the post does too. To search comments directly, you either pull every comment from candidate posts and filter them yourself, or you query an archive index that stores comment text.
The archive route is PullPush, the community-run successor to Pushshift. It exposes /reddit/search/comment/ with q, subreddit, before, and after parameters, so you can search comment text across time.
The self-filter route is simpler but noisier: search for posts, pull each post’s comments, and grep the comment text locally. It works, but you pay for every comment you fetch and discard.
How do you search old Reddit posts?
Deep historical search needs an archive, because Reddit’s live search caps at 1,000 and skews recent. When Pushshift lost public access in 2023, the research community rebuilt it as PullPush, which indexes submissions and comments with date-range parameters. It is the practical way to search Reddit content from years ago by keyword.
PullPush is free and community-maintained, which means no uptime guarantee. For a one-time historical study, it is the right tool. For a production feature, plan for it to be flaky and cache aggressively.
Reddit’s own API will not do this. A time_filter="all" search still bottoms out at the 1,000-result cap, so it is fine for “what’s been said this month” and useless for “everything ever said.”
How do you get past the 1,000-result cap?
You split one query into many by time window, then merge and dedupe. Instead of one search that dies at 1,000, you run a search per day or per week using the before and after bounds, collect up to 1,000 from each slice, and stitch the slices together. A busy keyword that returns 1,000 in a week can return tens of thousands across a year of weekly slices.
The mechanics are the same whichever tool you use:
- Pick a slice size small enough that no single window exceeds 1,000 matches.
- Search each window with
beforeandafterset to its bounds. - Merge and dedupe by post id, because windows overlap at the edges.
- Store as you go, so a failed run resumes instead of restarting.
This is tedious and it is the only thing that works. No API removes Reddit’s per-query cap; they just make the slicing loop easier to run.
How do you search Reddit through a data API?
You send your keyword to one endpoint and get paginated results without OAuth or rate-limit code. A data API wraps Reddit’s search, handles the authentication and throttling, and returns a clean JSON array on the same request shape as every other call. You still live under Reddit’s 1,000-per-query cap, but the auth, retries, and pagination are handled for you.
With ScraperSocial, keyword search is one call:
import requestsr = requests.get( "https://api.scrapersocial.com/v1/reddit/search", params={"query": "your keyword", "limit": 100}, headers={"Authorization": "Bearer sk_live_..."},)print(r.json()["data"])Search results are 2 credits each. Credits are $0.005 on the monthly plan and $0.0045 on annual, so a result is about a cent, and the 100 free signup credits cover roughly 50 to test with. For depth past 1,000, you still time-slice, but you do it with one endpoint instead of an OAuth app.
How do you monitor Reddit for keyword mentions?
You run a keyword search on a schedule and alert on anything new. Poll the search endpoint every few minutes, sort by new, and compare each result’s id against the ones you have already seen. Anything unseen is a fresh mention worth a notification. This is exactly what brand-monitoring tools like F5Bot do under the hood, and it is a small loop once the search itself is handled.
| Job | Reddit’s own API | Data API |
|---|---|---|
| Search one keyword | PRAW search(), OAuth app | /reddit/search, API key |
| Result cap per query | ~1,000 | ~1,000 (same cap) |
| Comment full-text | Weak | Weak (use an archive) |
| Historical depth | No | Time-slice or archive |
| Effort | OAuth + rate limits | One call |
The honest summary: for live keyword search and monitoring, either route works and a data API is less setup. For everything ever posted, you need an archive, and you accept it is best-effort.
Start with one keyword and one week
Run a single keyword through search with time_filter="week" and see how close you get to 1,000 results. If you hit the cap, that keyword needs time-slicing; if you do not, a plain search covers you. Either way, decide up front whether you need recent mentions or the full history, because the tool is different for each.
Frequently asked questions
How do I search Reddit by keyword?
Call a search endpoint with your keyword. Reddit’s official API exposes search through PRAW’s subreddit.search() or a site-wide search on r/all, and third-party data APIs expose a /reddit/search endpoint you hit with a query string. Both return matching posts as JSON. Reddit caps any single query at about 1,000 results, so plan to time-slice for more.
What is the limit on Reddit search?
Reddit caps any listing, including search, at roughly 1,000 items per query, because pagination stops after 10 pages of 100. There is no way to page past it on a single query. To collect more than 1,000 matches you split the search into time windows with the time filter and merge the results, or pull from an archive index.
How do I search Reddit comments by keyword?
Reddit’s native search mostly matches post titles and body text, not comment bodies, so keyword search across comments is weak on the official API. For comment-level full-text search you use an archive index like PullPush, the community successor to Pushshift, or you pull comments per post and filter them yourself after fetching.
How do I search old Reddit posts?
Reddit’s live search skews to recent content and caps at 1,000 results, so deep historical search needs an archive. PullPush (pullpush.io) rebuilt Pushshift’s index and exposes submission and comment search with before and after date parameters. It is community-run with no SLA, so treat it as best-effort for historical pulls.
How do I monitor Reddit for keyword mentions?
Run a keyword search on a schedule and diff the new results against what you have seen. Poll the search endpoint every few minutes, sort by new, and alert on anything unseen. Tools like F5Bot do exactly this. A data API removes the OAuth and rate-limit work so your monitor is a small loop, not an infrastructure project.
Is there a free Reddit search API?
Reddit’s own API has a free tier of 100 queries per minute with OAuth, which covers small search jobs. PullPush is free for historical search with no SLA. Managed data APIs are paid but bill per result. For a hobby monitor, Reddit’s free tier plus PRAW is the cheapest official route; for hands-off search at scale, a data API is less work.