Postman Monitors API
The Monitors API runs Postman Collections on a recurring schedule to validate API health, performance, and contract conformance. Surfaces metrics, test results, and notification webhooks for incident response.
The Monitors API runs Postman Collections on a recurring schedule to validate API health, performance, and contract conformance. Surfaces metrics, test results, and notification webhooks for incident response.
openapi: 3.1.0
info:
title: Postman APIs API Comments Monitors API
description: 'The Postman APIs API enables you to manage your API definitions in Postman''s
API Builder. You can create APIs, manage versions, add schemas (OpenAPI,
GraphQL, etc.), and link collections, environments, mock servers, monitors,
and documentation to your API definitions.
## 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: help@postman.com
license:
name: Postman Terms of Service
url: https://www.postman.com/legal/terms/
servers:
- url: https://api.getpostman.com
description: Postman Production API Server
security:
- apiKeyAuth: []
tags:
- name: Monitors
description: Operations for creating and managing Postman monitors.
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:
responses:
BadRequestError:
description: Bad request - invalid input
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
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
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
schemas:
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
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
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
parameters:
MonitorIdParam:
name: monitorId
in: path
required: true
description: The monitor's unique ID or UID.
schema:
type: string
securitySchemes:
apiKeyAuth:
type: apiKey
name: x-api-key
in: header
description: Postman API key for authentication.