> ## 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 whole stack a reviewed pull request belongs to

> Reads the tree of tracked open pull requests the pull request is stacked in, from its bottom layer up, depth first, each layer's children in ascending number, forks included. 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. A loop is a 409 stack_cycle, a layer based on a branch two open pull requests head a 409 stack_two_parents, and more than 64 layers a 409 stack_too_large, each naming the pull request where it breaks and none returning a partial stack.



## OpenAPI

````yaml api-reference/openapi.json GET /pull-requests/{pullRequestID}/review/stack
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/stack:
    get:
      tags:
        - pull-requests
      summary: Get the whole stack a reviewed pull request belongs to
      description: >-
        Reads the tree of tracked open pull requests the pull request is stacked
        in, from its bottom layer up, depth first, each layer's children in
        ascending number, forks included. 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. A loop is a 409 stack_cycle, a layer based on
        a branch two open pull requests head a 409 stack_two_parents, and more
        than 64 layers a 409 stack_too_large, each naming the pull request where
        it breaks and none returning a partial stack.
      operationId: getPullRequestReviewStack
      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
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullRequestStack'
          description: OK
        '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/PullRequestStackRefusalErrorResponse'
          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:
    PullRequestStack:
      additionalProperties: false
      properties:
        base_branch:
          type: string
        layers:
          items:
            $ref: '#/components/schemas/PRReviewStackLayer'
          minItems: 1
          type: array
      required:
        - layers
      type: object
    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
    PullRequestStackRefusalErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - stack_cycle
            - stack_two_parents
            - stack_too_large
          type: string
        error:
          minLength: 1
          type: string
        pr_number:
          format: int64
          minimum: 1
          type: integer
      required:
        - error
        - code
        - pr_number
      type: object
    PRReviewStackLayer:
      additionalProperties: false
      properties:
        ci_status:
          $ref: '#/components/schemas/TaskCIStatus'
        depth:
          format: int64
          minimum: 0
          type: integer
        has_review:
          type: boolean
        html_url:
          type: string
        parent_pull_request_id:
          format: uuid
          type: string
        pr_number:
          format: int64
          minimum: 1
          type: integer
        pull_request_id:
          format: uuid
          type: string
        ready_for_merge:
          type: boolean
        state:
          $ref: '#/components/schemas/TaskGitHubPRState'
        title:
          type: string
      required:
        - pull_request_id
        - depth
        - pr_number
        - title
        - html_url
        - ready_for_merge
        - has_review
      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
    TaskCIStatus:
      enum:
        - pending
        - passed
        - failed
      type: string
    TaskGitHubPRState:
      enum:
        - open
        - closed
        - merged
      type: string
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

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