---
title: "Get PR details"
method: GET
path: "/api/v1alpha/watched_branches/{branch}/prs/{number}"
tags: ["PRs"]
---

# Get PR details

`GET /api/v1alpha/watched_branches/{branch}/prs/{number}`

## Request

- Base URL: `{{ base_url }}`
- URL: `{{ base_url }}/api/v1alpha/watched_branches/{branch}/prs/{number}`
- Auth: none declared

Returns full details for a single PR. For active PRs (still open against this branch) includes merge eligibility and queue position. For historical PRs fetches from GitHub.

## Path parameters

- `branch` string, required
- `number` integer, required

## Response `200`

PR details retrieved successfully

- union
  - ActivePRDetail
    - `number` integer
    - `title` string
    - `author` string
    - `assignees` string[]
    - `reviewers` string[]
    - `source_branch_name` string
    - `build_state` string, nullable
    - `review_state` string, nullable
    - `labels` string[]
    - `out_of_date` boolean
    - `gh_statuses` object
    - `batch_id` integer, nullable
    - `review_approved` boolean
    - `checks_all_pass` boolean
    - `is_up_to_date` boolean
    - `blocking_labels` string[]
    - `is_mergeable` boolean
    - `prs_ahead_in_queue` object[]
      - `number` integer
      - `title` string
      - `is_merge_candidate` boolean
    - `is_merge_candidate` boolean
    - `merge_pending` boolean: CI has requested an async merge of this PR and is waiting for GitHub to finish it
    - `merge_pending_uuid` string, nullable: GitHub's id for the pending async merge, if GitHub reported one
    - `merge_requested_at_ms` integer, nullable: When CI requested the pending merge, in milliseconds since the epoch
    - `merge_failures` integer: Failed merge attempts at the current source and target SHAs
    - `merge_retry_after_ms` integer, nullable: When CI will next try to merge this PR after a failed attempt, in milliseconds since the epoch
    - `blocking_deploy_batch_id` integer, nullable
    - `batch` BatchSummary, nullable
      - `id` integer
      - `state` string, nullable
      - `cost` number, nullable
      - `artifacts_uri` string
  - HistoricalPRDetail
    - `number` integer
    - `title` string
    - `labels` string[]
    - `merged` boolean, nullable
    - `merge_commit_sha` string, nullable

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Branch or PR not found

## Changes

- **2026-10-16** `82e6dd979b5b`: 5 info
  - added the optional property `oneOf[#/components/schemas/ActivePRDetail]/allOf[subschema #2]/merge_failures` to the response with the `200` status
  - added the optional property `oneOf[#/components/schemas/ActivePRDetail]/allOf[subschema #2]/merge_pending` to the response with the `200` status
  - added the optional property `oneOf[#/components/schemas/ActivePRDetail]/allOf[subschema #2]/merge_pending_uuid` to the response with the `200` status
  - added the optional property `oneOf[#/components/schemas/ActivePRDetail]/allOf[subschema #2]/merge_requested_at_ms` to the response with the `200` status
  - …1 more
- **2026-07-30** `37d6dddb7b5a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hail-is/apis/hail-ci-service/changes/api/v1alpha/watched_branches/:branch/prs/:number/get.md)

---

[API](https://skmtc.dev/hail-is/apis/hail-ci-service.md) - [All operations](https://skmtc.dev/hail-is/apis/hail-ci-service/llms.txt) - [OpenAPI document](https://skmtc.dev/hail-is/apis/hail-ci-service/revisions/a60fc5e80878?raw)
