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

# Change who may watch a pull request's proof

> A pull request's proof is public: anyone holding the theater link opens it. This makes it private to the organization that owns it, or public again. Restricted to the same readers who may hide one of its captures — the creator of a task linked to this pull request, or an admin or owner of the organization — because both decide what someone outside it sees; every other member is refused with 403 org_role_insufficient. 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 PUT /pull-requests/{pullRequestID}/proof/visibility
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}/proof/visibility:
    put:
      tags:
        - pull-requests
      summary: Change who may watch a pull request's proof
      description: >-
        A pull request's proof is public: anyone holding the theater link opens
        it. This makes it private to the organization that owns it, or public
        again. Restricted to the same readers who may hide one of its captures —
        the creator of a task linked to this pull request, or an admin or owner
        of the organization — because both decide what someone outside it sees;
        every other member is refused with 403 org_role_insufficient. 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: setPullRequestProofVisibility
      parameters:
        - in: path
          name: pullRequestID
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPullRequestProofVisibilityRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestProofVisibility'
          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
        '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:
    SetPullRequestProofVisibilityRequest:
      additionalProperties: false
      properties:
        visibility:
          enum:
            - public
            - org
          type: string
      required:
        - visibility
      type: object
    PullRequestProofVisibility:
      additionalProperties: false
      properties:
        changed:
          anyOf:
            - $ref: '#/components/schemas/PullRequestProofVisibilityChange'
            - type: 'null'
        visibility:
          enum:
            - public
            - org
          type: string
      required:
        - visibility
        - changed
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        code:
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    PullRequestProofVisibilityChange:
      additionalProperties: false
      properties:
        at:
          format: date-time
          type: string
        by:
          format: uuid
          type: string
        by_name:
          minLength: 1
          pattern: \S
          type: string
      required:
        - at
        - by
        - by_name
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````