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: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:
Signature verification
If you set a signing secret on the alert channel, Larm includes anx-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. A401 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.