⚠️ Alpha — the versioned request is under active development and
may change without notice. The default request is stable.
Updates a monitor with a JSON merge patch
(RFC 7396) over the
writable fields of Monitor-Resource, and returns the updated monitor.
The Observe-Api-Version header picks one of two behaviors.
Default (no header). The long-standing update, which takes the
legacy body and does not change.
Versioned. Observe-Api-Version: 2026-10-06 or later takes a
Monitor-UpdateRequest and answers 200 with the 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
behavior.
The patch is applied to the monitor as Monitor-CreateRequest would
write it, and the result must be a valid Monitor-CreateRequest:
- An omitted field keeps its value.
- An object merges member by member, so
{"scheduling": {"cron": {"timezone": "UTC"}}}changes the timezone
and keeps the cron expression. - An array replaces the whole list, so
{"rules": [...]}replaces the
rules and leavesinputQueryalone. nullresets a field to its default, and cannot be sent for a field
Monitor-CreateRequestrequires.
Changing ruleKind keeps the other fields, so null the ones the new
kind rejects in the same patch. Switching between the branches of
scheduling or between baseline algorithms works the same way:
{"scheduling": {"cron": null, "transform": {...}}}.
actions, like every list, replaces the whole list, so one patch can
change any number of its entries. An entry that names an action the
monitor already has keeps that action and its id: action.id keeps it
unchanged, and inlineAction.id edits the monitor's own inline action
in place, keeping its pending reminders and the stored value of a
redacted header sent back masked. An inlineAction without id
creates a new action. A shared action is edited through its own
endpoint, not here.
A monitor that still runs on a retired interval schedule keeps it until
a patch sets scheduling; an interval cannot be set. A monitor whose
stage reads a query parameter keeps that input until a patch sets
inputQuery, which is a 409.
Any update makes the caller the identity AI investigations of the
monitor run as, as an update in the web app does.
A monitor managed by an app is a 403. A name already in use is a
409, as is a monitor changed by someone else while the patch was
applied (read it again and retry) and a monitor this API cannot write
back as it stands. Composite monitors are updated with
PATCH /v1/composite-monitors/{id}.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||