> ## 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.

# Reply to a review comment on a pull request

> The reply is posted by the Aether GitHub app, footer-attributed to the authenticated caller, and recorded against this pull request in the GitHub post-origin ledger so its own webhook echo never wakes a task. The idempotency key is claimed before GitHub is called: completed attempts replay the same reply. 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 POST /pull-requests/{pullRequestID}/github/pr/comments/{commentID}/reply
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/comments/{commentID}/reply:
    post:
      tags:
        - pull-requests
      summary: Reply to a review comment on a pull request
      description: >-
        The reply is posted by the Aether GitHub app, footer-attributed to the
        authenticated caller, and recorded against this pull request in the
        GitHub post-origin ledger so its own webhook echo never wakes a task.
        The idempotency key is claimed before GitHub is called: completed
        attempts replay the same reply. 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: replyToPullRequestGithubComment
      parameters:
        - in: path
          name: pullRequestID
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: commentID
          required: true
          schema:
            format: int64
            minimum: 1
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReplyToTaskPRCommentRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReplyToTaskPRCommentResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '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
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '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:
    ReplyToTaskPRCommentRequest:
      additionalProperties: false
      properties:
        body:
          minLength: 1
          type: string
        idempotency_key:
          description: >-
            client-generated stable key for this reply; retries with the same
            key replay the first result without re-posting
          minLength: 8
          type: string
      required:
        - idempotency_key
        - body
      type: object
    ReplyToTaskPRCommentResponse:
      additionalProperties: false
      properties:
        comment_id:
          format: int64
          minimum: 1
          type: integer
        html_url:
          type: string
      required:
        - comment_id
        - html_url
      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
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````