Postman Monitors API
The Monitors API enables you to programmatically run collections on a schedule, manage webhooks, and access metrics for API monitoring instances.
The Monitors API enables you to programmatically run collections on a schedule, manage webhooks, and access metrics for API monitoring instances.
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