~ / endpoints / Search API

Reddit Search Scraper API

Send a keyword query and our Reddit search API returns the matching results, posts pulled from across subreddits or scoped to one, as a clean ordered JSON list with sort and time filters.

Get a free API keyBrowse endpoints
1,000
free requests
2.6s
median response
11
fields per result
JSON
structured output
the challenge

Why Reddit Search data is hard to collect

Reaching Reddit search through the Data API means registering an OAuth app and staying inside the 100-queries-per-minute free ceiling Reddit set when it started charging on July 1, 2023, then billing $0.24 per 1,000 calls above it. The old shortcut of querying search.json is OAuth-gated and 403s for unauthenticated automated traffic, and Reddit's listing surface stops paginating at 1,000 results per query no matter how you sort it.

get started

Call the Reddit Search Scraper API in one request

cURL
curl "https://api.redditscraperapi.com/api/v1/reddit/search?q=best%20mechanical%20keyboard&sort=top&t=year&limit=25&api_key=$API_KEY"
Python
import requests

resp = requests.get(
    "https://api.redditscraperapi.com/api/v1/reddit/search",
    params={
        "q": "best mechanical keyboard",
        "sort": "top",
        "t": "year",
        "limit": 25,
        "api_key": "YOUR_API_KEY",
    },
)
data = resp.json()

print(data["total_results"], "results for", data["query"])
for r in data["results"]:
    print(f"{r['position']}. r/{r['subreddit']} - {r['title']}")
    print("   ", r["permalink"])
inputs

Parameters

ParameterRequiredDefaultNotes
qrequired-The search query. Reddit's own query operators work, so terms like author:name, subreddit:name, self:yes, or a quoted phrase narrow the match.
subredditoptional-Restrict the search to one subreddit, without the leading r/. Omit it to search across all of Reddit.
sortoptionalrelevanceResult order: relevance, hot, top, new, or comments. Controls which posts come back first for the query.
toptional-Time window for the top, comments, and relevance sorts: hour, day, week, month, year, or all. Leave empty for the default window.
limitoptional25How many results to return, from 1 to 25. The search feed caps a single request at 25 entries.
the response

Fields the Reddit Search Scraper API returns

200 OK
{
  "query": "best mechanical keyboard",
  "subreddit": null,
  "sort": "top",
  "t": "year",
  "total_results": 25,
  "results": [
    {
      "position": 1,
      "id": "t3_1a8b2cd",
      "short_id": "1a8b2cd",
      "result_type": "post",
      "title": "What is the best mechanical keyboard you have owned?",
      "author": "keeb_collector",
      "author_url": "https://www.reddit.com/user/keeb_collector",
      "subreddit": "MechanicalKeyboards",
      "permalink": "https://www.reddit.com/r/MechanicalKeyboards/comments/1a8b2cd/",
      "external_url": null,
      "created": "2026-02-14T09:31:55+00:00",
      "score": null,
      "num_comments": null
    },
    {
      "position": 2,
      "id": "t3_19f4xy7",
      "short_id": "19f4xy7",
      "result_type": "post",
      "title": "Budget board recommendations under $100?",
      "author": "newtypist",
      "author_url": "https://www.reddit.com/user/newtypist",
      "subreddit": "budgetkeebs",
      "permalink": "https://www.reddit.com/r/budgetkeebs/comments/19f4xy7/",
      "external_url": null,
      "created": "2026-01-28T17:04:12+00:00",
      "score": null,
      "num_comments": null
    }
  ],
  "_source": "rss"
}
FieldTypeDescription
querystringThe query you searched for, echoed back.
subredditstring or nullThe subreddit the search was scoped to, or null for a site-wide search.
sortstringThe sort order applied to the results (relevance, hot, top, new, or comments).
tstring or nullThe time window applied, or null when none was set.
total_resultsintegerHow many results are in the results array for this request.
resultsarrayThe matching entries in ranked order, each with the fields below.
results[].positioninteger1-based rank of the result within this response.
results[].idstringReddit fullname of the result, for example t3_1a8b2cd for a post.
results[].short_idstringThe base-36 id without the type prefix, ready to pass to the post endpoint.
results[].result_typestringWhat the entry is: post, comment, or subreddit.
results[].titlestringThe result's title or, for a comment, its heading line.
results[].authorstringUsername of the post or comment author.
results[].author_urlstring (url)Absolute link to the author's Reddit profile.
results[].subredditstringThe subreddit the result lives in, without the r/ prefix.
results[].permalinkstring (url)Absolute www.reddit.com link to the result.
results[].external_urlstring or nullThe outbound link for a link post, or null when the result points back to Reddit.
results[].createdstring or nullISO-8601 timestamp of when the result was posted.
what you build

What you can build with it

>

Keyword and brand monitoring

Search your product or brand name on a schedule and capture every new post that mentions it across Reddit, so a mention surfaces in your pipeline the same day it is made.
>

Lead and question discovery

Query buying-intent phrases like recommend or alternative to and pull the threads where people are actively asking, then route the permalinks to the team that replies.
>

Topic and trend research

Sort a query by top within a time window to see which posts a subject produced over the last week, month, or year and measure how interest moves.
>

Seed lists for deeper scraping

Use search to collect matching post ids, then feed each short_id to the post endpoint to pull the full thread and its comments for analysis.
>

Market and competitor listening

Track competitor names and category terms across subreddits to learn what users praise, complain about, and compare, straight from their own words.
>

Content and SEO ideation

Search a niche by new to read the exact questions people ask, then build articles, FAQs, and product copy around the phrasing that already has traction.
our edge

Why developers pick our Reddit Search Scraper API

Our Reddit search API runs the proxied fetch, anti-bot handling, and parsing on our infrastructure, then returns the search feed as a ranked JSON array with each result's id, title, author, subreddit, permalink, and timestamp already extracted. One query goes in and the matching results come back in about 2.6 seconds, with no OAuth app to register and a free tier of 1,000 requests.

*

No OAuth app of your own

One api_key is the only credential the call needs. There is no Reddit developer app to register, no client secret to manage, and no 100-queries-per-minute approval to wait on.
*

Sort and time filters

Pass sort as relevance, hot, top, new, or comments and a t window from hour to all, so you control exactly which slice of matching posts the query returns.
*

Site-wide or single subreddit

Leave subreddit empty to search all of Reddit, or set it to scope the query to one community. The response tells you which mode ran.
*

Anti-bot and proxy rotation

Requests route through rotating proxies that clear Reddit's verification checks, so the search feed comes back instead of a challenge page or a 403.
*

Chains into the post endpoint

Each result carries a short_id you can hand straight to the reddit/post endpoint, turning a list of hits into full threads with comments and scores.
vs the api

Reddit Search Scraper API compared to the official Reddit API

FactorOur Reddit search APIDIY search.json scrapingReddit Data API
SetupOne api_keyProxies, headers, parser, retriesRegistered OAuth app plus token
Rate limitPlan request limit onlyNone, but you absorb the blocks100 queries per minute, OAuth-gated
Unauthenticated accessNot your problemsearch.json 403s for automated trafficOAuth required on every call
Query controlssort, t window, subreddit scopeYou build the query stringSame controls, behind OAuth
Result shapeRanked flat JSON arrayWhatever you parse from HTMLNested Listing JSON
Anti-bot and proxiesHandled for youYou build and maintain itNot applicable inside the API
Per-result vote countsNull on the search feedNull unless you refetch each postIncluded while quota lasts
plans

Free to start, priced to scale

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

How do I scrape Reddit search results?

Send your keyword query in the q parameter to our reddit/search endpoint with your api_key. The response is a results array in ranked order, where each entry carries the post id, title, author, subreddit, permalink, and created timestamp. You can add sort and a time window to shape the results, and you do not register a Reddit OAuth app or run scraping infrastructure of your own.

Do I need the Reddit API or an OAuth app to search Reddit?

No. Searching through Reddit's Data API means registering an OAuth app, and its free tier holds you to 100 queries per minute per client id, the ceiling Reddit put in place alongside the $0.24-per-1,000-calls charge that took effect on July 1, 2023. Our endpoint runs the query and parses the feed for you behind a single api_key, so there is no app to register and no client secret to rotate. You get 1,000 requests on the free plan to try it.

Can I sort and filter the search by time?

Yes. Pass sort as relevance, hot, top, new, or comments to set the result order, and t as hour, day, week, month, year, or all to set the time window for the top, comments, and relevance sorts. To search inside one community, set subreddit to its name without the r/ prefix; leave it empty to search across all of Reddit.

Why do score and num_comments come back null on search?

The search feed Reddit exposes does not carry vote or comment counts, so we return score and num_comments as null and leave it honest. When you need the real score, upvote ratio, and comment count for a result, take its short_id and call our reddit/post endpoint, which reads those numbers from Reddit's live markup. We never fabricate counts a surface does not provide.

How many results can a Reddit search return?

A single request returns up to 25 results, set with the limit parameter. Reddit's own search stops paginating at roughly 1,000 results for any one query no matter how you sort or page it, so deep historical coverage comes from running tighter queries: narrow the wording, scope to a subreddit, or split a broad term across time windows with the t parameter.

Can I use this Reddit search API from Python?

Yes. Call the endpoint with the requests library, read resp.json(), and loop over data['results']. Each item gives you the title, author, subreddit, and permalink, so a few lines print or store the whole result set. The quickstart above is a complete working Python example, and any language that can make an HTTP GET request works the same way.

Pull search api as JSON
Free plan includes 1,000 requests. No card needed.
Get a free API key Browse endpoints