Get a Reddit comment tree as a flat list, page by page

GET /v1/reddit/posts/{id}/comments

A post's comments, flattened depth-first: each carries depth (0 is top-level) and parentId, so the tree can be rebuilt. The first page is the thread as Reddit lays it out, up to limit comments and depth levels.

Large threads do not fit on one page: Reddit stands in for the rest with "load more" links, and meta.moreCount estimates how many comments sit behind them. Pass meta.nextCursor back to load them, up to 100 per page, until it is null. Later pages contain only the newly loaded comments, each still carrying its depth and parentId.

comment focuses the thread on one comment, as its permalink does, with context ancestors above it.

Price: 1 credit per call, plus 3 credits per Reddit comment returned. Failed and refused calls cost nothing.

Rate limit: Counts as 4 requests against your per-minute rate limit.

MCP tool: get_reddit_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/posts/ID/comments \
  --header "Authorization: Bearer $WEIR_API_KEY"

Path parameters

Field Type Required Notes
id string yes Reddit's base-36 post id, without the t3_ prefix: 1vdo8we in a post URL. · matches ^[A-Za-z0-9]{1,13}$

Query parameters

Field Type Required Notes
limit integer no Comments on the first page; Reddit's own ceiling is 500. Each later page loads up to 100 more of the comments Reddit left behind "load more" links. · 1–500, default 50
depth integer no Reply levels to include; 1 is top-level comments only. · 1–10, default 3
sort string no confidence is Reddit's "best"; new puts the latest first. · confidence, top, new, controversial, old, random, qa, live, default "confidence"
comment string no Focus on one comment (its id, without t1_): returns it, up to context of its ancestors, and its replies — the view a comment's permalink opens. · matches ^[A-Za-z0-9]{1,13}$
context integer or null no Ancestors to include above comment. Default 3. · 0–8
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 ordered by Reddit with depth and parent IDs.

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[].depth integer yes 0 for a top-level comment. · min 0
meta object yes
meta.requestId string yes
meta.nextCursor string or null no
meta.moreCount integer yes Reddit's estimate of the comments not loaded yet. 0 once nextCursor is null. · min 0
meta.focalCommentId string no The comment the thread is focused on, when comment was given.

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.

View this page as Markdown