Create a monitor

⚠️ Alpha — the versioned request is under active development and
may change without notice. The default request is stable.

Creates a monitor, and any inline actions it notifies through, in the
account's default workspace.

The Observe-Api-Version header picks one of two request shapes.

Default (no header). The long-standing body, the default shape of
GET /v1/monitors/{id} with its definition and actionRules, which
does not change. The 201 returns that shape too. The schema on this
page describes the versioned shape, not this one.

Versioned. Observe-Api-Version: 2026-10-06 or later takes the
Monitor-CreateRequest below, which is written the way the versioned
GET /v1/monitors/{id} reads, and returns the created
Monitor-Resource. It is rolling out account by account; until it
reaches yours, the header returns 403. An earlier or unparseable date
takes the default shape.

Composite monitors are created with POST /v1/composite-monitors.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

A monitor to create, written the way Monitor-Resource reads. Fields
the server derives (id, the audit fields, health and the other
run state) are not accepted: a field not listed here, at any depth, is a
400.

ruleKind decides which fields apply. One that does not apply is
rejected rather than ignored:

ruleKindRequiresRejects
CountvalueColumn, aggregation, baseline
ThresholdvalueColumn, aggregationbaseline
AnomalyvalueColumn, baselineaggregation, a non-empty scheduling
PromotevalueColumn, aggregation, baseline

Composite is not accepted here: create one with
POST /v1/composite-monitors.

string
required
length ≥ 1

Name of the monitor, unique within its workspace. A name already in use is a 409.

string

Monitor description. Omit for none.

boolean

Create the monitor turned off. Defaults to false.

string
enum
required

The evaluation rule kind of the monitor. Composite is the one kind that inspects no query: it alerts on a boolean condition over whether other monitors are currently alerting, correlated per group.

Allowed:
string
enum

Whether AI auto-investigation runs when this monitor alerts. Defaults to None.

Allowed:
objectTags
object

Tags to apply to the monitor, as a map of tag key to a list of values. Omit for none. A malformed map, or one missing a tag the workspace requires on monitors, is a 400.

double
required

Window of data each evaluation considers, in seconds.

double
≥ 0

How long evaluation waits for late data before judging a window, in seconds. Omit for the server default.

int64
≥ 1

Alerts per hour after which the monitor disables itself. Omit for the server default.

scheduling
object

A schedule for the monitor to run on: at most one of transform and cron. Omit scheduling, or send it empty, to let the server choose, which Monitor-Scheduling reports as automatic. An interval is always chosen by the server, so it cannot be requested. Anomaly monitors cannot set a schedule.

inputQuery
object
required

The OPAL query the rules are evaluated over, as a pipeline of stages.

string
length ≥ 1

Column of the query output the monitor watches. Required for Threshold and Anomaly.

string
enum

How valueColumn is reduced over each window before the rules compare it. Required for Threshold.

Allowed:
baseline
object

The baseline an anomaly monitor compares valueColumn against, as Monitor-Baseline reports it. Exactly one of basicAlgorithm and seasonalAlgorithm. Required for Anomaly.

rules
array of objects
required
length ≥ 1

When the monitor alerts, one rule per severity, plus at most one NoData rule for a Threshold or Anomaly monitor. See Monitor-RuleInput for which fields each kind uses.

rules*
groupBy
array of objects

Dimensions the rules are evaluated per; each distinct combination of values alerts independently. Omit for a single global alert.

groupBy
serviceBindings
array of objects
length ≤ 1

The service the monitor's alerts are attributed to. Omit for none.

serviceBindings
actions
array of objects

The actions this monitor notifies through, and when each fires. Omit to notify nothing.

actions
customVariables
object

Free-form values for substitution into action templates. Omit for none.

Headers
string
^\d{4}-\d{2}-\d{2}$

Picks the request and response shape by release date (YYYY-MM-DD). 2026-10-06 or later takes Monitor-CreateRequest and returns Monitor-Resource, if enabled for your account (otherwise 403). No header, or an earlier or unparseable date, takes the default shape described above.

Responses

Language
Credentials
Bearer
Authorization: Bearer <customerid> <apitoken>
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json