Better Uptime · Schema
Better Stack Monitor
A monitor resource in the Better Stack Uptime API following JSON:API conventions.
Uptime MonitoringIncident ManagementStatus PagesOn-Call SchedulingObservabilityDevOps
Properties
| Name | Type | Description |
|---|---|---|
| data | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/betteruptime/main/json-schema/betteruptime-monitor-schema.json",
"title": "Better Stack Monitor",
"description": "A monitor resource in the Better Stack Uptime API following JSON:API conventions.",
"type": "object",
"properties": {
"data": {
"type": "object",
"required": ["id", "type", "attributes"],
"properties": {
"id": {
"type": "string",
"description": "Monitor identifier"
},
"type": {
"type": "string",
"const": "monitor"
},
"attributes": {
"type": "object",
"required": ["url"],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Website or host to monitor"
},
"pronounceable_name": {
"type": "string",
"description": "Human-readable name used in voice alerts"
},
"monitor_type": {
"type": "string",
"enum": ["status", "keyword", "ping", "tcp", "udp", "smtp", "pop", "imap", "dns", "playwright"],
"description": "The type of check to perform"
},
"monitor_group_id": {
"type": ["string", "null"],
"description": "Associated monitor group ID"
},
"status": {
"type": "string",
"enum": ["up", "down", "validating", "paused", "pending", "maintenance"],
"description": "Current monitor status",
"readOnly": true
},
"last_checked_at": {
"type": ["string", "null"],
"format": "date-time",
"readOnly": true
},
"check_frequency": {
"type": "integer",
"description": "Check interval in seconds",
"minimum": 30
},
"request_timeout": {
"type": "integer",
"description": "Timeout in milliseconds (ports) or seconds (HTTP)"
},
"recovery_period": {
"type": "integer",
"description": "Seconds before auto-resolving an incident"
},
"confirmation_period": {
"type": "integer",
"description": "Delay in seconds before creating an incident"
},
"call": {
"type": "boolean",
"description": "Enable phone call alerts"
},
"sms": {
"type": "boolean",
"description": "Enable SMS alerts"
},
"email": {
"type": "boolean",
"description": "Enable email alerts"
},
"push": {
"type": "boolean",
"description": "Enable push notification alerts"
},
"critical_alert": {
"type": "boolean",
"description": "Enable critical iOS alerts bypassing mute"
},
"team_wait": {
"type": "integer",
"description": "Escalation delay in seconds"
},
"policy_id": {
"type": ["string", "null"]
},
"expiration_policy_id": {
"type": ["string", "null"]
},
"verify_ssl": {
"type": "boolean"
},
"ssl_expiration": {
"type": ["integer", "null"],
"description": "Alert days before SSL cert expiry"
},
"domain_expiration": {
"type": ["integer", "null"],
"description": "Alert days before domain expiry"
},
"regions": {
"type": "array",
"items": { "type": "string" },
"description": "Geographic regions to run checks from"
},
"maintenance_from": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"maintenance_to": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"maintenance_timezone": {
"type": "string"
},
"maintenance_days": {
"type": "array",
"items": { "type": "string" }
},
"proxy_host": {
"type": ["string", "null"]
},
"proxy_port": {
"type": ["integer", "null"]
},
"request_headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"value": { "type": "string" }
}
}
},
"request_body": {
"type": ["string", "null"]
},
"expected_status_codes": {
"type": "array",
"items": { "type": "integer" }
},
"required_keyword": {
"type": ["string", "null"]
},
"port": {
"type": ["integer", "null"]
},
"playwright_script": {
"type": ["string", "null"]
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"paused_at": {
"type": ["string", "null"],
"format": "date-time",
"readOnly": true
}
}
}
}
}
}
}