---
title: "List pull requests"
method: GET
path: "/pull-requests"
tags: ["Pull Requests"]
---

# List pull requests

`GET /pull-requests`

List pull requests that Sazabi opened, optionally filtered by status, repository, and requesting user.

## Query parameters

- `projectId` string, uuid — Project to list pull requests for. Auto-filled from CLI and SDK context when omitted.
- `limit` integer — Maximum number of pull requests to return per page.
- `cursor` string — Opaque cursor from a previous response's nextCursor to fetch the next page. Pass it back verbatim; its format is not part of the API contract.
- `status` 'open' | 'merged' | 'closed' — Filter by pull request status (open, merged, or closed).
- `repositoryFullName` string — Filter by repository full name, for example owner/repo. Case-insensitive.
- `requestedByUserId` string — Filter by the Sazabi user who requested the pull request. Pass 'me' to filter to the authenticated user.

## Response `200`

OK

- object
  - `pullRequests` object[], required
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `repositoryFullName` string, required
    - `pullRequestId` string, required — Provider-native pull request identifier (GitHub PR number or Bitbucket PR id), serialized as a string.
    - `githubPullRequestId` integer, required — Deprecated: use pullRequestId. Numeric form of the provider-native pull request identifier; kept for backward compatibility.
    - `title` string, nullable, required
    - `url` string, nullable, required
    - `status` 'open' | 'merged' | 'closed', nullable, required
    - `reviewState` 'review_required' | 'approved' | 'changes_requested', nullable, required
    - `checksState` 'passing' | 'failing' | 'pending', nullable, required
    - `requestedByUserId` string, nullable, required
    - `authorLogin` string, nullable, required — Forge login that authored the pull request (often the Sazabi app identity).
    - `githubAuthorLogin` string, nullable, required — Deprecated: use authorLogin. Kept for backward compatibility.
    - `threadId` string, uuid, nullable, required
    - `runId` string, uuid, nullable, required
    - `createdAt` string, date-time, required
    - `mergedAt` string, date-time, nullable, required
    - `closedAt` string, date-time, nullable, required
  - `nextCursor` string, nullable, required — Opaque cursor to pass as 'cursor' to fetch the next page. Null when there are no more results.

## Changes

- **2026-09-02** `40397f617651` — 2 breaking, 1 info
  - for the `query` request parameter `cursor`, the minLength was increased from `0` to `1`
  - the `nextCursor/anyOf[subschema #1]/` response's property format changed from `uuid` to no format for status `200`
  - for the `query` request parameter `cursor`, the format was generalized from `uuid` to no format

[Change history](https://skmtc.dev/sazabi/apis/sazabi-public-api/changes/pull-requests/get.md)

---

[API](https://skmtc.dev/sazabi/apis/sazabi-public-api.md) · [All operations](https://skmtc.dev/sazabi/apis/sazabi-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sazabi/sazabi-public-api/revisions/1d12b71c735a/schema)
