Reddit Posts API

Reference for Post Retrieval and UTC Date Filters

Reference for post retrieval with either authentication header, YYYY-MM-DD UTC dates, inclusive end dates, flat records, bounded pagination and HTTP errors.

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

Authentication and supported routes

Send GET requests to https://api.redditpostsapi.com. Authenticated retrieval accepts either X-API-Key: <key> or Authorization: Bearer <key>. Keep the credential in server configuration rather than public code or exported research files. The account panel uses a separate Secure HttpOnly session cookie. /v1/status is public and does not require a key; signing into the account panel does not replace a retrieval header.

Use /v1/posts for posts, /v1/comments for comments and /v1/search for supported searches. Only /v1/item requires id for a known record; id is not a posts or comments filter. /v1/subreddits accepts prefix and limit to explore community names. Its aggregated counts are not guaranteed globally exact. The service is an independent historical archive, without official Reddit affiliation or live updates.

Responses contain flat records, not server-built discussion trees. When parent_id or link_id is present, your client may group retrieved items locally. Neither field is an exposed query filter and complete conversation ancestry is not guaranteed. Inspect which fields and types actually occur before loading or annotating a record. The API does not promise that every post has the same attributes or that future responses preserve a fixed schema.

Search filters and date boundaries

The search, posts and comments routes accept q, subreddit, author, kind, from, to, min_score, limit and page. kind accepts post or comment; the posts route selects posts and the comments route selects comments. q is search text, not an arbitrary query DSL. min_score applies a numeric minimum and never sorts by score or identifies the best equipment recommendations.

from and to take YYYY-MM-DD dates in UTC. The to date is inclusive: setting both values to the same day selects that UTC day, not an empty interval. These filters constrain created_utc rather than ingestion time. They do not accept a time of day. Translate any event schedule into UTC before defining dates, then document local filtering if you need a narrower interval.

For the home example, subreddit=photography chooses the community, min_score=10 the threshold and limit=3 at most three posts. It is a broad photography selection, not a server-classified equipment dataset. Add supported filters deliberately and record their values. If you compare adjacent periods, start the next period on the day after the earlier inclusive to date to avoid deliberately reusing a boundary day.

Pagination, errors and costs

Set limit and page from 1 to 100. One request fetches one page, up to 100 records, in internal _doc order rather than chronological, relevance or score order. eq indicates an exact query total, gte a lower bound, unknown no reliable total and possibly null. Neither exhausting the permitted pages nor partitioning dates proves exhaustive or duplicate-free collection. A saved page number does not freeze future results.

Handle HTTP 400 for invalid parameters, 401 for a missing or invalid key, 402 for insufficient credit and 429 for a rate limit. Correct the cause before repeating a rejected request and bound retries. Successful retrieval costs one credit, including an empty response. Invalid requests do not debit and upstream failures refund reservations. A client connection failure can occur after server success; a successful retry costs another credit.

/v1/status is uncharged and returns static historical-scope information plus evidence that the HTTP app responds. It does not probe search, archive availability, latency, maintenance announcements or capacity. Preserve original responses, filters, retrieval time and a version of your local rules. These support repeatable local analysis, not a guarantee that the same remote requests return identical posts. Consult Pricing and Get API key for balance and account actions.