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

# List a pull request's review threads

> Fetched live from GitHub GraphQL at request time; nothing is persisted. The listing is all-or-nothing — pagination runs to exhaustion and a pull request past the hard caps fails with 502 rather than returning a truncated 200. Requires membership in the owning organization of a task linked to this pull request — the task that published it or a task that reviewed it — and current GitHub access to the repository. 404 covers an unknown pull request, one linked to no organization the caller belongs to, and one whose GitHub access the caller has lost; the three are deliberately indistinguishable.



## OpenAPI

````yaml api-reference/openapi.account.json GET /pull-requests/{pullRequestID}/github/pr/threads
openapi: 3.1.0
info:
  title: Aether Account & Integrations API
  version: 0.1.0
  description: >-
    Account, billing, and integration-management endpoints used by the Aether
    web app and CLI. Root-mounted; NOT part of the versioned /v1 contract.
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /pull-requests/{pullRequestID}/github/pr/threads:
    get:
      tags:
        - pull-requests
      summary: List a pull request's review threads
      description: >-
        Fetched live from GitHub GraphQL at request time; nothing is persisted.
        The listing is all-or-nothing — pagination runs to exhaustion and a pull
        request past the hard caps fails with 502 rather than returning a
        truncated 200. Requires membership in the owning organization of a task
        linked to this pull request — the task that published it or a task that
        reviewed it — and current GitHub access to the repository. 404 covers an
        unknown pull request, one linked to no organization the caller belongs
        to, and one whose GitHub access the caller has lost; the three are
        deliberately indistinguishable.
      operationId: getPullRequestGithubPRThreads
      parameters:
        - in: path
          name: pullRequestID
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  threads:
                    items:
                      $ref: '#/components/schemas/TaskGitHubPullRequestThread'
                    type: array
                required:
                  - threads
                type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorResponse'
                  - $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Gateway
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
components:
  schemas:
    TaskGitHubPullRequestThread:
      additionalProperties: false
      properties:
        comments:
          items:
            $ref: '#/components/schemas/TaskGitHubPullRequestThreadComment'
          type: array
        diff_hunk:
          minLength: 1
          type:
            - string
            - 'null'
        id:
          minLength: 1
          type: string
        is_outdated:
          type: boolean
        is_resolved:
          type: boolean
        line:
          format: int64
          minimum: 1
          type:
            - integer
            - 'null'
        path:
          minLength: 1
          type: string
        side:
          $ref: '#/components/schemas/PRReviewCommentSide'
      required:
        - id
        - path
        - line
        - side
        - diff_hunk
        - is_resolved
        - is_outdated
        - comments
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        code:
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    TaskGitHubPullRequestThreadComment:
      additionalProperties: false
      properties:
        author_association:
          minLength: 1
          type: string
        author_login:
          minLength: 1
          type:
            - string
            - 'null'
        body:
          type: string
        comment_id:
          format: int64
          maximum: 9007199254740991
          minimum: 1
          type: integer
        created_at:
          format: date-time
          type: string
      required:
        - comment_id
        - author_login
        - author_association
        - body
        - created_at
      type: object
    PRReviewCommentSide:
      enum:
        - LEFT
        - RIGHT
      type: string
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````