> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coderabbit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List all comments in a pull-request review thread

> Returns the root comment and replies in native connection order. Follow next_page_token with the same caller, thread and page size. A changed pull-request head invalidates continuation; comments remain live and can change without a head change. This read never resolves or modifies the thread.

> [!NOTE]
>
> This operation starts with internal qualification and must be enabled for your organization. Existing repository access checks still apply.

Use the thread's `id` from a [pull-request detail response](https://docs.coderabbit.ai/api/platform-pull-requests.md#continue-review-threads), not an individual comment ID.

## Continue through comments

Pass `next_page_token` as `page_token` with the same caller, selected organization, repository, PR, thread, page size and head precondition. Stop when the token is `null`; a page token for listing threads cannot be used here.

Treat the collected pages as a live view, not a frozen snapshot; `coverage.limitations` describes the remaining limits. A fresh read with a different `expected_head_sha` reports `head_changed: true`. If the head changes during a read or between pages, restart without the token. Obtain a fresh token instead of reusing an expired or incompatible one.

## CLI and MCP

Replace `THREAD_ID` with the URL-encoded returned thread ID:

```bash theme={null}
coderabbit api --api-key-file /path/to/api-key request \
  '/repositories/12345678/pull-requests/42/review-threads/THREAD_ID/comments?page_size=50'
```

Hosted MCP exposes `list_pull_request_review_thread_comments` with `account:read` and `pull_requests:read` consent. Both transports use the existing [organization selection and authentication](https://docs.coderabbit.ai/api/platform-authentication.md).


## OpenAPI

````yaml openapi.json GET /v1/repositories/{repository_id}/pull-requests/{pull_request_number}/review-threads/{thread_id}/comments
openapi: 3.0.3
info:
  title: CodeRabbit API spec
  version: 1.0.0
servers:
  - url: https://api.coderabbit.ai
security:
  - ApiKeyAuth: []
paths:
  /v1/repositories/{repository_id}/pull-requests/{pull_request_number}/review-threads/{thread_id}/comments:
    get:
      tags:
        - Reviews
      summary: List all comments in a pull-request review thread
      description: >-
        Returns the root comment and replies in native connection order. Follow
        next_page_token with the same caller, thread and page size. A changed
        pull-request head invalidates continuation; comments remain live and can
        change without a head change. This read never resolves or modifies the
        thread.
      operationId: list_pull_request_review_thread_comments
      parameters:
        - name: repository_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[1-9]\d*$
        - name: pull_request_number
          in: path
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 2147483647
            exclusiveMinimum: true
        - name: thread_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            description: >-
              Opaque review thread ID returned by the pull-request detail; not
              an individual comment ID.
        - name: org_id
          in: query
          schema:
            type: string
            minLength: 1
            description: >-
              Git-provider organization ID. Required for workspace keys; omit
              for organization keys.
          allowEmptyValue: true
          allowReserved: true
        - name: expected_head_sha
          in: query
          schema:
            type: string
            pattern: ^[a-f0-9]{40}$
          allowEmptyValue: true
          allowReserved: true
        - name: page_size
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
          allowEmptyValue: true
          allowReserved: true
        - name: page_token
          in: query
          schema:
            type: string
            minLength: 1
            maxLength: 4096
            description: >-
              Continue this thread with the same caller and page size. Expires
              after ten minutes. Comments remain live, not a historical
              snapshot.
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  thread_id:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        author:
                          anyOf:
                            - type: object
                              properties:
                                login:
                                  type: string
                              required:
                                - login
                            - type: string
                              nullable: true
                              enum:
                                - null
                        body:
                          type: string
                        url:
                          type: string
                          maxLength: 2048
                          format: uri
                        created_at:
                          type: string
                        commit_sha:
                          anyOf:
                            - type: string
                              pattern: ^[a-f0-9]{40}$
                            - type: string
                              nullable: true
                              enum:
                                - null
                        original_commit_sha:
                          anyOf:
                            - type: string
                              pattern: ^[a-f0-9]{40}$
                            - type: string
                              nullable: true
                              enum:
                                - null
                      required:
                        - id
                        - author
                        - body
                        - url
                        - created_at
                        - commit_sha
                        - original_commit_sha
                  next_page_token:
                    anyOf:
                      - type: string
                      - type: string
                        nullable: true
                        enum:
                          - null
                  head_sha:
                    type: string
                    pattern: ^[a-f0-9]{40}$
                  fetched_at:
                    type: string
                  head_changed:
                    type: boolean
                    description: >-
                      Whether the observed head differs from expected_head_sha;
                      not a review-completion signal.
                  coverage:
                    type: object
                    properties:
                      complete:
                        type: boolean
                      limitations:
                        type: array
                        items:
                          type: string
                    required:
                      - complete
                      - limitations
                required:
                  - thread_id
                  - data
                  - next_page_token
                  - head_sha
                  - fetched_at
                  - head_changed
                  - coverage
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - invalid_request
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - unauthenticated
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - forbidden
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - not_found
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '409':
          description: '409'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - head_changed
                          - conflict
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '412':
          description: '412'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - precondition_failed
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '413':
          description: '413'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - payload_too_large
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '429':
          description: '429'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - rate_limit_exceeded
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        enum:
                          - internal_error
                        type: string
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '503':
          description: '503'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - unavailable
                      message:
                        type: string
                      retry_after:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        exclusiveMinimum: true
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-coderabbitai-api-key
      description: >-
        API key for authentication. You can create an API key from the
        CodeRabbit dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.