Create a monitor
Starts checking a website, port, DNS record or host.
Body
The 6 fields most calls use come first; the rest are grouped below.
Target for http and ping monitors (ping takes a host)
Default http
Display name
Down to 10, default 60; POST/PUT/PATCH/DELETE monitors need 60 or more
eu (Germany) · us · asia (Singapore) · au (Australia), default eu; each region runs and counts its own checks
Alert channels to attach
What counts as up5 fields
status (default: the final response must be 2xx) · keyword (down when the text is missing) · keyword_absence (down when the text is found) · expected_status_code
The text to look for; required for keyword and keyword_absence, which read the body with GET
Ignore letter case (default true)
100–599; only used with alert_type expected_status_code, on its own it does nothing
Fail on broken certificate chains (default true)
Request15 fields
GET · HEAD · POST · PUT · PATCH · DELETE (default HEAD)
Custom request headers, at most 20 and 8 KB in total. On update they are kept unless request_headers_action is replace or clear.
Nested fields 2 fields
| Field | Type | Description |
|---|---|---|
name optional | string | |
value optional | string |
On update: keep · replace · clear
Sent with methods that carry one; up to 8 KB
Per-check budget, default 30, at most 60; a timeout is a failed check
Follow 3xx (default true); with redirects off a 3xx is down unless alert_type is expected_status_code
Persist cookies across a redirect chain
HTTP basic auth; password stored encrypted, never returned
Basic-auth password. Write-only: responses carry has_auth_password instead.
On update: keep (default) · replace · clear
Check through your proxy; the host is a plain host name or IP address
Check through your proxy; the host is a plain host name or IP address
"4" or "6" to force IPv4 or IPv6, empty for either
Alerting11 fields
immediate (default): alert once three checks confirm the outage · quiet: alert only after 3 minutes of downtime in total
Batch import only (POST /monitors/batch): names resolved to ids
Attach an alert plan
Batch import only (POST /monitors/batch): names resolved to ids
Without escalation_policy_id, attach the default plan when one of the channels is your own email
Extra seconds a failure has to last, on top of the three confirming checks, before the monitor goes down; 0 adds none. Only the way down is delayed
Seconds the monitor has to stay up after it recovers before its incident closes and the all-clear goes out; 0 closes it with the next good check
Default true; the all-clear for an outage is sent in both notification modes
Slowdown warnings for this monitor; off by default
Slow from this response time; omit to let up4 learn one from the monitor’s own history
Take an incident screenshot when an incident opens; omit to use the company default
Port and DNS checks6 fields
Target for tcp monitors; port 1–65535
Target for tcp monitors; port 1–65535
Name to look up (dns monitors)
Default A
Resolver to ask, a plain host name or IP address
The answer the record must contain
Expiry warnings2 fields
Warn this many days before certificate / domain expiry
Warn this many days before certificate / domain expiry
Maintenance window4 fields
Recurring maintenance window, HH:MM
Recurring maintenance window, HH:MM
Default every day
IANA zone for the window (default UTC)
Organizing9 fields
Create inside a client (agency mode)
Batch import only (POST /monitors/batch): names resolved to ids
Put the monitor into a group
Batch import only (POST /monitors/batch): names resolved to ids
Shown on status pages and client share links instead of name; up to 120 characters
Spoken name
On update, omitted or null leaves the stored metadata unchanged, {} removes all keys and any other object replaces them.
UP, DOWN or PAUSED (any case); empty creates the monitor running.
Import key: a repeat create with the same key returns the existing monitor; a key that belongs to another owner or client is refused
Returns
A successful request returns 201 with application/json.
Response fields 1 top-level fields
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | Monitor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Monitor · 70 fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Errors
Only the errors this operation can return. Every error uses the same envelope.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request is malformed or fails validation. |
| 403 | check_capacity_exceeded | The change would push the subscription's projected monthly check load over its included budget. When: Creating a monitor, directly or through a client template, or changing one, when the projected cost including the change exceeds the budget; running monitors are not affected, and details carries projected_cents, included_cents and change_cents. Fix: Use a longer interval, fewer regions or fewer monitors, or raise the included budget. check_capacity_exceeded (subscriptions only): the change would raise the projected 30-day list usage of all active monitors above the included check budget. error.details carries projected_cents, included_cents and change_cents; a longer interval, fewer regions or fewer monitors fit. Running monitors and changes that lower the load are never refused. |
| 403 | feature_disabled | The monitor uses a feature that is currently switched off. When: Saving a monitor whose configuration needs a feature the platform has disabled; the saved configuration stays as it was. Fix: Remove that feature from the monitor, or try again once the feature is back. |
| 404 | not_found | The requested resource does not exist or is outside the caller's scope. |
| 402 | payment_required | The account does not have the credit or plan required for this action. |
| 403 | permission_denied | The credentials do not permit this action. |
Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.