Skip to main content
The Monitors API gives you complete lifecycle control over every monitor in your account. Use it to automate monitor provisioning in CI/CD pipelines, sync monitor configuration from infrastructure-as-code, tail live check results, or force immediate health checks during deployments. All endpoints require a valid Bearer token. Endpoints that create, update, or delete resources additionally enforce the write scope and return 403 if it is absent.

List all monitors

Retrieve every monitor belonging to your account, ordered by creation date descending. GET /api/cli/monitors

Request headers

curl example

Response


Create a monitor

Create a new HTTP monitor. Requires the write scope. POST /api/cli/monitors

Request headers

Request body

string
required
Display name for the monitor. Cannot be blank.
string
required
The full URL to monitor, including the scheme (e.g. https://api.example.com/health). Cannot be blank.
string
default:"HTTP"
Monitor type. Currently only HTTP is supported.
integer
default:"60"
How often to run the check, in seconds.
integer
default:"10"
Maximum time to wait for a response, in seconds. A check that exceeds this limit is recorded as TIMEOUT.
string
default:"GET"
HTTP method to use: GET, POST, PUT, PATCH, or HEAD.
object
Custom request headers sent with each check. Provide as a key-value object, e.g. {"X-Api-Version": "2"}. Stored as JSON.
string
Request body to send with POST, PUT, or PATCH checks.
object
Assertion rules that must pass for a check to be considered UP. Stored as JSON. Example: {"statusCode": 200, "bodyContains": "ok"}.
integer
default:"1"
Number of consecutive failures required before an alert is triggered.
array
List of region codes to run checks from, e.g. ["us-east-1", "eu-west-1"]. Leave empty to use the default region.
string
URL of the runbook or incident-response guide for this monitor. Included in alert notifications and webhook payloads.

curl example

Response 201 Created

A newly created monitor has status: "PENDING" until the first check completes. Use the trigger endpoint to run the first check immediately.

Get a monitor

Retrieve full details of a single monitor, including its 10 most recent check events. GET /api/cli/monitors/:id

curl example

Response

Returns 404 if the monitor ID does not exist or belongs to a different account.

Update a monitor

Update one or more fields on an existing monitor. Only fields you include in the request body are changed — omitted fields remain unchanged. Requires the write scope. PUT /api/cli/monitors/:id

Request headers

Request body

All fields are optional. Provide only the fields you want to update.
string
New display name.
string
New URL to monitor.
integer
New check interval in seconds.
integer
New request timeout in seconds.
string
New HTTP method.
integer
New consecutive-failure threshold for alerts.
string
New runbook URL.
object
Replacement custom headers object. Overwrites any previously stored headers.
object
Replacement assertion rules. Overwrites any previously stored expectation.
array
Replacement list of region codes.

curl example

Response


Delete a monitor

Permanently delete a monitor and all its associated events. This action cannot be undone. Requires the write scope. DELETE /api/cli/monitors/:id

curl example

Response

Deleting a monitor permanently removes all historical check events and incidents associated with it. Export any data you need before deleting.

Trigger an immediate check

Force an HTTP health check on a monitor right now, bypassing the normal schedule. The check runs synchronously and returns the result in the response. The result is also persisted as a regular monitor event. Any valid Bearer token can trigger this endpoint; providing a URL override additionally requires the write scope. POST /api/cli/monitors/:id/trigger

Request headers

Optional request body

string
Override the monitor’s configured URL for this single check. Useful for testing a new endpoint before updating the monitor. Requires the write scope.

curl example

Response

The trigger endpoint only supports HTTP monitors. Attempting to trigger a monitor of another type returns 422 Unprocessable Entity.

List monitor events

Retrieve the check history for a monitor in chronological order. Supports incremental polling with the since parameter — ideal for building live log tails. GET /api/cli/monitors/:id/events

Query parameters

integer
default:"50"
Maximum number of events to return. The server caps this at 500.
string
ISO 8601 timestamp. When provided, only events recorded after this timestamp are returned. Use the timestamp of the last event you received to poll incrementally.

curl example

Response