Skip to main content
The webhook alert channel POSTs a JSON payload to any HTTPS URL when a monitor changes state. This page covers the payload format, available template variables, and how to verify webhook signatures. For setup instructions, see Alert channels — Webhook.
This page documents the webhook alert channel — an alerting integration that sends notifications when monitors go down or recover. Larm also has webhook subscriptions, a separate API feature that delivers events (monitor created, updated, deleted, state changed) to your endpoints. Both flows use the same x-larm-signature-256 header format. See the webhook subscriptions API reference for that surface.

Events

Default payload

Without a custom template, Larm sends:
Which produces something like:
This is a single text field. If you need structured data (e.g. for automation platforms), use a custom payload template.

Template variables

Variables use {{variable}} syntax. Unknown variables are replaced with an empty string.
last_error and downtime_duration include a leading space so they read naturally in the default template. When using a custom template, you may want to trim them.

Custom payload templates

Set a custom payload template in the alert channel config to control the JSON structure. The template must be valid JSON with {{variable}} placeholders. Recommended template for automation platforms:
Event-specific variables are empty strings when not applicable.

Signature verification

If you set a signing secret on the alert channel, Larm includes an x-larm-signature-256 header with each request. The value is sha256= followed by the hex-encoded HMAC-SHA256 of the raw JSON body using your signing secret as the key.

Node.js

Python

curl

To compute the expected signature for testing:

Headers

Every webhook request includes: Custom headers set in the alert channel config are included as-is.

Retries

Delivery is attempted up to 3 times with exponential backoff. A 401 or 403 response is treated as a permanent failure — the delivery is not retried and the alert channel is automatically disabled. You’ll receive an email notification and can re-enable the channel from the dashboard after fixing the issue.