Reddit APISearchFiltersPythonREST2026

Advanced Reddit Search Filters API (2026)

Filter Reddit search by score, comment count, media type, and NSFW over one authenticated GET. Every filter parameter, the response meta, and real Python.

Redditapis·
Advanced Reddit search filters API guide, an independent third-party walkthrough for filtering posts by score, comments, and media over REST

Reddit's search endpoint answers a keyword query, but it will not let you ask for only the high-signal posts. You cannot tell native search "give me posts above 500 upvotes" or "only text self-posts" or "sorted by comment count." The advanced filters API closes that gap: it takes the page Reddit returns and applies score, comment-count, media, and state filters to it, the same way pullpush did for historical data. This guide covers every filter parameter, the honest completeness meta, and copy-paste Python.

Not affiliated with Reddit Inc. redditapis.com is an independent third-party REST proxy for Reddit's API. This guide is vendor-neutral: it explains the native /search.json limits, the pullpush filter model, and a managed REST option so you can pick what fits.


TL;DR: Reddit's search cannot filter by score, comment count, or media type server-side. A managed endpoint applies those filters to the returned page, like pullpush: pass min_score, max_comments, is_self, is_video, over_18, or sort_type to https://api.redditapis.com/api/reddit/search with your q. A filtered response adds a meta block (fetched, returned, filtered_out) so a small page is never read as the end of results. One GET, $0.002 (pricing).


What you will build:

  • A score-bounded search that returns only posts above a threshold with min_score
  • A media filter that keeps only self-posts or only videos with is_self and is_video
  • A sort_type re-sort that orders a filtered page by score, comment count, or recency
  • A pagination loop that reads the meta block to gather a target number of matches

Native Reddit search takes a query and a sort tab (relevance, new, top, comments) and a time window. What it does not take is a numeric filter. There is no min_score, no min_comments, no "self-posts only" on the public endpoint. For years the answer to that gap was Pushshift, and then its successor pullpush, because they indexed Reddit and let you filter the index directly.

The demand shows up plainly whenever developers discuss what the API costs and what it cannot do. This widely-read r/redditdev thread on API calls names the exact gap in passing, noting that with Pushshift gone you can no longer even average the comment scores across a thread:

r/redditdev·u/Meepster23

Lets talk about those API calls

00
Open on Reddit

The same want surfaces as "is there an API equivalent of comment search," where people expect to filter results by user or subreddit and find the native surface will not do it:

r/redditdev·u/Shajirr

Is there an API equivalent of comment search?

00
Open on Reddit

The honest framing is that Reddit's search index does not expose these filters, so any tool that offers them is filtering after the fetch. That is exactly how pullpush works, and it is how the managed endpoint below works. Understanding that one fact explains everything about the response shape.


The Filter Parameters

The managed search endpoint takes your normal q, subreddit, sort, and t, then layers a set of advanced filters on top. They fall into three groups: numeric bounds, boolean flags, and a re-sort.

List of every advanced Reddit search filter parameter grouped into numeric bounds, boolean flags, and sort_type

  • Numeric bounds: min_score, max_score, min_comments, max_comments. Each takes a number and bounds the post's score (upvotes) or comment count. A non-numeric value returns a 400.
  • Boolean flags: is_video, is_self, over_18, locked, stickied, spoiler, contest_mode. Each takes true or false. is_self=true keeps only text self-posts; is_video=true keeps only hosted video posts; over_18 includes or excludes NSFW.
  • Re-sort: sort_type takes score, num_comments, or created and re-orders the filtered page by that field, descending. This is a different axis from Reddit's own sort tab, which is why both can be set at once.

Filters combine. A single call can ask for text self-posts, above 500 upvotes, with at least 50 comments, sorted by comment count:

import os
import requests

API_KEY = os.environ["REDDITAPI_KEY"]
BASE = "https://api.redditapis.com"

resp = requests.get(
    f"{BASE}/api/reddit/search",
    params={
        "q": "postgres vs mysql",
        "min_score": 500,
        "min_comments": 50,
        "is_self": "true",
        "sort_type": "num_comments",
        "limit": 100,
    },
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60,
)
resp.raise_for_status()
data = resp.json()

for post in data["posts"]:
    print(f"{post['upvotes']:>6} up | {post['comments']:>4} com | {post['title']}")

Note the post fields: the managed path returns upvotes and comments, not the native score and num_comments, so read those names when you print or store a result. The full post shape (id, title, author, permalink, subreddit, over_18, is_self, created_utc, and more) matches the rest of the read endpoints and is documented in the search tutorial.


Start building with Redditapis

Reads $0.002, votes $0.005, writes $0.012, DMs $0.025. $0.50 free credits.

How the Filters Run

Because Reddit will not filter on these fields, the endpoint fetches a page from Reddit's search, then keeps or drops each post against your filters, then re-sorts what survives. That is the pullpush model applied to live search, and it has one consequence you must design around: a filtered page can return far fewer posts than your limit.

Flow diagram showing a single filtered GET, Reddit returning a page, filters applied to the page, and honest completeness meta returned

To keep that honest, a filtered response adds a meta block that a plain search does not carry:

import os
import requests

API_KEY = os.environ["REDDITAPI_KEY"]
BASE = "https://api.redditapis.com"

resp = requests.get(
    f"{BASE}/api/reddit/search",
    params={"q": "kubernetes", "min_score": 1000, "limit": 100},
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60,
)
data = resp.json()

print(data["meta"])
# {'fetched': 100, 'returned': 7, 'filtered_out': 93, 'filters': {'min_score': 1000}}
for post in data["posts"]:
    print(post["upvotes"], post["title"])

The meta block reports fetched (how many Reddit returned for the query), returned (how many survived the filter), filtered_out (the difference), and the filters that were applied. Read meta.returned as the count for this page only. A strict filter like min_score=1000 will often keep single digits out of a hundred, and that is correct behavior, not an empty index. When you pass no filters at all, the endpoint returns the plain { posts, after } shape with no meta, so existing callers are untouched.


Paginating a Strict Filter

Because a strict filter thins each page, gathering a target number of matches means paging on the after cursor and accumulating until you have enough. Here is the standard pattern:

import os
import requests

API_KEY = os.environ["REDDITAPI_KEY"]
BASE = "https://api.redditapis.com"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

def search_filtered(query, want=25, max_pages=10, **filters):
    collected = []
    after = None
    for _ in range(max_pages):
        params = {"q": query, "limit": 100, **filters}
        if after:
            params["after"] = after
        data = requests.get(f"{BASE}/api/reddit/search", params=params,
                            headers=HEADERS, timeout=60).json()
        collected.extend(data["posts"])
        after = data.get("after")
        if len(collected) >= want or not after:
            break
    return collected[:want]

top = search_filtered("local llm", want=25, min_score=200, is_self="true")
print(f"Collected {len(top)} self-posts above 200 upvotes")

Set max_pages deliberately. Reddit caps any single query at 10 pages of 100 results, so max_pages=10 is the ceiling for one keyword. If a very strict filter still comes up short, loosen the bound or vary the query (scope it to a subreddit, or narrow the t window) rather than paging past the cap. The pagination guide covers the cursor mechanics in full.


The cheapest Reddit API. Try it free.

Reads from $0.002 per call. $0.50 free credits. No credit card required.

The Pullpush Gap, Closed

Pushshift shut down in 2023, and its community successor pullpush (pullpush.io) kept the filtered-search model alive: score bounds, comment bounds, and field filters over an index of Reddit data. It is free, and it has no uptime guarantee, which is fine for a research script and a real risk for anything customer-facing. The original model is documented in the Pushshift docs, and the migration options are laid out in the Pushshift alternatives roundup.

The managed filters bring that same score, comment, and media filtering to live Reddit search with a maintained IP pool and honest meta. The reliability angle is not academic. Developers keep reaching for no-auth workarounds precisely because the official surface is awkward, and posts like this one, offering to pull Reddit data without keys, get thousands of bookmarks:

Tom Dörr

Tom Dörr

@tom_doerr

Scrapes Reddit data without API keys https://t.co/JeyRHIaa9P https://t.co/ntPLzeNHVs

Embedded post media

The trade is the usual one. Native search is free but has no filters. Pullpush is free, has filters, and has no SLA. A managed path has the filters and a reliability guarantee, priced per call at $0.002 per GET (pricing). Pick on whether reliability or zero cost matters more for your job.


Score and comment filters are rarely the goal on their own; they are how you raise the signal of a larger pipeline. Three patterns cover most of it, and each leans on a specific filter.

  • RAG ingestion. Grounding an LLM answer wants the highest-signal threads, so min_score and min_comments cut the long tail before you spend embeddings on it. Pair with is_self=true when you want discussion text rather than link posts.
  • Trend and brand monitoring. Watching for meaningful mentions rather than every mention, min_score filters out the posts nobody engaged with, so an alert fires on a thread that actually gained traction. The keyword monitor walkthrough builds exactly this.
  • Dataset building. Assembling a labeled set of, say, video posts or NSFW-flagged content, is_video and over_18 turn a broad query into a clean slice without a second filtering pass in your own code.

The same endpoint serves all three; the filters are what specialize it. If you are wiring search into an agent, the Reddit API for AI agents guide covers the surrounding read calls you will pair with it.


Verdict

Native Reddit search gives you a keyword and a sort tab and nothing else, which is why the pullpush and Pushshift questions never fully died. The advanced filters API adds the missing axis: score and comment bounds, media and state flags, and a numeric re-sort, all over one authenticated GET, applied to the page the same way pullpush filters its index. The meta block keeps it honest so a thinned page is never mistaken for an empty one. Native search is free with no filters, pullpush is free with filters and no SLA, and a managed endpoint like https://api.redditapis.com/api/reddit/search gives you the filters plus a reliability guarantee for $0.002 per call. Start free, measure how strict your filters really are, and upgrade when a missing filter becomes a missing feature. Grab a key and filter a query.

Where these numbers come from.

Each row is a figure in this post and the artefact it was read from. Reddit's access rules and the third-party archives around them keep moving, so check the date on a source before you build against it.

Reddit API documentation
The base search endpoint and the sort and time parameters the filters layer onto.
Reddit Data API wiki
Access rules and rate limits for the search endpoint.
PullPush API
The community Pushshift successor whose score and comment filters this endpoint mirrors.
Pushshift documentation
The original filtered-search model referenced in the pullpush-gap section.
redditapis.com API docs
The managed search path and advanced filter parameters shown in the article.

Frequently asked questions.

Reddit's own search cannot filter by score or comment count server-side, so a managed REST path applies the filters to the page Reddit returns, the way pullpush does. Pass `min_score`, `max_score`, `min_comments`, or `max_comments` to `https://api.redditapis.com/api/reddit/search` alongside your `q`, and each post in the page is kept or dropped against those bounds. A filtered response adds a `meta` block reporting `fetched`, `returned`, and `filtered_out` so a small page is never mistaken for the end of results. See the [filter reference](/blogs/reddit-advanced-search-filters-api-2026#the-filter-parameters).

The managed search endpoint accepts numeric bounds (`min_score`, `max_score`, `min_comments`, `max_comments`), boolean flags (`is_video`, `is_self`, `over_18`, `locked`, `stickied`, `spoiler`, `contest_mode`), and a `sort_type` of `score`, `num_comments`, or `created`. Numeric and boolean filters run together, so `min_score=500&is_self=true` returns only text self-posts above 500 upvotes. A bad value returns a 400 before any upstream read.

Yes. Pass `is_self=true` to keep only text self-posts, or `is_video=true` to keep only hosted video posts. Both are boolean filters that take `true` or `false`. Because Reddit does not expose these as server-side search parameters, they are applied to the returned page, so combine them with `after` pagination when a strict filter matches only a few posts per page. The [request flow](/blogs/reddit-advanced-search-filters-api-2026#how-the-filters-run) explains why.

Pushshift let you filter historical Reddit search by score and comment count directly, and its community successor pullpush kept that model, but neither has an uptime guarantee. The managed search endpoint brings the same score, comment, and media filters to live Reddit search over one authenticated GET, with honest completeness meta and a maintained IP pool. It is the reliability trade: pullpush is free with no SLA, the managed path prices per call at $0.002 ([pricing](/pricing)).

Because filters apply to the page Reddit returns, not to Reddit's index. If you request `limit=100` with `min_score=1000`, Reddit hands back up to 100 posts for your query and the filter may keep only a handful of them. That is expected, not an error. The `meta` block tells you exactly what happened (`fetched: 100, returned: 4, filtered_out: 96`), and you page with the `after` cursor to gather more. Treat `meta.returned` as the count for this page, never as the total available.

No. A filtered search is still one GET at $0.002 ([pricing](/pricing)); the filters run on the page after Reddit returns it, so there is no extra upstream call. The only practical difference is that a strict filter may need more pages (more GETs) to collect a target number of matches. The first $0.50 of credit is free at [signup](/signup), so you can test a few filter combinations before a card is needed.

Keep reading.

Continue exploring related pages.

Reddit API documentation

The complete 2026 reference: auth, all 38 endpoints, and code.

Get a Reddit API key

Instant bearer token, no waitlist and no enterprise contract.

Reddit Responsible Builder Policy

Why Reddit denies API applications, and the managed REST bypass.

Reddit API use cases

14 use cases from AI training to brand monitoring and DMs.

Reddit Search API

Search posts, comments, users, and communities over one REST endpoint.

Reddit MCP server

Wrap the REST API as MCP tools for Claude, Cursor, and any MCP client.

Reddit API for AI agents

Live Reddit context for tool calls, MCP servers, and RAG pipelines.

Redditapis pricing

Endpoint-level costs and quick monthly totals - reads from $0.002 / call.

Reddit API cost calculator

Estimate monthly spend using your request volume.

Reddit API guides and tutorials

Tutorials, walkthroughs, and API deep-dives for developers.

Reddit API alternatives

Evaluate alternatives by cost model, limits, and integration fit.

Cheap Reddit API

The cheapest way to get Reddit data: $0.002 per call, no contract, no minimum.

Official Reddit API vs Redditapis

Access, setup, rate limits, and pricing, side by side.

PRAW alternative

A hosted Reddit REST API for any language, no app registration or OAuth.

Reddapi alternative

A maintained Reddit REST API with published pricing and write endpoints.

Reddit comment scraper alternative

The raw comment API: search and filter comments, historical and live, clean JSON.

Reddit scraper API

Hosted scraper API vs building your own: managed proxies, clean JSON.

RapidAPI Reddit alternative

A direct, maintained Reddit API with published pricing and write endpoints.

Bright Data Reddit alternative

A purpose-built Reddit API vs a general scraping platform: structured JSON, plus writes.

ScraperAPI Reddit alternative

A Reddit-native API vs a generic HTML fetcher: auth and pagination handled, typed JSON.

Reddit monitoring API

Build your own keyword and brand-mention monitor: search, comment search, and subreddit streams over REST.

Affiliate program

Earn 20% lifetime commissions - capped at $5,000/yr.

Reddit Vote API tutorial

Upvote and downvote a post programmatically via the REST API.

Reddit Data API: REST, no PRAW

REST endpoints for Reddit data with no PRAW and no OAuth dance.

Reddit scraping benchmarks

Real throughput, error rates, and cost benchmarks for Reddit scraping.

Reddit API answers

Direct answers on cost, access, rate limits, endpoints, and auth.

How much the Reddit API costs

Per-call pricing from $0.002 a read, with $0.50 in free credits.

Reddit API in Python

One requests call with a bearer token, no PRAW and no OAuth flow.

Reddit shadowban checker

Check if a Reddit account is shadowbanned in seconds, free and no login.

Similar reads.

More guides on the Reddit API, scraping, pricing, and MCP servers.

Reddit Search API tutorial cover, an independent third-party guide to querying subreddits by keyword in Python with native search.json, PRAW, and a managed REST API
Reddit APISearch

Reddit Search API Tutorial: Query Subreddits by Keyword in Python (2026)

Search Reddit posts by keyword in Python in 2026. Native /search.json, PRAW subreddit.search(), and a managed REST endpoint compared, with copy-paste code, parameters, and the 1,000-result cap explained.

Redditapis·
Independent third-party guide to detecting trending topics on Reddit with a production REST API, snapshotting hot and top listings, computing score and comment velocity between polls, and surfacing rising posts and subreddits
Reddit APITrend Detection

How to Detect Trending Topics on Reddit With an API

Detect trending topics on Reddit with an API: snapshot hot and top listings, compute score and comment velocity, and surface rising posts, subreddits, and topics.

Redditapis·
Independent third-party guide to pulling the most popular, trending, and hot subreddits programmatically with a production REST API, ranking communities by subscribers and live activity, and reading each subreddit's size and momentum. redditapis.com is not affiliated with Reddit Inc.
Reddit APIPopular Subreddits

Most Popular Subreddits via the Reddit API: Trending and Hot Communities in 2026

How to pull the most popular, trending, and hot subreddits programmatically: the popular and community-search endpoints, why popular is not the subscriber ranking, with runnable code.

Redditapis·
Independent third-party guide to bulk-fetching Reddit posts by ID, hydrating many t3_ fullnames in one by_id API call for streams, backfills, and dedup pipelines in Python
Reddit APIby_id

Reddit Bulk Fetch by ID: Hydrate Posts in One API Call

Fetch many Reddit posts in one call with the by_id API. Hydrate t3_ fullnames from a stream, backfill archives, and dedup at scale, with copy-paste Python for 2026.

Redditapis·
Independent third-party guide to building a Reddit sentiment analysis pipeline, pulling posts and comments for a keyword through a production REST API, scoring them with a model, and tracking brand sentiment over time
Reddit APISentiment Analysis

Reddit Sentiment Analysis With an API: A 2026 Guide

Build a Reddit sentiment analysis pipeline: pull posts and comments for a keyword through an API, score them with a model, and track brand sentiment over time.

Redditapis·
Reddit subreddit moderators and wiki API guide, an independent third-party walkthrough for pulling a mod team and rules-as-data over REST
Reddit APIModerators

Reddit Subreddit Moderators and Wiki API (2026)

Pull a subreddit's moderator team, rules, and wiki pages over REST in 2026. The endpoints, response fields, real Python, and the compliance use case.

Redditapis·
Independent third-party guide to pulling a subreddit's posting rules as structured JSON via API, for compliance, pre-submit validation, and will-my-post-be-removed checks in Python
Reddit APISubreddit Rules

Reddit Subreddit Rules API: Pull Posting Rules as JSON

Pull any subreddit's posting rules as structured JSON with the rules API. Build pre-submit validation, compliance checks, and automod-aware bots, with copy-paste Python for 2026.

Redditapis·
Independent third-party guide to the Reddit user API, fetching a redditor's profile, karma totals, comment history, and submission history from a single REST endpoint in Python for 2026
Reddit APIUser API

Reddit User API: Fetch Profile, Karma, and History

Fetch a Reddit user's profile, karma, and full comment plus submission history from one API. Real request and response JSON, copy-paste Python, and pagination for 2026.

Redditapis·