Skip to main content

WebhookPayload

Webhook payload sent to channels when alerts fire or resolve.
event
'alert.fired' | 'alert.resolved'
required
The type of alert event
alert
object
required
Alert information object
timestamp
string
required
ISO 8601 timestamp when the event occurred
snapshot
AlertSnapshot
required
Snapshot of monitor state when the alert fired
checkResult
object
required
The check result that triggered this event
region
string
Region where the check was performed (for multi-region setups)
firingRegions
string[]
Array of regions where the alert is currently firing
healthyRegions
string[]
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"]
}

Build docs developers (and LLMs) love