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

# Get the snapshot of a pull request head: its changed files against the base tip, their patches and their contents at the head

> One read for everything the Diff tab draws at a head: GitHub's changed-file listing of ref against the base branch at base_sha, with each file's unified patch, and, for every file with a patch that exists at the head, the file's content there (kind text with content, or binary, too_large; omitted, with the reason, when the snapshot carries no content for it, because its text would have overrun the snapshot's budget or GitHub did not find or serve it at capture, in which case getPullRequestReviewFile serves it). A snapshot is captured once and then served from storage: kind ready is the snapshot, immutable, so a browser caches it for the listing's life; it is sent gzip-encoded to a client whose Accept-Encoding accepts gzip (or every coding) and as plain JSON to one that does not, and refused with 406 to one that accepts neither (the answer varies on Accept-Encoding). The first reader to find no snapshot claims its capture and enqueues it; every reader meanwhile is answered kind capturing and reads again shortly, enqueueing nothing. A capture that gave up after its retries is answered kind failed with the error, which retryPullRequestReviewHeadSnapshotCapture starts again. ref and base_sha must be the head and the base tip the PullRequest currently names (head_sha and base_sha): GitHub lists only the current head against the current base, so a reader still showing an earlier listing is told the pull request moved (409), as the pinned diff read does, and the PullRequest's next read names the new ones. Any member of an owning organization of the pull request may call it, a viewer included, and no GitHub connection is needed; org_id names the organization to read in, and omitted, the one where the caller holds a product role is preferred. A pull request that does not exist and one no organization of the caller owns answer the same 404. 



## OpenAPI

````yaml api-reference/openapi.json GET /pull-requests/{pullRequestID}/review/head-snapshot
openapi: 3.1.0
info:
  title: Aether API
  version: 0.1.0
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /pull-requests/{pullRequestID}/review/head-snapshot:
    get:
      tags:
        - pull-requests
      summary: >-
        Get the snapshot of a pull request head: its changed files against the
        base tip, their patches and their contents at the head
      description: >-
        One read for everything the Diff tab draws at a head: GitHub's
        changed-file listing of ref against the base branch at base_sha, with
        each file's unified patch, and, for every file with a patch that exists
        at the head, the file's content there (kind text with content, or
        binary, too_large; omitted, with the reason, when the snapshot carries
        no content for it, because its text would have overrun the snapshot's
        budget or GitHub did not find or serve it at capture, in which case
        getPullRequestReviewFile serves it). A snapshot is captured once and
        then served from storage: kind ready is the snapshot, immutable, so a
        browser caches it for the listing's life; it is sent gzip-encoded to a
        client whose Accept-Encoding accepts gzip (or every coding) and as plain
        JSON to one that does not, and refused with 406 to one that accepts
        neither (the answer varies on Accept-Encoding). The first reader to find
        no snapshot claims its capture and enqueues it; every reader meanwhile
        is answered kind capturing and reads again shortly, enqueueing nothing.
        A capture that gave up after its retries is answered kind failed with
        the error, which retryPullRequestReviewHeadSnapshotCapture starts again.
        ref and base_sha must be the head and the base tip the PullRequest
        currently names (head_sha and base_sha): GitHub lists only the current
        head against the current base, so a reader still showing an earlier
        listing is told the pull request moved (409), as the pinned diff read
        does, and the PullRequest's next read names the new ones. Any member of
        an owning organization of the pull request may call it, a viewer
        included, and no GitHub connection is needed; org_id names the
        organization to read in, and omitted, the one where the caller holds a
        product role is preferred. A pull request that does not exist and one no
        organization of the caller owns answer the same 404. 
      operationId: getPullRequestReviewHeadSnapshot
      parameters:
        - in: path
          name: pullRequestID
          required: true
          schema:
            format: uuid
            type: string
        - description: >-
            The pull request's owning organization to act in: the org_id the
            PullRequest carries. Required when more than one of the caller's
            organizations owns the pull request.
          explode: false
          in: query
          name: org_id
          schema:
            description: >-
              The pull request's owning organization to act in: the org_id the
              PullRequest carries. Required when more than one of the caller's
              organizations owns the pull request.
            format: uuid
            type: string
        - explode: false
          in: query
          name: ref
          required: true
          schema:
            pattern: ^[0-9a-f]{40}$
            type: string
        - explode: false
          in: query
          name: base_sha
          required: true
          schema:
            pattern: ^[0-9a-f]{40}$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRReviewHeadSnapshot'
          description: >-
            The head's snapshot, that its capture is under way, or that the
            capture gave up
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/PullRequestsErrorResponse'
                  - $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestsErrorResponse'
          description: Service Unavailable
components:
  schemas:
    PRReviewHeadSnapshot:
      discriminator:
        mapping:
          capturing: '#/components/schemas/PRReviewHeadSnapshotCapturing'
          failed: '#/components/schemas/PRReviewHeadSnapshotFailed'
          ready: '#/components/schemas/PRReviewHeadSnapshotReady'
        propertyName: kind
      oneOf:
        - $ref: '#/components/schemas/PRReviewHeadSnapshotReady'
        - $ref: '#/components/schemas/PRReviewHeadSnapshotCapturing'
        - $ref: '#/components/schemas/PRReviewHeadSnapshotFailed'
    PullRequestsErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - account_deleting
            - aether_inference_unserved
            - agent_pr_blocked
            - agent_pr_pending
            - agent_profile_changed
            - app_identity_missing
            - attribution_unavailable
            - bad_gateway
            - bad_request
            - caller_inactive
            - conflict
            - connection_harness_mismatch
            - connection_not_held
            - contents_write_required
            - continuation_failed
            - continuation_unavailable
            - control_forbidden
            - embeddings_unavailable
            - fix_not_requested
            - fix_requests_unrecorded
            - forbidden
            - fork_branch_delete_unsupported
            - fork_forbidden
            - gateway_timeout
            - github_failed
            - github_identity_required
            - github_push_access_required
            - gone
            - handed_branch_protected
            - head_moved
            - idempotency_key_conflict
            - idempotency_key_reused
            - inference_proxy_unavailable
            - insufficient_credits
            - insufficient_inference_balance
            - internal_error
            - invalid_request
            - mcp_server_not_connected
            - message_not_queued
            - method_not_allowed
            - mode_forbidden
            - no_dispatch_target
            - not_acceptable
            - not_found
            - not_implemented
            - onboarding_already_completed
            - onboarding_requirements_missing
            - org_id_required
            - org_role_insufficient
            - org_suspended
            - payment_required
            - pr_review_actor_required
            - pr_review_publish_forbidden
            - precondition_failed
            - project_has_no_repository
            - project_required
            - pull_request_closed
            - pull_request_mirror_failed
            - pull_request_not_mirrored
            - queued_stop_requires_discard
            - rate_limited
            - request_canceled
            - request_timeout
            - request_too_large
            - service_unavailable
            - stack_cycle
            - stack_too_large
            - stack_two_parents
            - stale_execution
            - stale_or_indeterminate
            - stale_pending_input
            - stream_delivery_gap
            - stream_event_conflict
            - task_awaiting_message
            - task_awaiting_tool_response
            - task_connection_disconnected
            - task_creator_deleted
            - task_has_no_repository
            - task_ineligible
            - task_not_accepting_messages
            - task_not_pinnable
            - task_settings_changed
            - teleport_unavailable
            - unauthenticated
            - unsigned_aether_head
            - unsigned_commit
            - unsupported_changes
            - unsupported_media_type
            - untyped_error
            - validation_failed
            - workspace_git_unavailable
            - workspace_rejected
          minLength: 1
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
        - code
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
            - agent_host_route_not_allowed
            - credential_kind_not_admitted
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    PRReviewHeadSnapshotCapturing:
      additionalProperties: false
      properties:
        kind:
          enum:
            - capturing
          type: string
      required:
        - kind
      type: object
    PRReviewHeadSnapshotFailed:
      additionalProperties: false
      properties:
        error:
          minLength: 1
          type: string
        kind:
          enum:
            - failed
          type: string
      required:
        - kind
        - error
      type: object
    PRReviewHeadSnapshotReady:
      additionalProperties: false
      properties:
        base_sha:
          maxLength: 40
          minLength: 40
          pattern: ^[0-9a-f]{40}$
          type: string
        files:
          items:
            $ref: '#/components/schemas/PRReviewHeadSnapshotFile'
          type: array
        head_sha:
          maxLength: 40
          minLength: 40
          pattern: ^[0-9a-f]{40}$
          type: string
        kind:
          enum:
            - ready
          type: string
        truncated:
          type: boolean
      required:
        - kind
        - head_sha
        - base_sha
        - truncated
        - files
      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
    PRReviewHeadSnapshotFile:
      additionalProperties: false
      properties:
        additions:
          format: int64
          minimum: 0
          type: integer
        category:
          $ref: '#/components/schemas/PRReviewFileCategory'
        deletions:
          format: int64
          minimum: 0
          type: integer
        head:
          $ref: '#/components/schemas/PRReviewHeadSnapshotContent'
        patch:
          type: string
        path:
          type: string
        previous_path:
          type: string
        status:
          $ref: '#/components/schemas/PRReviewDiffFileStatus'
      required:
        - path
        - status
        - category
        - additions
        - deletions
      type: object
    PRReviewFileCategory:
      enum:
        - implementation
        - tests
        - documentation
        - generated
      type: string
    PRReviewHeadSnapshotContent:
      discriminator:
        mapping:
          binary: '#/components/schemas/PRReviewHeadSnapshotContentBinary'
          omitted: '#/components/schemas/PRReviewHeadSnapshotContentOmitted'
          text: '#/components/schemas/PRReviewHeadSnapshotContentText'
          too_large: '#/components/schemas/PRReviewHeadSnapshotContentTooLarge'
        propertyName: kind
      oneOf:
        - $ref: '#/components/schemas/PRReviewHeadSnapshotContentText'
        - $ref: '#/components/schemas/PRReviewHeadSnapshotContentBinary'
        - $ref: '#/components/schemas/PRReviewHeadSnapshotContentTooLarge'
        - $ref: '#/components/schemas/PRReviewHeadSnapshotContentOmitted'
    PRReviewDiffFileStatus:
      enum:
        - added
        - removed
        - modified
        - renamed
        - copied
        - changed
        - unchanged
      type: string
    PRReviewHeadSnapshotContentBinary:
      additionalProperties: false
      properties:
        kind:
          enum:
            - binary
          type: string
      required:
        - kind
      type: object
    PRReviewHeadSnapshotContentOmitted:
      additionalProperties: false
      properties:
        kind:
          enum:
            - omitted
          type: string
        reason:
          minLength: 1
          type: string
      required:
        - kind
        - reason
      type: object
    PRReviewHeadSnapshotContentText:
      additionalProperties: false
      properties:
        content:
          type: string
        kind:
          enum:
            - text
          type: string
      required:
        - kind
        - content
      type: object
    PRReviewHeadSnapshotContentTooLarge:
      additionalProperties: false
      properties:
        kind:
          enum:
            - too_large
          type: string
      required:
        - kind
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

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