APIs.io Engineering Platform Pull Requests API

These endpoints enable you to manage your [pull requests](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/creating-pull-requests/) in Postman. Pull requests allow reviewers to look at your changes. Reviewers can make comments on your changes and will decide whether to approve them and merge them into the parent element.

Operations 5

GET /collections/{collectionId}/pull-requests APIs.io Engineering Platform Get a collection's pull requests #
POST /collections/{collectionId}/pull-requests APIs.io Engineering Platform Create a pull request #
GET /pull-requests/{pullRequestId} APIs.io Engineering Platform Get a pull request #
PUT /pull-requests/{pullRequestId} APIs.io Engineering Platform Update a pull request #
POST /pull-requests/{pullRequestId}/tasks APIs.io Engineering Platform Review a pull request #

Documentation

Specifications

Other Resources

🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-1ab188a6-cc1f-490d-9413-9c6da20918d0?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-0e94f581-cbc1-48e0-b594-1f6b3d07a328?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-4517d93a-e7f7-4dc2-b572-06762bbe14de?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-88f9ddbb-3115-47dc-b6e5-7fc6f1d2a190?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-3a12caae-4945-4df4-8ab9-bb6219ba7a9f?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-863b18f0-c2f2-4e32-a5fa-0d1e6ccf77a9?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-189876d1-f207-49a2-a4bc-5c67ae78cd19?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-c1e74fd9-3f84-4d95-943d-d645d6cb82f7?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-b002164d-6e8a-4b6d-b409-4929476e7818?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-508660fd-30b8-4c9c-aede-8edbac8a514d?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-da35e0ba-f1a9-42fe-a77a-56ff0a47e341?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-1d4df7d0-9c92-4fa8-946f-2110c2b3b48d?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-2af6f54f-d259-46c0-8f86-78856f5885cd?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-cc203f31-e7f6-42ec-ad34-c5c4cde58904?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-f19285da-48dd-4691-bbdf-f7d6bec157a3?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-aa69cacc-4bbf-4724-a1d4-78cdad57fee8?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-a5858f86-04d3-4e15-ae11-b42c7516688b?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-c2052341-766c-43c7-b1dc-ed4985e4606b?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-aa777c90-8271-4809-8eac-3ec39a9a899c?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-4d5957dc-df05-4216-a5fc-d46b3ba811d8?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-28d97617-fdba-46a5-ac3e-40f3d2e0fa57?action=share&creator=35240
🔗
PostmanCollection
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-7429b451-d812-4abc-b497-b763372cf5c5?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-b0eafdd0-adaa-48a2-a855-6a31beb86d83?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-209f34ef-13c1-400c-bca8-fcddb304aff5?action=share&creator=35240
🔗
PostmanCapability
https://api-evangelist.postman.co/workspace/APIs.io-Engineering-Platform/fe320942-e505-4ee8-8b7c-d72eae00d93f/collection/35240-fb2bbbb8-d4cc-48b1-a660-c8e158bfbbea?action=share&creator=35240

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/engineering-platform-pull-requests-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

engineering-platform-pull-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: APIs.io Engineering Platform Postman Pull Requests API
  description: "The Postman API enables you to programmatically access data stored in your Postman account.\n\n> Certain endpoints may be unavailable depending on your region and/or Postman plan.\n\nFor a comprehensive set of examples of requests and responses, see the [**Postman API** collection](https://www.postman.com/postman/workspace/postman-public-workspace/documentation/12959542-c8142d51-e97c-46b6-bd77-52bb66712c9a).\n\n## Getting started\n\nYou can get started with the Postman API by creating a copy of this definition in your workspace.\n\n### EU users\n\nFor users in the EU with [**Enterprise** plans](https://www.postman.com/pricing/), the Postman API uses the `http://api.eu.postman.com` subdomain. This is available in the definition's list of servers. You can change this by selecting the `http://api.eu.postman.com` subdomain in the **Server** dropdown list below.\n\n## About the Postman API\n\n- You must use a valid API Key to send requests to the API endpoints.\n- The API has [rate and usage limits](https://learning.postman.com/docs/developer/postman-api/postman-api-rate-limits/).\n- The API only responds to HTTPS-secured communications. Any requests sent via HTTP return an HTTP `301` redirect to the corresponding HTTPS resources.\n- The API returns requests responses in JSON format. When an API request returns an error, it is sent in the JSON response as an error key.\n- The request method (verb) determines the nature of action you intend to perform. A request made using the `GET` method implies that you want to fetch something from Postman. The `POST` method implies you want to save something new to Postman.\n- For all requests, API calls respond with their corresponding [HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). In the Postman client, the status code also provides help text that details the possible meaning of the response code.\n- When calling the API Builder endpoints, you must send an `Accept` header with the `application/vnd.api.v10+json` value.\n\n### IDs and UIDs\n\nAll items in Postman, such as collections, workspaces, and APIs, have IDs and UIDs:\n\n- An ID is the unique ID assigned to a Postman item. For example, `ec29121c-5203-409f-9e84-e83ffc10f226`.\n- The UID is the **full** ID of a Postman item. This value is the item's unique ID concatenated with the user ID. For example, in the `12345678-ec29121c-5203-409f-9e84-e83ffc10f226` UID:\n    - `12345678` is the user's ID.\n    - `ec29121c-5203-409f-9e84-e83ffc10f226` is the item's ID.\n\n### Enum values\n\nAny documented enum values should be considered partial lists and may change over time.\n\n### 403 response for unavailable features\n\nDepending on your region and/or Postman [plan](https://www.postman.com/pricing/), some endpoints will return an HTTP `403 Forbidden` response with the \"This feature isn't available in your region.\" detail.\n\n### 503 response\n\nAn HTTP `503 Service Unavailable` response from our servers indicates there is an unexpected spike in API access traffic. The server is usually operational within the next five minutes.\n\nIf the outage persists or you receive any other form of an HTTP `5XX` error, [contact support](https://support.postman.com/hc/en-us/requests/new/).\n\n## Authentication\n\nPostman uses API keys for authentication. The API key tells the API server that the request came from you. Everything that you have access to in Postman is accessible with your API key. You can [generate](https://learning.postman.com/docs/developer/postman-api/authentication/#generate-a-postman-api-key) a Postman API key in the [**API keys**](https://postman.postman.co/settings/me/api-keys) section of your Postman account settings.\n\nYou must include an API key in each request to the Postman API with the `X-API-Key` request header. In Postman, you can store your API key as a [vault secret](https://learning.postman.com/docs/sending-requests/postman-vault/postman-vault-secrets/) or an [environment variable](https://www.getpostman.com/docs/environments). The Postman API [collection](https://www.getpostman.com/docs/collections) will use it to make API calls.\n\n### SCIM authentication\n\nWhile all other endpoints in this collection require a Postman API key, the SCIM endpoints require a [SCIM API key](https://learning.postman.com/docs/administration/scim-provisioning/scim-provisioning-overview/#generating-scim-api-key).\n\n### Authentication error response\n\nIf an API key is missing, malformed, or invalid, you will receive an HTTP `401 Unauthorized` response code.\n\n## Rate and usage limits\n\nAPI access [rate limits](https://learning.postman.com/docs/developer/postman-api/postman-api-rate-limits/) apply at a per-user basis in unit time. The limit is **300 requests per minute**. Postman Monitors, the GET `/collections`, and the GET `/workspaces` endpoint have a rate limit of **10 calls in 10 seconds**. Depending on your [plan](https://www.postman.com/pricing/), you may also have [usage limits](https://learning.postman.com/docs/billing/resource-usage/).\n\nWhen you reach your rate or usage limits, the API returns the following HTTP `429 Too Many Requests` status code with one of the following error responses:\n\n- `rateLimited` — Rate limits reached. The response returns the time after which you can resume calls to the Postman API.\n- `serviceLimitExhausted` — Postman API service limits reached. You will need to contact your Postman Team Admin for assistance.\n\n## Support\n\nFor help regarding accessing the Postman API, you can:\n\n- Visit [Postman Support](https://support.postman.com/hc/en-us) or our [Community and Support](https://www.postman.com/community/) sites.\n- Reach out to the [Postman community](https://community.postman.com/).\n- Submit a help request to [Postman support](https://support.postman.com/hc/en-us/requests/new/).\n\n## Policies\n\n- [Postman Terms of Service](http://www.postman.com/legal/terms/)\n- [Postman Privacy Policy](https://www.postman.com/legal/privacy-policy/)\n"
  version: '1.0'
  termsOfService: https://www.postman.com/legal/terms/
  contact:
    name: Postman Support
    email: help@postman.com
    url: https://www.postman.com/community/
servers:
- url: https://api.getpostman.com
- url: https://api.eu.postman.com
security:
- PostmanApiKey: []
- scimApiKey: []
tags:
- name: Pull Requests
  description: These endpoints enable you to manage your [pull requests](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/creating-pull-requests/) in Postman. Pull requests allow reviewers to look at your changes. Reviewers can make comments on your changes and will decide whether to approve them and merge them into the parent element.
paths:
  /collections/{collectionId}/pull-requests:
    parameters:
    - $ref: '#/components/parameters/collectionUid'
    get:
      summary: APIs.io Engineering Platform Get a collection's pull requests
      description: Gets information about a collection's pull requests, such as the source and destination IDs, status of the pull requests, and a URL link to the pull requests.
      operationId: getCollectionPullRequests
      tags:
      - Pull Requests
      responses:
        '200':
          $ref: '#/components/responses/getCollectionPullRequests'
        '403':
          $ref: '#/components/responses/pullRequest403ErrorRolePermissionsCollection'
        '500':
          $ref: '#/components/responses/common500ErrorServerError'
    post:
      summary: APIs.io Engineering Platform Create a pull request
      description: Creates a pull request for a forked collection into its parent collection.
      operationId: createCollectionPullRequest
      tags:
      - Pull Requests
      requestBody:
        $ref: '#/components/requestBodies/pullRequestCreate'
      responses:
        '200':
          $ref: '#/components/responses/pullRequestCreated'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/forkCollection400ErrorBadForkRelation'
                - $ref: '#/components/schemas/pullRequest400ErrorDuplicate'
              examples:
                Invalid Fork Source:
                  $ref: '#/components/examples/forkCollection400ErrorBadForkRelation'
                Pull Request Already Exists:
                  $ref: '#/components/examples/pullRequest400ErrorDuplicate'
        '403':
          $ref: '#/components/responses/pullRequest403ErrorNoViewerAccessCollections'
        '500':
          $ref: '#/components/responses/common500ErrorServerError'
  /pull-requests/{pullRequestId}:
    parameters:
    - $ref: '#/components/parameters/pullRequestId'
    get:
      summary: APIs.io Engineering Platform Get a pull request
      description: Gets information about a pull request, such as the source and destination details, who reviewed the pull request, the merge's current status, and whether the element is accessible.
      operationId: getPullRequest
      tags:
      - Pull Requests
      responses:
        '200':
          $ref: '#/components/responses/getPullRequest'
        '403':
          $ref: '#/components/responses/pullRequest403ErrorForbidden'
        '500':
          $ref: '#/components/responses/common500ErrorServerError'
    put:
      summary: APIs.io Engineering Platform Update a pull request
      description: Updates an open pull request.
      operationId: updatePullRequest
      tags:
      - Pull Requests
      requestBody:
        $ref: '#/components/requestBodies/pullRequestUpdate'
      responses:
        '200':
          $ref: '#/components/responses/pullRequestUpdate'
        '403':
          $ref: '#/components/responses/pullRequest403ErrorForbidden'
        '409':
          $ref: '#/components/responses/pullRequest409ErrorConflict'
        '500':
          $ref: '#/components/responses/common500ErrorServerError'
  /pull-requests/{pullRequestId}/tasks:
    parameters:
    - $ref: '#/components/parameters/pullRequestId'
    post:
      summary: APIs.io Engineering Platform Review a pull request
      description: Updates the [review](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/reviewing-pull-requests/) status of a pull request.
      operationId: reviewPullRequest
      tags:
      - Pull Requests
      requestBody:
        $ref: '#/components/requestBodies/pullRequestReview'
      responses:
        '200':
          $ref: '#/components/responses/pullRequestReview200OK'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/pullRequestReview400ErrorActionNotAllowed'
                - $ref: '#/components/schemas/pullRequestReview400ErrorInvalidAction'
              examples:
                Action Not Allowed:
                  $ref: '#/components/examples/pullRequestReview400ErrorActionNotAllowed'
                Invalid Action:
                  $ref: '#/components/examples/pullRequestReview400ErrorInvalidAction'
        '403':
          $ref: '#/components/responses/pullRequest403ErrorForbidden'
        '500':
          $ref: '#/components/responses/common500ErrorServerError'
components:
  schemas:
    pullRequestReview400ErrorActionNotAllowed:
      title: Action Not Allowed
      type: object
      properties:
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/bad-request
        title:
          type: string
          description: A short summary of the error.
          example: Bad Request
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: Given action on current pull request is not allowed
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 400
    pullRequestReview400ErrorInvalidAction:
      title: Invalid Action
      type: object
      properties:
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/bad-request
        title:
          type: string
          description: A short summary of the error.
          example: Value must be one of "approve", "unapprove", "decline", "merge"
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: 'POST request body for ''/pull-requests/4e1a6609-1a29-4037-a411-89ecc14c6cd8/tasks'' failed to validate schema. Location: /properties/action/enum'
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 400
    forkCollection400ErrorBadForkRelation:
      title: Invalid Fork Source
      type: object
      properties:
        type:
          type: string
          format: uri-reference
          description: The [URI reference](https://www.rfc-editor.org/rfc/rfc3986) that identifies the type of problem.
          example: https://api.postman.com/problems/bad-request
        title:
          type: string
          description: A short summary of the problem.
          example: Bad Request
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 400
        detail:
          type: string
          description: Information about the error.
          example: Fork relation not found
    pullRequest403ErrorNoViewerAccessCollections:
      title: No Viewer Permissions
      type: object
      properties:
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: You and all reviewers need Viewer access on both source and destination collections.
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 403
        title:
          type: string
          description: A short summary of the error.
          example: Forbidden
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/forbidden
    pullRequest403ErrorForbidden:
      title: Forbidden
      type: object
      properties:
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: You do not have enough permissions to perform this action.
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 403
        title:
          type: string
          description: A short summary of the error.
          example: Forbidden
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/forbidden
    pullRequestUpdated:
      title: Updated Pull Request Payload
      type: object
      properties:
        createdAt:
          type: string
          description: The date and time at which the pull request was created.
          example: '2024-02-20T09:58:57.000Z'
        createdBy:
          type: string
          description: The ID of the user who created the pull request.
          example: '12345678'
        description:
          type: string
          description: The pull request's description.
          example: Updated description of the pull request.
        destinationId:
          type: string
          description: The pull request's merge destination ID.
          example: 12345678-12ece9e1-2abf-4edc-8e34-de66e74114d2
        forkType:
          type: string
          description: The type of forked element.
          example: collection
        id:
          type: string
          description: The pull request's ID.
          example: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
        sourceId:
          type: string
          description: The unique ID of the source element.
          example: 87654321-3b79068c-dbe5-41d5-a826-51be4bf646ef
        status:
          type: string
          description: The pull request's status.
          enum:
          - open
          - approved
          - declined
          - merged
          example: open
        title:
          type: string
          description: The pull request's title.
          example: Updated PR title
        updatedAt:
          type: string
          description: The date and time at which the pull request was updated.
          example: '2024-02-20T09:58:57.000Z'
    pullRequestGet:
      title: Pull Request Payload
      type: object
      properties:
        createdAt:
          type: string
          description: The date and time at which the pull request was created.
          example: '2024-02-20T09:55:46.000Z'
        updatedAt:
          type: string
          description: The date and time at which the pull request was updated.
          example: '2024-02-20T09:58:38.000Z'
        id:
          type: string
          description: The pull request's ID.
          example: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
        title:
          type: string
          description: The pull request's title.
          example: Test PR
        description:
          type: string
          description: The pull request's description.
          example: This is a test pull request.
        createdBy:
          type: string
          description: The ID of the user who created the pull request.
          example: '12345678'
        updatedBy:
          type: string
          description: The ID of the user who last updated the pull request.
          example: '12345678'
        comment:
          type: string
          description: If the pull request is a `decline` status, an optoinal comment about why the pull request was declined.
          example: Missing descriptions in requests
        fortkType:
          type: string
          description: The type of element the pull request was forked from.
          example: collection
        source:
          type: object
          description: Information about the pull request's source (parent) element.
          properties:
            id:
              type: string
              description: The pull request's source ID.
              example: 87654321-3b79068c-dbe5-41d5-a826-51be4bf646ef
            name:
              type: string
              description: The source element's name.
              example: test-collection
            forkName:
              type: string
              description: The name of the fork created from the source element.
              example: Taylor Lee's fork
            exists:
              type: boolean
              description: If true, whether the element is present and not deleted.
              example: true
        destination:
          description: Information about the pull request destination element.
          type: object
          properties:
            id:
              type: string
              description: The destination element's ID.
              example: 123456789-24f57217-1169-4b7c-a810-0e957c04eaa5
            name:
              type: string
              description: The destination element's name.
              example: test-collection
            exists:
              type: boolean
              description: If true, whether the element is present and not deleted.
              example: true
        status:
          type: string
          description: 'The pull request''s current review status:

            - `open` — The pull request is still open.

            - `approved` — The pull request was approved by its reviewers.

            - `declined` — The pull request was not approved by its reviewers.

            '
          example: declined
        merge:
          type: object
          description: Information about the current progress of the pull request's merge.
          properties:
            status:
              type: string
              description: 'The pull request''s current merge status:

                - `inactive` — There is no merge in progress.

                - `inprogress` — The pull request is currently merging.

                - `failed` — The pull request''s merge failed.

                '
              enum:
              - inactive
              - inprogress
              - failed
              example: inactive
        reviewers:
          type: array
          description: Information about the reviewers assigned to the pull request.
          items:
            type: object
            properties:
              id:
                type: string
                description: The reviewer's user ID.
                example: '12345678'
              status:
                type: string
                description: 'The reviewer''s review status response. One of:

                  - `approved`

                  - `declined`

                  '
                example: declined
    pullRequest400ErrorDuplicate:
      title: Pull Request Already Exists
      type: object
      properties:
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: A pull request for this source and destination already exists.
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 400
        title:
          type: string
          description: A short summary of the error.
          example: Duplicate pull request
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/bad-request
    pullRequest403ErrorRolePermissionsCollection:
      title: No Role Permissions
      type: object
      properties:
        detail:
          type: string
          description: Details about the occurrence of the error.
          example: You need Viewer role on both source and destination collections to view pull requests. Please contact collection editors to grant additional access to you.
        status:
          type: number
          format: http-status-code
          description: The error's HTTP status code.
          example: 403
        title:
          type: string
          description: A short summary of the error.
          example: Forbidden
        type:
          type: string
          format: uri
          description: The error type.
          example: https://api.postman.com/problems/forbidden
  examples:
    pullRequest400ErrorDuplicate:
      value:
        detail: A pull request for this source and destination already exists.
        status: 400
        title: Duplicate pull request
        type: https://api.postman.com/problems/bad-request
    pullRequestReview400ErrorInvalidAction:
      value:
        type: https://api.postman.com/problems/bad-request
        title: Value must be one of "approve", "unapprove", "decline", "merge"
        detail: 'POST request body for ''/pull-requests/4e1a6609-1a29-4037-a411-89ecc14c6cd8/tasks'' failed to validate schema. Location: /properties/action/enum'
        status: 400
    pullRequestReview400ErrorActionNotAllowed:
      value:
        type: https://api.postman.com/problems/bad-request
        title: Bad Request
        detail: Given action on current pull request is not allowed
        status: 400
    forkCollection400ErrorBadForkRelation:
      value:
        type: https://api.postman.com/problems/bad-request
        title: Bad Request
        status: 400
        detail: Fork relation not found
  parameters:
    pullRequestId:
      name: pullRequestId
      in: path
      required: true
      description: The pull request's ID.
      schema:
        type: string
        example: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
    collectionUid:
      name: collectionId
      in: path
      required: true
      description: The collection's unique ID.
      schema:
        type: string
        format: uid
        example: 12345678-12ece9e1-2abf-4edc-8e34-de66e74114d2
  requestBodies:
    pullRequestReview:
      content:
        application/json:
          schema:
            required:
            - action
            type: object
            properties:
              action:
                type: string
                description: 'The action to perform on the pull request:

                  - `approve` — Approve the pull request for merge.

                  - `decline` — Decline the pull request.

                  - `merge` — Merge the pull request into its parent element.

                  - `unapprove` — Revokes a pull request''s `approve` status. This action does not decline the pull request.

                  '
                enum:
                - approve
                - decline
                - merge
                - unapprove
                example: decline
              comment:
                type: string
                description: If the pull request is a `decline` status, an optoinal comment about why the pull request was declined.
                example: Missing descriptions in requests
          examples:
            Approve:
              value:
                action: approve
            Merge:
              value:
                action: merge
            Decline:
              value:
                action: decline
                comment: Missing descriptions in requests
            Unapprove:
              value:
                action: unapprove
    pullRequestCreate:
      content:
        application/json:
          schema:
            type: object
            required:
            - title
            - description
            - reviewers
            - destinationId
            description: Information about the pull request.
            properties:
              title:
                type: string
                description: The title of the pull request.
                example: Test PR
              description:
                type: string
                description: The pull request's description.
                example: This is a test pull request.
              reviewers:
                type: array
                description: A list of reviewers to assign to the pull request.
                items:
                  type: string
                  description: The reviewer's user ID.
                  example: '87654321'
              destinationId:
                type: string
                description: The collection ID to merge the pull request into.
                example: 12345678-ec548788-unftw-rgn8-83b8-0b59798648e4
          example:
            title: Test PR
            description: This is a test pull request.
            reviewers:
            - '87654321'
            - '56781234'
            destinationId: 12345678-ec548788-unftw-rgn8-83b8-0b59798648e4
    pullRequestUpdate:
      content:
        application/json:
          schema:
            type: object
            required:
            - reviewers
            - title
            properties:
              title:
                type: string
                description: The pull request's updated title.
                example: Updated PR title
              description:
                type: string
                description: The updated pull request description.
                example: Updated description of the pull request.
              reviewers:
                type: array
                description: An updated list of the pull request's assigned reviewers. This replaces all existing users assigned to the pull request with those you pass in the request body.
                items:
                  type: string
                  description: The reviewer's user ID.
                  example: '12345678'
          example:
            description: Updated description of the pull request.
            reviewers:
            - '12345678'
            - '87654321'
            title: Updated PR title
  responses:
    pullRequestReview200OK:
      description: Successful Response
      content:
        application/json:
          schema:
            type: object
            properties:
              id:
                type: string
                description: The pull request's ID.
                example: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
              reviewedBy:
                type: object
                description: Information about the user who reviewed the pull request review.
                properties:
                  id:
                    type: number
                    description: The user's ID.
                    example: 12345678
                  name:
                    type: string
                    description: The user's name.
                    example: Taylor Lee
                  username:
                    type: string
                    description: The user's username.
                    example: taylor-lee
              status:
                type: string
                description: 'The pull request''s current review status:

                  - `open` — The pull request is still open.

                  - `approved` — The pull request was approved by its reviewers.

                  - `declined` — The pull request was not approved by its reviewers.

                  '
                example: approved
              updatedAt:
                type: string
                description: The date and time at which the pull request was updated.
                example: '2024-02-21T08:19:09.000Z'
          examples:
            Approved:
              value:
                id: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
                reviewedBy:
                  id: 12345678
                  name: Taylor Lee
                  username: taylor-lee
                status: approved
                updatedAt: '2024-02-21T08:19:09.000Z'
            Merged:
              value:
                id: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
                reviewedBy:
                  id: 12345678
                  name: Taylor Lee
                  username: taylor-lee
                status: merged
                updatedAt: '2024-02-21T08:19:09.000Z'
            Declined:
              value:
                id: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
                reviewedBy:
                  id: 12345678
                  name: Taylor Lee
                  username: taylor-lee
                status: declined
                updatedAt: '2024-02-21T08:19:09.000Z'
            Unpproved:
              value:
                id: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
                reviewedBy:
                  id: 12345678
                  name: Taylor Lee
                  username: taylor-lee
                status: open
                updatedAt: '2024-02-21T08:19:09.000Z'
    getPullRequest:
      description: Successful Response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/pullRequestGet'
          example:
            createdAt: '2024-02-20T09:55:46.000Z'
            updatedAt: '2024-02-20T09:58:38.000Z'
            id: 4e1a6609-1a29-4037-a411-89ecc14c6cd8
            title: Test PR
            description: This is a test pull request.
            createdBy: '12345678'
            updatedBy: '12345678'
            comment: Missing descriptions in requests
            forkType: collection
            source:
              id: 87654321-3b79068c-dbe5-41d5-a826-51be4bf646ef
              name: test-collection
              forkName: Taylor Lee's fork
              exists: true
            destination:
              id: 123456789-24f57217-1169-4b7c-a810-0e957c04eaa5
              name: test-collection
              exists: true
            status: declined
            merge:
              status: inactive
            reviewers:
            - id: '12345678'
              status: declined
    pullRequest403ErrorForbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/pullRequest403ErrorForbidden'
          example:
            detail: You do not have enough permissions to perform this action.
            status: 403
            title: Forbidden
            type

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/engineering-platform/refs/heads/main/openapi/engineering-platform-pull-requests-api-openapi.yml