Reddit Subreddit posts API
Posts from a subreddit listing (hot, new, or top), with time windows. Paginate with the after cursor.
$0.38/1k req, pay per request, no subscription.
{"id": "t3_1def567","title": "My first custom build is finally done","author": "soldernoob","score": 5412,"numComments": 218,"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/1def567/","permalink": "/r/MechanicalKeyboards/comments/1def567/","createdUtc": 1718180000,... 7 more fields}
Pricing and providers
Reddit Subreddit posts API pricing: one API, 3 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get Reddit subreddit posts in one request
This sample shows 13 of 20 fields. See every field
{
"found": true,
"data": {
"posts": [
{
"id": "t3_1def567",
"title": "My first custom build is finally done",
"author": "soldernoob",
"score": 5412,
"numComments": 218,
"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/1def567/",
"permalink": "/r/MechanicalKeyboards/comments/1def567/",
"createdUtc": 1718180000,
"subreddit": "MechanicalKeyboards"
}
],
"nextCursor": "t3_1def567"
}
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-10-31 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- subredditstring
MechanicalKeyboards
Subreddit name without the leading r/ (e.g. "golang").
- afterstring
Legacy pagination alias. Prefer `cursor`; omit both fields for the first page.
- cursorstring
Opaque pagination cursor from a previous response's `nextCursor`; omit for the first page.
- limitinteger
Page size to ask for (up to 100). Some sources honor it; others always return their whole page of about 25 posts. A page is never trimmed after the call, so pass nextCursor back as cursor to continue exactly where this response ended.
- requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `isArchived` or `selftext`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a post that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. On a paginated walk it applies to the first page only; later pages stay with the source that page chose, at the price it was quoted.
- sortenum
hot
Listing sort order.
- timeframeenum
Time window, applied when sort is "top" (e.g. "year" for the year's top posts). Ignored for hot/new. Omit to default to the current day for top.
Response
JSON, one example value per field.
- nextCursorstring
t3_1def567
Cursor for the next page of results; pass it back as the `cursor` input to fetch the following page. Null when there are no more results.
Populated whenever the provider has data for the entity.
- authorstring
soldernoob
Author username, without the u/ prefix. Populated whenever the provider has data for the entity.
- authorIdstring
Reddit account ID of the author, without the t2_ prefix.
- createdUtcnumber
1718180000
UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.
- idstring
t3_1def567
Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.
- isArchivedbooleancan require
True when Reddit has archived the thread, which blocks new comments and votes. Archiving is a per-community setting, so an old thread is not necessarily archived. Absent when the source that served this request does not report it, which means unknown rather than false.
- isLockedbooleancan require
True when a moderator has locked the thread, which blocks new comments. Absent when the source that served this request does not report it, which means unknown rather than false.
- nsfwboolean
Whether the post is marked not-safe-for-work.
- numCommentsinteger
218
Total number of comments on the post.
- permalinkstring
/r/MechanicalKeyboards/comments/1def567/
Canonical reddit.com thread path for the post (e.g. "/r/golang/comments/abc123/..."). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.
- scoreinteger
5412
Net score (upvotes minus downvotes) at fetch time.
- selftextstringcan require
Body text of a self post, as Markdown. Empty on a link post, which has no body.
- subredditstring
MechanicalKeyboards
Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.
- titlestring
My first custom build is finally done
Post title. Populated whenever the provider has data for the entity.
- upvoteRationumber
Share of votes on the post that are upvotes, between 0 and 1.
- urlstring
https://www.reddit.com/r/MechanicalKeyboards/comments/1def567/
The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.
- foundboolean
true
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
Selling this API? See the full schema your endpoint must return.
FAQ
About the Reddit Subreddit posts API
The AnyAPI Reddit Subreddit posts API returns Reddit subreddit posts data as normalized JSON from one POST call to /v1/run/reddit.subreddit_posts. Posts from a subreddit listing (hot, new, or top), with time windows. Paginate with the after cursor. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $0.38 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Reddit subreddit posts calls through AnyAPI succeeded, with a median response time of 2.2 seconds across 65,580 measured calls.