Postman Private API Network API

The Private API Network API enables you to programmatically manage your private API network, automate management of internal documentation, and integrate with CI/CD pipelines.

OpenAPI Specification

postman-private-api-network-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Postman Private API Network API
  description: |
    The Postman Private API Network API enables you to programmatically manage
    your organization's private API network. The private API network is a
    curated catalog of internal APIs that helps teams discover and consume
    APIs within your organization.

    ## Authentication
    All requests require an API key passed in the `x-api-key` header.

    ## Rate Limits
    Standard Postman API rate limits apply.
  version: '1.0.0'
  contact:
    name: Postman Developer Support
    url: https://learning.postman.com/docs/developer/postman-api/intro-api/
    email: [email protected]
  license:
    name: Postman Terms of Service
    url: https://www.postman.com/legal/terms/
servers:
  - url: https://api.getpostman.com
    description: Postman Production API Server
tags:
  - name: Network Elements
    description: Operations for managing elements (APIs, collections, workspaces) in the network.
  - name: Network Folders
    description: Operations for managing folders in the private API network.
  - name: Network Requests
    description: Operations for managing requests to add elements to the network.
  - name: Private API Network
    description: Operations for managing the private API network catalog.
security:
  - apiKeyAuth: []
paths:
  /network/private:
    get:
      tags:
        - Private API Network
      summary: Postman Get all elements in the private API network
      operationId: getPrivateNetworkElements
      description: >-
        Gets all elements published to the team's private API network. Returns
        APIs, collections, and workspaces that have been added to the network.
      parameters:
        - name: since
          in: query
          description: Return elements added after this date (ISO 8601).
          schema:
            type: string
            format: date-time
        - name: until
          in: query
          description: Return elements added before this date (ISO 8601).
          schema:
            type: string
            format: date-time
        - name: addedBy
          in: query
          description: Filter by the user who added the element.
          schema:
            type: integer
        - name: name
          in: query
          description: Filter by element name (partial match).
          schema:
            type: string
        - name: summary
          in: query
          description: Filter by element summary (partial match).
          schema:
            type: string
        - name: description
          in: query
          description: Filter by element description (partial match).
          schema:
            type: string
        - name: type
          in: query
          description: Filter by element type.
          schema:
            type: string
            enum: [api, collection, workspace]
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
            maximum: 100
        - name: parentFolderId
          in: query
          description: Filter by parent folder ID.
          schema:
            type: integer
        - name: sort
          in: query
          description: Sort field.
          schema:
            type: string
            enum: [createdAt, updatedAt]
        - name: direction
          in: query
          description: Sort direction.
          schema:
            type: string
            enum: [asc, desc]
      responses:
        '200':
          description: Successful response with network elements
          content:
            application/json:
              schema:
                type: object
                properties:
                  elements:
                    type: array
                    items:
                      $ref: '#/components/schemas/NetworkElement'
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
                      limit:
                        type: integer
                      offset:
                        type: integer
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitError'
    post:
      tags:
        - Network Elements
      summary: Postman Add an element to the private API network
      operationId: addNetworkElement
      description: >-
        Publishes an element (API, collection, or workspace) to the private API
        network. The element becomes discoverable by all team members.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - type
                - id
              properties:
                type:
                  type: string
                  enum: [api, collection, workspace]
                  description: The type of element to add
                id:
                  type: string
                  description: The element's unique ID
                parentFolderId:
                  type: integer
                  description: The parent folder ID in the network
                summary:
                  type: string
                  description: A custom summary for the element in the network
      responses:
        '200':
          description: Successfully added element to network
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkElement'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/{elementType}/{elementId}:
    put:
      tags:
        - Network Elements
      summary: Postman Update a network element
      operationId: updateNetworkElement
      description: >-
        Updates an element's metadata in the private API network.
      parameters:
        - name: elementType
          in: path
          required: true
          schema:
            type: string
            enum: [api, collection, workspace]
        - name: elementId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                summary:
                  type: string
                parentFolderId:
                  type: integer
      responses:
        '200':
          description: Successfully updated network element
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
    delete:
      tags:
        - Network Elements
      summary: Postman Remove an element from the private API network
      operationId: removeNetworkElement
      description: >-
        Removes an element from the private API network. This only removes
        it from the network catalog; it does not delete the underlying resource.
      parameters:
        - name: elementType
          in: path
          required: true
          schema:
            type: string
            enum: [api, collection, workspace]
        - name: elementId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully removed element from network
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/network-folder:
    get:
      tags:
        - Network Folders
      summary: Postman Get all network folders
      operationId: getNetworkFolders
      description: >-
        Gets all folders in the private API network. Folders help organize
        APIs and collections in the network catalog.
      parameters:
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
        - name: parentFolderId
          in: query
          schema:
            type: integer
        - name: sort
          in: query
          schema:
            type: string
            enum: [createdAt, updatedAt]
        - name: direction
          in: query
          schema:
            type: string
            enum: [asc, desc]
      responses:
        '200':
          description: Successful response with network folders
          content:
            application/json:
              schema:
                type: object
                properties:
                  folders:
                    type: array
                    items:
                      $ref: '#/components/schemas/NetworkFolder'
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitError'
    post:
      tags:
        - Network Folders
      summary: Postman Create a network folder
      operationId: createNetworkFolder
      description: >-
        Creates a new folder in the private API network.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                description:
                  type: string
                parentFolderId:
                  type: integer
      responses:
        '200':
          description: Successfully created network folder
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkFolder'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/network-folder/{folderId}:
    put:
      tags:
        - Network Folders
      summary: Postman Update a network folder
      operationId: updateNetworkFolder
      parameters:
        - name: folderId
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                parentFolderId:
                  type: integer
      responses:
        '200':
          description: Successfully updated network folder
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
    delete:
      tags:
        - Network Folders
      summary: Postman Delete a network folder
      operationId: deleteNetworkFolder
      parameters:
        - name: folderId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successfully deleted network folder
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/network-request:
    get:
      tags:
        - Network Requests
      summary: Postman Get all network requests
      operationId: getNetworkRequests
      description: >-
        Gets all pending requests to add elements to the private API network.
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum: [pending, approved, denied]
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Successful response with network requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  requests:
                    type: array
                    items:
                      $ref: '#/components/schemas/NetworkRequest'
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/network-request/{requestId}/approve:
    put:
      tags:
        - Network Requests
      summary: Postman Approve a network request
      operationId: approveNetworkRequest
      parameters:
        - name: requestId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successfully approved network request
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
  /network/private/network-request/{requestId}/deny:
    put:
      tags:
        - Network Requests
      summary: Postman Deny a network request
      operationId: denyNetworkRequest
      parameters:
        - name: requestId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successfully denied network request
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      name: x-api-key
      in: header
      description: Postman API key for authentication.
  schemas:
    NetworkElement:
      type: object
      description: An element published to the private API network.
      properties:
        id:
          type: string
        type:
          type: string
          enum: [api, collection, workspace]
        name:
          type: string
        summary:
          type: string
        description:
          type: string
        addedBy:
          type: integer
        addedAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        parentFolderId:
          type: integer
        href:
          type: string
          format: uri
    NetworkFolder:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        description:
          type: string
        parentFolderId:
          type: integer
        createdBy:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    NetworkRequest:
      type: object
      properties:
        id:
          type: integer
        type:
          type: string
          enum: [api, collection, workspace]
        elementId:
          type: string
        name:
          type: string
        summary:
          type: string
        status:
          type: string
          enum: [pending, approved, denied]
        requestedBy:
          type: integer
        requestedAt:
          type: string
          format: date-time
        respondedBy:
          type: integer
        respondedAt:
          type: string
          format: date-time
        message:
          type: string
  responses:
    BadRequestError:
      description: Bad request - invalid input
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string
    UnauthorizedError:
      description: Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string
    ForbiddenError:
      description: Insufficient permissions to perform this operation
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string
    NotFoundError:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string
    RateLimitError:
      description: Too many requests - rate limit exceeded
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              message:
                type: string