Reddit comments API
One record describes a single Reddit comment, from a post's comment thread or from a search hit. To get these records, set mode to comments, which reads postUrls, subreddits, commentSort, and maxCommentsPerPost.
- Record type
comment- Fields
- 26
- From
- $1.80 per 1,000 records
- Billed as
comment
Example request and record
The request below is the one this record answers, taken from a real run. The names, usernames, photos and contact details of people in it are fictional. Long text and long lists are shortened here. The download has the whole record.
{ "source": "reddit", "id": "t1_p8tou35", "commentId": "p8tou35", "postId": "t3_1wbwx4y", "parentId": "t1_p8tkeze", "depth": 1, "replyCount": 0, "author": "example_user_1", "authorAvatar": "https://example.com/avatars/1.jpg", "authorFlair": null, "score": 1, "awardCount": null, "createdAt": "2026-09-09T21:03:54.678000+0000", "permalink": "/r/Python/comments/1wbwx4y/comment/p8tou35/", "url": "https://www.reddit.com/r/Python/comments/1wbwx4y/comment/p8tou35/", "contentType": "text", "isOp": false, "isCollapsed": false, "isTranslatable": false, "isControversial": false, "text": "Your submission has been automatically queued for manual review by th… "bodyHtml": "<div id=\"t1_p8tou35-post-rtjson-content\" class=\"py-0 xs:mx-xs mx-2… "subreddit": "Python", "type": "comment", "event": "comment", "collectedAt": "2026-09-14T04:38:11.871Z"}Each field name links to its row in the field table. Long values are shortened.
| Field | Type | What it holds |
|---|---|---|
postId | string | Id of the post the comment belongs to, t3_ prefixed. |
permalink | null | string | Site-relative path to the comment. |
subreddit | string | Name of the subreddit the comment's post belongs to, without the r/ prefix. |
author | string | Username of the comment's author. |
score | integer | null | Net upvotes (upvotes minus downvotes) at collection time. Present on comment. |
awardCount | null | Number of awards given to the comment. Present on comment. |
createdAt | string | ISO 8601 timestamp the comment was created. |
authorFlair | null | Author's flair text in the subreddit, or null. Present on comment. |
text | null | string | Plain-text body of the comment. |
bodyHtml | null | string | Raw HTML of the comment body. Present on comment. |
commentId | string | Comment's id with the leading t1_ type prefix removed. Present on comment. |
parentId | null | string | Id of the comment's immediate parent comment, or null for a top-level comment. Present on comment. |
depth | integer | Nesting depth of the comment in the thread; 0 for a top-level comment. Present on comment. |
replyCount | integer | Number of direct replies to the comment counted within the same fetched batch. Present on comment. |
authorAvatar | string | URL of the comment author's avatar image. Present on comment. |
contentType | null | string | Reddit's raw content type for the comment body. Present on comment. |
isOp | boolean | Whether the comment's author is the original poster of the parent post. Present on comment. |
isCollapsed | boolean | Whether the comment is collapsed by default. Present on comment. |
isTranslatable | boolean | Whether Reddit offers a translation for the comment. Present on comment. |
isControversial | boolean | Whether Reddit marks the comment as controversial. Present on comment. |
Fields
Every field of comment records, read from real Reddit records. Where a field does not apply to an item it is null or an empty list, not left out. Each record starts with the envelope: source, type, event, id, url, collectedAt.
| Field | Type | What it holds | Present on |
|---|---|---|---|
postId | string | Id of the post the comment belongs to, t3_ prefixed. | All |
permalink | null | string | Site-relative path to the comment. | All |
subreddit | string | Name of the subreddit the comment's post belongs to, without the r/ prefix. | All |
subredditId | string | Reddit's internal id for the subreddit. Only on search-result records. | Only search-result |
author | string | Username of the comment's author. | All |
score | integer | null | Net upvotes (upvotes minus downvotes) at collection time. | Only comment |
awardCount | null | Number of awards given to the comment. | Only comment |
createdAt | string | ISO 8601 timestamp the comment was created. | All |
isNsfw | boolean | Whether the comment's parent post is marked not safe for work. Only on search-result records. | Only search-result |
authorFlair | null | Author's flair text in the subreddit, or null. | Only comment |
text | null | string | Plain-text body of the comment. | All |
bodyHtml | null | string | Raw HTML of the comment body. | Only comment |
commentId | string | Comment's id with the leading t1_ type prefix removed. | Only comment |
parentId | null | string | Id of the comment's immediate parent comment, or null for a top-level comment. | Only comment |
depth | integer | Nesting depth of the comment in the thread; 0 for a top-level comment. | Only comment |
replyCount | integer | Number of direct replies to the comment counted within the same fetched batch. | Only comment |
authorAvatar | string | URL of the comment author's avatar image. | Only comment |
contentType | null | string | Reddit's raw content type for the comment body. | Only comment |
isOp | boolean | Whether the comment's author is the original poster of the parent post. | Only comment |
isCollapsed | boolean | Whether the comment is collapsed by default. | Only comment |
isTranslatable | boolean | Whether Reddit offers a translation for the comment. | Only comment |
isControversial | boolean | Whether Reddit marks the comment as controversial. | Only comment |
postTitle | string | Title of the comment's parent post, when known: on search hits, and on comments fetched by expanding a subreddit listing. | All |
postUrl | string | URL of the comment's parent post; present only when comments were fetched by expanding a subreddit listing. | Only comment |
searchQuery | string | Search query string that produced this result. Only on search-result records. | Only search-result |
page | integer | 1-based page number of search results this record came from. Only on search-result records. | Only search-result |
Options
These inputs and switches change what comes back. Every request also takes maxItems and maxItemsPerInput.
| Option | Type | Default | What it does |
|---|---|---|---|
postUrls | array | none | https://www.reddit.com/r/Python/comments/1w78kp5/... (an id alone needs the subreddit, so prefer URLs) |
subreddits | array | none | Names or URLs: python, r/learnpython, https://www.reddit.com/r/AskReddit/ |
commentSort | string | "top" | In comments mode, how to order each post's comment tree. |
maxCommentsPerPost | integer | 200 | Maximum comments to collect per post. |
Reddit comments pricing
You pay once for each record you receive, at the price of the event it carries. A request that returns nothing costs nothing.
| Event | Per 1,000 records | Per record |
|---|---|---|
comment | $1.80 | $0.00180 |
Edge cases
- A post that does not exist returns no record and costs nothing.
maxCommentsPerPostcaps the comments per post, 200 unless you set it. It counts across the whole thread.- Long threads are read through up to 40 of Reddit's load-more links per post.