Postman Monitors API

The Monitors API enables you to programmatically run collections on a schedule, manage webhooks, and access metrics for API monitoring instances.

OpenAPI Specification

postman-monitors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Postman Monitors API
  description: |
    The Postman Monitors API enables you to create and manage monitors that run
    collections on a schedule. Monitors run collection requests at specified
    intervals and provide notifications when tests fail, enabling continuous
    API testing and monitoring.

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

    ## Rate Limits
    Monitor usage limits vary by plan. Free plans include 1,000 monitoring
    API calls per month.
  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: Monitors
    description: Operations for creating and managing Postman monitors.
security:
  - apiKeyAuth: []
paths:
  /monitors:
    get:
      tags:
        - Monitors
      summary: Postman Get all monitors
      operationId: getAllMonitors
      description: >-
        Gets all monitors accessible to the authenticated user. Returns metadata
        about each monitor including schedule, last run status, and associated
        collection.
      parameters:
        - name: workspace
          in: query
          description: Filter monitors by workspace ID.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful response with list of monitors
          content:
            application/json:
              schema:
                type: object
                properties:
                  monitors:
                    type: array
                    items:
                      $ref: '#/components/schemas/MonitorListItem'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      tags:
        - Monitors
      summary: Postman Create a monitor
      operationId: createMonitor
      description: >-
        Creates a new monitor that runs a collection on a specified schedule.
        You must specify the collection to run, the environment to use, and
        the schedule (cron expression or interval).
      parameters:
        - name: workspace
          in: query
          description: The workspace ID to create the monitor in.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - monitor
              properties:
                monitor:
                  $ref: '#/components/schemas/MonitorInput'
      responses:
        '200':
          description: Successfully created monitor
          content:
            application/json:
              schema:
                type: object
                properties:
                  monitor:
                    $ref: '#/components/schemas/Monitor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /monitors/{monitorId}:
    get:
      tags:
        - Monitors
      summary: Postman Get a monitor
      operationId: getMonitor
      description: >-
        Gets information about a single monitor, including its configuration,
        schedule, last run details, and notification settings.
      parameters:
        - $ref: '#/components/parameters/MonitorIdParam'
      responses:
        '200':
          description: Successful response with monitor details
          content:
            application/json:
              schema:
                type: object
                properties:
                  monitor:
                    $ref: '#/components/schemas/Monitor'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
        - Monitors
      summary: Postman Update a monitor
      operationId: updateMonitor
      description: >-
        Updates an existing monitor's name, schedule, collection, or
        environment configuration.
      parameters:
        - $ref: '#/components/parameters/MonitorIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - monitor
              properties:
                monitor:
                  $ref: '#/components/schemas/MonitorInput'
      responses:
        '200':
          description: Successfully updated monitor
          content:
            application/json:
              schema:
                type: object
                properties:
                  monitor:
                    $ref: '#/components/schemas/Monitor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
        - Monitors
      summary: Postman Delete a monitor
      operationId: deleteMonitor
      description: >-
        Deletes a monitor. This stops all scheduled runs and is irreversible.
      parameters:
        - $ref: '#/components/parameters/MonitorIdParam'
      responses:
        '200':
          description: Successfully deleted monitor
          content:
            application/json:
              schema:
                type: object
                properties:
                  monitor:
                    type: object
                    properties:
                      id:
                        type: string
                      uid:
                        type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /monitors/{monitorId}/run:
    post:
      tags:
        - Monitors
      summary: Postman Run a monitor
      operationId: runMonitor
      description: >-
        Manually triggers a monitor run. The response includes the run results
        with test pass/fail status, response times, and any errors.
      parameters:
        - $ref: '#/components/parameters/MonitorIdParam'
      responses:
        '200':
          description: Successful monitor run with results
          content:
            application/json:
              schema:
                type: object
                properties:
                  run:
                    $ref: '#/components/schemas/MonitorRun'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      name: x-api-key
      in: header
      description: Postman API key for authentication.
  parameters:
    MonitorIdParam:
      name: monitorId
      in: path
      required: true
      description: The monitor's unique ID or UID.
      schema:
        type: string
  schemas:
    MonitorListItem:
      type: object
      description: Abbreviated monitor information returned in list responses.
      properties:
        id:
          type: string
          description: The monitor's unique ID
        name:
          type: string
          description: The monitor name
        uid:
          type: string
          description: The monitor's UID
        owner:
          type: string
          description: The owner ID
    Monitor:
      type: object
      description: Full monitor details including schedule and run history.
      properties:
        id:
          type: string
          description: The monitor's unique ID
        name:
          type: string
          description: The monitor name
        uid:
          type: string
          description: The monitor's UID
        owner:
          type: string
          description: The owner ID
        collectionUid:
          type: string
          description: The UID of the collection being monitored
        environmentUid:
          type: string
          description: The UID of the environment used during runs
        distribution:
          type: array
          description: The regions from which the monitor runs
          items:
            type: string
        schedule:
          type: object
          description: The monitor's run schedule
          properties:
            cron:
              type: string
              description: The cron expression defining the schedule
              example: "0 0 * * *"
            timezone:
              type: string
              description: The timezone for the schedule
              example: America/New_York
            nextRun:
              type: string
              format: date-time
              description: The next scheduled run time
        lastRun:
          type: object
          description: Details about the last monitor run
          properties:
            startedAt:
              type: string
              format: date-time
            finishedAt:
              type: string
              format: date-time
            status:
              type: string
              enum: [success, failure, error, abort]
            stats:
              type: object
              properties:
                assertions:
                  type: object
                  properties:
                    total:
                      type: integer
                    failed:
                      type: integer
                requests:
                  type: object
                  properties:
                    total:
                      type: integer
        notifications:
          type: object
          properties:
            onError:
              type: array
              items:
                type: object
                properties:
                  email:
                    type: string
            onFailure:
              type: array
              items:
                type: object
                properties:
                  email:
                    type: string
        options:
          type: object
          properties:
            strictSSL:
              type: boolean
            followRedirects:
              type: boolean
            requestTimeout:
              type: integer
              description: Timeout in milliseconds
            requestDelay:
              type: integer
              description: Delay between requests in milliseconds
    MonitorInput:
      type: object
      description: Input format for creating or updating a monitor.
      required:
        - name
        - collection
        - schedule
      properties:
        name:
          type: string
          description: The monitor name
        collection:
          type: string
          description: The collection UID to monitor
        environment:
          type: string
          description: The environment UID to use
        schedule:
          type: object
          required:
            - cron
          properties:
            cron:
              type: string
              description: Cron expression for the schedule
            timezone:
              type: string
              description: Timezone for the schedule
    MonitorRun:
      type: object
      description: Results of a monitor run.
      properties:
        info:
          type: object
          properties:
            jobId:
              type: string
            monitorId:
              type: string
            name:
              type: string
            collectionUid:
              type: string
            environmentUid:
              type: string
            status:
              type: string
              enum: [success, failure, error, abort]
            startedAt:
              type: string
              format: date-time
            finishedAt:
              type: string
              format: date-time
        stats:
          type: object
          properties:
            assertions:
              type: object
              properties:
                total:
                  type: integer
                failed:
                  type: integer
            requests:
              type: object
              properties:
                total:
                  type: integer
        executions:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              item:
                type: object
                properties:
                  name:
                    type: string
              request:
                type: object
                properties:
                  url:
                    type: string
                  method:
                    type: string
                  timestamp:
                    type: string
                    format: date-time
              response:
                type: object
                properties:
                  statusCode:
                    type: integer
                  responseTime:
                    type: integer
                    description: Response time in milliseconds
                  responseSize:
                    type: integer
                    description: Response size in bytes
              assertions:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    error:
                      type: string
        failures:
          type: array
          items:
            type: object
  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
    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
    InternalServerError:
      description: An unexpected error occurred on the server
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string