Skip to content

Schemas

Field Type Required Constraints
id string (uuid) yes
name string yes
type string yes
interval_seconds integer or null yes
timeout_ms integer or null yes
locations array of string yes
tags array of string yes
status "active", "paused" yes
service_id string (uuid) or null yes
created_at string (date-time) yes
updated_at string (date-time) yes

No other field is ever present.

Field Type Required Constraints
limit integer yes
offset integer yes
total integer yes

No other field is ever present.

Field Type Required Constraints
data array of V1Monitor yes
page V1Page yes

No other field is ever present.

Field Type Required Constraints
org_id string or null yes
role string yes

No other field is ever present.

Field Type Required Constraints
location string yes
status "up", "down", "no_data", "stale", "uncollectable" yes
errorClass string yes
nodeTs string (date-time) or null yes
ingestTs string (date-time) or null yes

No other field is ever present.

Field Type Required Constraints
statuses array of V1MonitorLocation yes

No other field is ever present.

Field Type Required Constraints
bucket string (date-time) yes
monitorId string (uuid) yes
location string yes
upCount integer yes
downCount integer yes
totalCount integer yes
sumLatencyMs number or null yes
minLatencyMs number or null yes
maxLatencyMs number or null yes
uptimePct number yes
avgLatencyMs number or null yes

No other field is ever present.

Field Type Required Constraints
rollups array of V1RollupBucket yes

No other field is ever present.

Field Type Required Constraints
error "api key unauthenticated" yes

No other field is ever present.

Field Type Required Constraints
error "quota_exceeded" yes
metric string yes
upgrade true yes

No other field is ever present.

Field Type Required Constraints
error "forbidden" yes

No other field is ever present.

Field Type Required Constraints
error "feature_gated" yes
feature string yes
upgrade true yes

No other field is ever present.

Field Type Required Constraints
error string yes

No other field is ever present.

Field Type Required Constraints
error "rate_limited" yes
retryAfter integer yes

No other field is ever present.

type picks the variant, and each variant carries that type’s own config and assertions. Six of the seven accept no assertions at all: [] is the only value their assertions takes.

These rules are enforced on every create and CANNOT be expressed in JSON Schema, so they are not in the shapes below:

  • timeout_ms must be strictly less than interval_seconds * 1000.
  • config.url (http) must be an absolute http(s) URL, and every multistep config.steps[].request.url must start with http:// or https://.
  • config.grace_seconds (heartbeat) must be less than or equal to config.period_seconds.
  • an http status_code assertion takes a number array with op in, and a single number with eq, ne, lt or gt.
  • a target resolving to a private, loopback, link-local or cloud-metadata address is refused unless every entry in locations is one of the org’s own agents.
  • service_id must name a live service in the calling key’s org.

One of V1MonitorCreateHttp or V1MonitorCreateTcp or V1MonitorCreateTls or V1MonitorCreateDns or V1MonitorCreatePing or V1MonitorCreateHeartbeat or V1MonitorCreateMultistep.

Which one is decided by type.

Field Type Required Constraints
name string yes
type "http" yes
interval_seconds 30, 60, 300 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigHttp yes
assertions array of object or object or object or object no max items 50
Field Type Required Constraints
name string yes
type "tcp" yes
interval_seconds 30, 60, 300 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigTcp yes
assertions empty array ([] is the only value) no default []
Field Type Required Constraints
name string yes
type "tls" yes
interval_seconds 30, 60, 300, 3600, 86400 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigTls yes
assertions empty array ([] is the only value) no default []
Field Type Required Constraints
name string yes
type "dns" yes
interval_seconds 30, 60, 300 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigDns yes
assertions empty array ([] is the only value) no default []
Field Type Required Constraints
name string yes
type "ping" yes
interval_seconds 30, 60, 300 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigPing yes
assertions empty array ([] is the only value) no default []
Field Type Required Constraints
name string yes
type "heartbeat" yes
interval_seconds 30, 60, 300 or null no
timeout_ms integer or null no
locations array of string no default [], max items 0
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigHeartbeat yes
assertions empty array ([] is the only value) no default []
Field Type Required Constraints
name string yes
type "multistep" yes
interval_seconds 60, 300 yes
timeout_ms integer yes min 1000, max 60000
locations array of string yes default [], min items 1, max items 50
tags array of string no default [], max items 50
service_id string (uuid) no
config V1MonitorConfigMultistep yes
assertions empty array ([] is the only value) no default []

Every field is optional, but what is validated is the MERGED record — this body applied over the monitor’s current row — against the same constraints as a create of the merged type. A body that is valid on its own can therefore still be rejected: {"type": "tcp"} on an http monitor keeps the http config, which is not a valid tcp config, so the write is refused with a 400 and nothing is persisted. Which tier set interval_seconds must fall in, and which config shape applies, are both decided by the merged type. An absent field is left unchanged, and so is an explicit null — except service_id, where null ungroups the monitor from its service.

Field Type Required Constraints
name string no
type "http", "tcp", "tls", "dns", "ping", "heartbeat", "multistep" no
interval_seconds 30, 60, 300, 3600, 86400 or null no
timeout_ms integer or null no
locations array of string no max items 50
tags array of string no max items 50
service_id string (uuid) or null no
config V1MonitorConfigHttp or V1MonitorConfigTcp or V1MonitorConfigTls or V1MonitorConfigDns or V1MonitorConfigPing or V1MonitorConfigHeartbeat or V1MonitorConfigMultistep no
assertions array of object or object or object or object or empty array ([] is the only value) no
Field Type Required Constraints
method "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD" yes
url string yes
headers object no
body string no
followRedirects boolean no default true

No other field is ever present.

Field Type Required Constraints
host string yes
port integer yes min 1, max 65535

No other field is ever present.

Field Type Required Constraints
host string yes
port integer no default 443, min 1, max 65535
warn_days integer yes min 1, max 365

No other field is ever present.

Field Type Required Constraints
hostname string yes
record_type "A", "AAAA", "CNAME", "MX", "TXT", "NS" yes
expected string no
nameserver string no

No other field is ever present.

Field Type Required Constraints
host string yes
count integer no default 3, min 1, max 10
loss_threshold_pct integer no default 100, min 0, max 100

No other field is ever present.

Field Type Required Constraints
period_seconds integer yes min 30, max 604800
grace_seconds integer yes min 0

No other field is ever present.

Field Type Required Constraints
steps array of object yes min items 1, max items 10
step_timeout_ms integer no min 1000, max 60000
total_timeout_ms integer no min 1000, max 600000

No other field is ever present.