Reddit Search API

Documented requests and limits for Reddit Search API

Understand authentication, UTC date filters, flat records, pagination totals and HTTP errors for the independent Reddit Search API historical archive.

Get API key

API routes

MethodRouteParameters
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix
GET/v1/status—

Query parameters

ParameterValue / type / range
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix

Choose the route that matches the question

The API base is https://api.redditsearchapi.com. Protected retrieval routes require your API key in an Authorization Bearer header. Use /v1/search for a topic query, /v1/posts for posts or /v1/comments for comments. The latter two routes do not require an id. Use /v1/item with id when you already know a record identifier. Subreddit discovery uses /v1/subreddits with prefix; it is not a promise of a complete community directory.

The public /v1/status route requires no key and consumes no credit. Its static response describes the independent historical service and confirms that the HTTP application responded. It does not test the search backend, measure retrieval latency or confirm that particular records are available. Keep this basic connectivity observation separate from the outcome of an authenticated retrieval. This service does not provide live Reddit updates, OAuth access, posting, voting or private messages.

Define filters and interpret the returned order

Search supports q, subreddit, author, kind, from, to, min_score, limit and page. The only kind values are post and comment. Supply dates as YYYY-MM-DD in UTC; the to boundary includes that date. Record the submitted boundaries in your own application so a reader can distinguish the requested interval from a record's timestamp. A minimum-score filter excludes records below a threshold but never requests score-based ordering or a relevance ranking.

The service returns archive document order, with at most 100 records per request and 100 pages per query. Those caps apply even when more material might match. A pagination total may be exact, a lower bound or unknown, including a null value. An exact total describes a count, not proof that your client has received every record. Subreddit aggregation counts also should not be treated as guaranteed exact counts across the whole archive.

Handle records, errors and charging separately

Responses contain flat records rather than preassembled conversation trees. Optional parent_id and link_id fields can support local grouping of the records you actually retrieved. There are no parent_id or link_id query filters. Missing parents may reflect incomplete returned material; they do not justify inventing a conversation link or assuming that an entire discussion was collected. Preserve source identifiers when building a local display, and distinguish source text from your application's own interpretation.

HTTP 400 means an invalid request, 401 a missing or invalid key, 402 insufficient credit, and 429 a rate limit. Correct the underlying cause before retrying; a retry is another request, not a continuation outside billing. Each successful retrieval, including an empty response, costs one credit. Invalid requests do not debit, and upstream failures refund reserved credit. A key and balance belong to this domain; credentials from another brand in the network do not grant access here.