WebhookPayload
Webhook payload sent to channels when alerts fire or resolve.
event
'alert.fired' | 'alert.resolved'
required
The type of alert event
Alert information object
Unique identifier for the alert
Display name of the alert
ID of the monitor this alert belongs to
Display name of the monitor
Severity level: “critical”, “warning”, or “info”
ISO 8601 timestamp when the event occurred
Snapshot of monitor state when the alert fired
Number of consecutive failures
Number of consecutive successes
Last status of the monitor
Last response time in milliseconds
Last message from the monitor check
The check result that triggered this event
Unique identifier for the check result
Status of the check: “up”, “down”, “degraded”, or “pending”
Response time in milliseconds
Optional message from the check
ISO 8601 timestamp when the check was performed
Region where the check was performed (for multi-region setups)
Array of regions where the alert is currently firing
Array of regions where the monitor is healthy
Type Definition
export interface WebhookPayload {
event: "alert.fired" | "alert.resolved";
alert: {
id: string;
name: string;
monitorId: string;
monitorName: string;
severity: AlertSeverity;
};
timestamp: string;
snapshot: AlertSnapshot;
checkResult: {
id: string;
status: string;
responseTimeMs: number;
message: string | null;
checkedAt: string;
};
region?: string;
firingRegions?: string[];
healthyRegions?: string[];
}
Event Types
alert.fired
Sent when an alert condition is met and the alert starts firing.
alert.resolved
Sent when an alert condition is no longer met and the alert is resolved.
Example Payloads
Alert Fired
{
"event": "alert.fired",
"alert": {
"id": "high-latency",
"name": "High Latency Alert",
"monitorId": "api-health",
"monitorName": "API Health Check",
"severity": "warning"
},
"timestamp": "2026-03-04T12:34:56.789Z",
"snapshot": {
"consecutiveFailures": 3,
"consecutiveSuccesses": 0,
"lastStatus": "degraded",
"lastResponseTimeMs": 1250,
"lastMessage": "Response time exceeds threshold"
},
"checkResult": {
"id": "check_abc123",
"status": "degraded",
"responseTimeMs": 1250,
"message": "Response time exceeds threshold",
"checkedAt": "2026-03-04T12:34:56.789Z"
},
"region": "us-east-1",
"firingRegions": ["us-east-1", "eu-west-1"],
"healthyRegions": ["ap-southeast-1"]
}
Alert Resolved
{
"event": "alert.resolved",
"alert": {
"id": "high-latency",
"name": "High Latency Alert",
"monitorId": "api-health",
"monitorName": "API Health Check",
"severity": "warning"
},
"timestamp": "2026-03-04T12:45:30.123Z",
"snapshot": {
"consecutiveFailures": 0,
"consecutiveSuccesses": 2,
"lastStatus": "up",
"lastResponseTimeMs": 450,
"lastMessage": null
},
"checkResult": {
"id": "check_xyz789",
"status": "up",
"responseTimeMs": 450,
"message": null,
"checkedAt": "2026-03-04T12:45:30.123Z"
},
"region": "us-east-1",
"firingRegions": [],
"healthyRegions": ["us-east-1", "eu-west-1", "ap-southeast-1"]
}