Read a community's newest comments, across every post
GET /v1/reddit/subreddits/{name}/comments
Every new comment in a community, newest first, each with the post it belongs to
(linkTitle, linkPermalink). This is the way to find mentions inside comments: Reddit's
search does not search comment text at all.
Busy communities produce comments faster than anyone pages through them; to watch one
continuously, create a subreddit_comments monitor, which also filters by keyword. name
takes several communities joined with +. NSFW is judged by the comment's post and is left
out unless includeNsfw=true.
Price: 1 credit per call, plus 3 credits per Reddit comment returned. Failed and refused calls cost nothing.
Rate limit: Counts as 2 requests against your per-minute rate limit.
MCP tool: get_subreddit_comments, on every MCP connection.
Requires an API key, sent as Authorization: Bearer <key>.
Request
curl --request GET \
--url https://api.weirapp.io/v1/reddit/subreddits/NAME/comments \
--header "Authorization: Bearer $WEIR_API_KEY"Path parameters
| Field | Type | Required | Notes |
|---|---|---|---|
name |
string | yes | A community name without r/; popular or all for the site-wide listings; or up to 25 communities joined with + (saas+startups+entrepreneur) to read them as one listing in a single call. · matches ^(?:[A-Za-z0-9][A-Za-z0-9_]{2,20}|[A-Za-z]{2})(?:\+(?:[A-Za-z0-9][A-Za-z0-9_]{2,20}|[A-Za-z]{2})){0,24}$ |
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
includeNsfw |
string | no | Include posts marked NSFW. Off by default; what it removes is reported in meta.omittedNsfw, so a short or empty page is never mistaken for a quiet one. · true, false, default "false" |
limit |
integer | no | Comments per page. · 1–100, default 50 |
cursor |
string | no | meta.nextCursor from the previous page, unchanged. Opaque, signed, and bound to the other parameters: change any of them and start again without a cursor. · 1–4096 chars |
Response
Comments, newest first, in Reddit's own field names.
200
| Field | Type | Required | Notes |
|---|---|---|---|
data |
array of object | yes | |
data[].id |
string | yes | Reddit's base-36 comment id, without the t1_ prefix. |
data[].postId |
string | yes | The post this comment belongs to, without t3_. |
data[].parentId |
string | yes | The comment or post this replies to. |
data[].author |
string | yes | Username without the u/ prefix. [deleted] if removed. |
data[].body |
string | yes | Markdown. [removed] or [deleted] once taken down. |
data[].score |
integer | yes | |
data[].permalink |
string | yes | Absolute URL of the comment. |
data[].createdUtc |
number | yes | |
data[].createdAt |
string (date-time) | yes | |
data[].subreddit |
string | yes | Community name without the r/ prefix. |
data[].isSubmitter |
boolean | yes | The commenter is the post's author (OP). |
data[].edited |
number or null | yes | When the comment was last edited, in epoch seconds. Null if it never was. |
data[].distinguished |
string or null | yes | moderator or admin when posted in an official capacity; otherwise null. |
data[].stickied |
boolean | yes | Pinned under the post by a moderator. |
data[].scoreHidden |
boolean | yes | Reddit is hiding this comment's score for now; score means nothing while true. |
data[].linkTitle |
string | yes | Title of the post the comment belongs to. |
data[].linkAuthor |
string | yes | Author of that post. |
data[].linkPermalink |
string | yes | Absolute URL of that post. |
data[].numComments |
integer | yes | Comments on that post. · min 0 |
data[].over18 |
boolean | yes | That post is marked NSFW. |
meta |
object | yes | |
meta.requestId |
string | yes | |
meta.nextCursor |
string or null | no | |
meta.omittedNsfw |
integer | no | Items removed from this page because they are marked NSFW and includeNsfw is false. Absent when nothing was removed. A page can be short, or even empty with a non-null nextCursor, because of it. · min 0 |
Errors
| Status | Meaning | What to do |
|---|---|---|
400 |
The request failed validation. | The request was malformed. The details object names the field. |
401 |
The API key is missing, malformed, expired, or revoked. | The key is missing, malformed, revoked, or expired. |
402 |
The account is out of credit. Not retryable: this cannot clear until the billing period resets or the plan changes. | Out of credits. Never retry. Only a person can clear it, by adding credits at https://weirapp.io/dashboard/billing. Retrying never will. |
403 |
The API key does not carry the scope this route requires. | The key is valid but lacks the scope this operation needs. |
404 |
The requested resource does not exist. | No such resource, or it is not public. |
429 |
The per-minute rate limit is exhausted. Retryable: wait for Retry-After and try again. | Rate limited. Retryable: wait for Retry-After, then try again. |
500 |
An unexpected error occurred. | Something failed on our side. Retryable with backoff. |
503 |
The source is temporarily unavailable. The request is safe to retry. | A source was unreachable. Retryable with backoff. |