Get a Reddit Post and Its Comment Tree by Post ID
Fetch a Reddit post together with its full comment tree using only the post id. No permalink to build, same response shape and same price as the permalink form.
/api/reddit/post/{id}/comments$0.002 / callThe post and its comment tree in one call, keyed by post id.
Reach for this when you have a post id and not a permalink. /api/reddit/post/{id} makes the same upstream call but discards the comment listing that comes back with it; this route keeps it. If you already hold the permalink, /api/reddit/comments is the same price and returns the same thing.
Three URL shapes return the same response
All three of these are live, and all three give you the identical payload at the identical price. Pick whichever matches the identifier you already have.
| URL shape | Use when |
|---|---|
GET /api/reddit/comments?permalink=/r/{sub}/comments/{postId}/ | You have the permalink |
GET /api/reddit/post/{postId}/comments | You have the post id |
GET /api/reddit/comments/{postId} | You have the post id |
The last two run the same handler, so they are interchangeable, not merely similar. Use the one that fits your URL structure. The permalink form is unchanged and existing integrations need no edits.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Reddit post id (e.g. 1uv6ns4) |
The id is letters and digits only, 1 to 16 characters, with no t3_ prefix. Uppercase is fine and gets lowercased for you, so an id copy-pasted from a URL bar works. A t3_-prefixed fullname does not: the underscore fails validation and returns a 400.
Example
curl -H "Authorization: Bearer $TOKEN" \
"https://api.redditapis.com/api/reddit/post/1uv6ns4/comments"const response = await fetch(
"https://api.redditapis.com/api/reddit/post/1uv6ns4/comments",
{ headers: { Authorization: "Bearer TOKEN" } }
);import requests
response = requests.get(
"https://api.redditapis.com/api/reddit/post/1uv6ns4/comments",
headers={"Authorization": "Bearer TOKEN"},
)Response Shape
{
"post": { "...": "same post shape as /api/reddit/post/{id}" },
"comments": [
{
"kind": "t1",
"data": { "id": "ox8s0jv", "body": "...", "author": "beagle-ears", "replies": "" }
},
{
"kind": "more",
"data": { "count": 273, "children": ["ox8s1r9", "ox8tc3z"] }
}
],
"after": null
}post follows the posts field shape. comments is Reddit's native tree, passed through without reshaping.
Reading the comment tree
Three things about comments catch people out, so they are worth stating plainly.
Not every node is a comment. A node with kind: "t1" is a comment. A node with kind: "more" is a stub standing in for comments Reddit did not send, and its data carries a count plus a children array of comment ids. Filter on kind === "t1" before you touch data.body, or the more node will read as a comment with no body.
replies is two different types. On a t1 node, data.replies is either an empty string "" when the comment has no replies, or a nested Listing object when it does. Check the type before recursing. On one real thread we measured, 13 of 27 top-level comments carried "" and 14 carried an object.
You get at most 100 comments per call. The upstream read is capped at 100, counting nested replies. On a post with 542 comments, one call returned 27 top-level comments plus 73 nested replies, exactly 100, and a single more node reporting the other 273 with 249 ids listed in children.
after is present for shape-compatibility with the other listing endpoints, but Reddit does not paginate comment listings, so it comes back null. To reach the comments behind a more node, take the ids from its children array and fetch them with /api/reddit/comment/{id}, or check many at once with batch verify.
Errors
| Status | Meaning |
|---|---|
400 | id is not a valid Reddit id (letters and digits, 1-16 characters, no prefix) |
401 | Missing Bearer token |
403 | Invalid Bearer token |
404 | No post resolves to that id |
500 | Unexpected server error |
Independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by Reddit, Inc.
Comments
Fetch the full comment tree for a Reddit post by permalink — every top-level comment, nested reply, upvotes, and author metadata in one HTTP GET call.
Comment by ID
Fetch one Reddit comment by its id, with body, author, score, and the ids of its parent and post. No need to walk a whole thread to read one comment.
