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

# Get Workspace Pull Request Details

> Returns enriched details for pull requests tracked by a workspace, including CI status, whether the code host will currently accept a merge, whether the requesting user can approve, and nullable GitHub stack metadata. Each entry carries either details or an error explaining why enrichment failed.



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/pull-requests/details
openapi: 3.1.0
info:
  title: Replica API
  version: 2.0.0
  description: >-
    The Replica API allows you to programmatically manage cloud workspaces for
    AI agents. Use this API to manage environments (the org-scoped primitive
    workspaces are created from — including variables, files, skills, MCPs, warm
    hooks, start hooks, and warm pools), create and manage replicas, send
    messages, manage chats, stream events, read connected repositories and
    repository sets, and configure automations.
servers:
  - url: https://api.replicas.dev
    description: Production API
security:
  - apiKey: []
tags:
  - name: Environments
    description: >-
      Manage environments — the primitive that workspaces are created from.
      Variables, files, skills, MCPs, warm-hooks, and warm-pools are all scoped
      to an environment. Every organization has a singleton Global environment
      whose values apply to every workspace. Personal environments are scoped to
      the authenticated user and can be standalone or source-backed by a team
      environment.
  - name: Repository
    description: >-
      Read repositories and repository sets connected to your organization.
      Repositories are the underlying GitHub-connection layer; bind them to an
      environment to use them in workspaces.
  - name: Replica
    description: >-
      Manage replicas (workspaces) for AI agents. Workspace creation with `POST
      /v1/replica` accepts API keys and workspace engine-secret authentication.
      Other Replica operations also accept logged-in user JWTs from first-party
      clients.
  - name: Terminal
    description: Manage interactive terminal sessions in active workspaces
  - name: Preview
    description: Manage public preview URLs for workspace ports
  - name: Profile
    description: Read and update the authenticated user's profile
  - name: Credentials
    description: >-
      Manage coding-agent credentials for an organization or the authenticated
      user
  - name: Preferences
    description: Manage organization behavior preferences
  - name: Slack
    description: Connect Slack identities and route threads to Replicas workspaces
  - name: Linear
    description: Connect Linear identities to Replicas accounts
  - name: Automation
    description: >-
      Create and manage automations that trigger replicas on a schedule or in
      response to events
  - name: Downloads
    description: Download Replicas applications
  - name: Media
    description: >-
      Read workspace media and obtain short-lived download or inline preview
      URLs
  - name: Analytics
    description: >-
      Read aggregated activity and usage metrics for your organization: compute
      minutes, workspaces created by source, and pull request throughput over a
      time range.
  - name: Presence
    description: >-
      Read and report ephemeral member presence: who is online, where they are
      (environment or workspace), and whether they are typing. Presence is
      backed by short-lived keys rather than the database and broadcast to other
      members over the events stream.
  - name: Plugins
    description: >-
      Install and manage native and Composio-backed workspace plugins. A plugin
      installs for a single environment, for the whole organization (which uses
      the Global environment), or for one member personally. A workspace uses
      the most specific installation available: personal, then its own
      environment, then the environment it was branched from, then Global.
      Composio Connect Links host managed OAuth, custom OAuth, API-key,
      bearer-token, basic, and dynamic OAuth authentication without exposing
      provider credentials to Replicas.
paths:
  /v1/workspaces/{workspaceId}/pull-requests/details:
    post:
      tags:
        - Replica
      summary: Get Workspace Pull Request Details
      description: >-
        Returns enriched details for pull requests tracked by a workspace,
        including CI status, whether the code host will currently accept a
        merge, whether the requesting user can approve, and nullable GitHub
        stack metadata. Each entry carries either details or an error explaining
        why enrichment failed.
      operationId: getWorkspacePullRequestDetails
      parameters:
        - name: workspaceId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspacePullRequestDetailsRequest'
      responses:
        '200':
          description: Pull request details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspacePullRequestDetailsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    WorkspacePullRequestDetailsRequest:
      type: object
      properties:
        prUrls:
          type: array
          items:
            type: string
            format: uri
          maxItems: 20
      required:
        - prUrls
    WorkspacePullRequestDetailsResponse:
      type: object
      properties:
        pullRequests:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
                format: uri
              details:
                allOf:
                  - $ref: '#/components/schemas/PullRequestDetails'
                nullable: true
              error:
                type: string
                nullable: true
            required:
              - url
              - details
              - error
      required:
        - pullRequests
    PullRequestDetails:
      type: object
      properties:
        url:
          type: string
          format: uri
        repoName:
          type: string
        owner:
          type: string
        repo:
          type: string
        number:
          type: integer
        title:
          type: string
        state:
          type: string
          enum:
            - open
            - merged
            - closed
            - draft
        authorLogin:
          type: string
          nullable: true
        headBranch:
          type: string
        baseBranch:
          type: string
        stack:
          allOf:
            - $ref: '#/components/schemas/PullRequestStack'
          nullable: true
        mergeability:
          type: string
          enum:
            - mergeable
            - blocked
            - behind
            - conflicts
            - draft
            - unknown
          description: >-
            Whether the code host will currently accept a merge. Mirrors
            GitHub's mergeable_state and GitLab's detailed_merge_status, so it
            captures branch protection outcomes that state and ciStatus cannot:
            blocked means a rule such as a required review is unsatisfied,
            behind means the branch is out of date with its base, and unknown
            means the host has not finished computing mergeability.
        ciStatus:
          type: string
          enum:
            - success
            - failure
            - pending
            - none
        additions:
          type: integer
          nullable: true
          description: >-
            Added lines, or null when the code host does not provide complete
            diff data.
        deletions:
          type: integer
          nullable: true
          description: >-
            Deleted lines, or null when the code host does not provide complete
            diff data.
        changedFiles:
          type: integer
        commentCount:
          type: integer
        checks:
          $ref: '#/components/schemas/PullRequestChecksSummary'
        checkItems:
          type: array
          description: Individual provider-reported checks and their current statuses.
          items:
            $ref: '#/components/schemas/PullRequestCheck'
        mergeBlockers:
          type: array
          description: Normalized reasons the code host currently blocks the merge.
          items:
            type: string
            enum:
              - review_required
              - changes_requested
              - unresolved_conversations
              - required_checks
              - merge_policy
              - jira_association
              - branch_protection
        canApprove:
          type: boolean
          description: >-
            Whether the requesting user's connected GitHub account can currently
            submit an approving review.
        updatedAt:
          type: string
          format: date-time
      required:
        - url
        - repoName
        - owner
        - repo
        - number
        - title
        - state
        - authorLogin
        - headBranch
        - baseBranch
        - stack
        - mergeability
        - ciStatus
        - additions
        - deletions
        - changedFiles
        - commentCount
        - checks
        - canApprove
        - updatedAt
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type:
            - string
            - 'null'
          description: Additional error details
      required:
        - error
    PullRequestStack:
      type: object
      description: >-
        GitHub stack metadata. Null for standalone GitHub pull requests and
        GitLab merge requests.
      properties:
        number:
          type: integer
        size:
          type: integer
        position:
          type: integer
          minimum: 1
          description: 1-based order from the stack base to its top pull request.
        baseBranch:
          type: string
      required:
        - number
        - size
        - position
        - baseBranch
    PullRequestChecksSummary:
      type: object
      description: >-
        Check counts across the pull request head commit, spanning both commit
        statuses and check runs.
      properties:
        total:
          type: integer
        passing:
          type: integer
        failing:
          type: integer
        pending:
          type: integer
      required:
        - total
        - passing
        - failing
        - pending
    PullRequestCheck:
      type: object
      description: A provider-reported status or check run on the pull request head commit.
      properties:
        name:
          type: string
        status:
          type: string
          enum:
            - success
            - failure
            - pending
        statusLabel:
          type: string
        description:
          type: string
        url:
          type: string
          format: uri
      required:
        - name
        - status
  responses:
    BadRequest:
      description: Bad request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Obtain your API key from the Replicas dashboard
        under Organization → Settings → API Keys.

````