# Subreddit comments



<MethodPage method="GET" path="/v1/reddit/subreddit/comments" credits={1}>
  <MethodSignature name="listSubredditComments" args={[{ name: "sub" }, { name: "options", optional: true }]} returns="Listing<Comment>" />

  Lists a subreddit's comments, newest first, whatever post they're on. Each comment names its post, so you can open the thread with [Post](/reddit/post). 1 credit per page of up to 100 comments; see [Listings and pages](/listings).

  To be told about new comments that mention a keyword instead of polling, use [Monitors](/monitors).

  <Security permission="reddit:read" />

  <SchemaGroup title="Query parameters">
    <SchemaField name="sub" type="string" location="query" required>
      Subreddit name, with or without `r/`.
    </SchemaField>

    <SchemaField name="limit" type="integer" optional location="query">
      Comments per page, 1 to 100. Default `25`.
    </SchemaField>

    <SchemaField name="after" type="string" optional location="query">
      The previous page's `after`, for older comments.
    </SchemaField>

    <SchemaField name="nsfw" type="boolean" optional location="query">
      Include comments on NSFW posts. Default `false`.
    </SchemaField>
  </SchemaGroup>

  <div id="returns" className="mt-8">
    Response [#response]

    ```jsonc
    {
      "subreddit": "golang",
      "query": null,
      "sort": "new",
      "count": 3,
      "items": [
        {
          "id": "pf32lmh",
          "name": "t1_pf32lmh",
          "post_id": "1wxkbh0",
          "post_title": "Struggling to review and maintain an AI generated codebase growing too fast.",
          "subreddit": "golang",
          "author": "Inevitable-Cry-1389",
          "score": 1,
          "body": "another thing I uses everyday is to build the gate keeper in the CI…",
          "created_at": "2026-10-10T17:35:45Z",
          "permalink": "/r/golang/comments/1wxkbh0/struggling_to_review_and_maintain_an_ai_generated/pf32lmh/",
          "parent_id": "t1_pf31m12",
          "is_submitter": false,
          "controversiality": 0
        }
      ],
      "after": "t1_pf31mcc",
      "filtered_nsfw": 0
    }
    ```

    `parent_id` is the comment it replies to (`t1_…`), or the post (`t3_…`) for a top-level comment. `is_submitter` is true when the commenter wrote the post. `controversiality` is 1 when Reddit marks the comment controversial.
  </div>

  <MethodSamples>
    <LanguageSample language="cURL">
      ```bash
      curl "https://api.threadapi.dev/v1/reddit/subreddit/comments?sub=golang&limit=100" \
        -H "Authorization: Bearer $THREADAPI_API_KEY"
      ```
    </LanguageSample>

    <LanguageSample language="Python">
      ```python
      import os, requests

      r = requests.get(
          "https://api.threadapi.dev/v1/reddit/subreddit/comments",
          params={"sub": "golang", "limit": 100},
          headers={"Authorization": f"Bearer {os.environ['THREADAPI_API_KEY']}"},
      )
      for c in r.json()["items"]:
          print(c["author"], "on", c["post_title"])
      ```
    </LanguageSample>
  </MethodSamples>
</MethodPage>
