Webhooks
Send signed JSON to any HTTPS endpoint you run, or to a tool that accepts an incoming JSON webhook and lets you map its fields. FlareWarden sends one fixed JSON format; there is no native PagerDuty or Opsgenie integration yet.
Using Slack, Discord, Google Chat or Microsoft Teams? You don't need a custom webhook — FlareWarden sends formatted messages natively. See the Slack guide, the Discord guide, the Google Chat guide or the Microsoft Teams guide.
Quick Setup
Get started with webhooks in 4 easy steps
Go to Settings → Webhooks
Find the webhooks section in your account settings
Add Webhook URL
Enter the HTTPS endpoint that will receive events
Select Events
Choose which events trigger the webhook
Test & Activate
Send a test ping to verify your endpoint works
Webhook Events
Choose which events trigger your webhook
Incident Events
incident.started
- Monitor went down
incident.recovered
- Monitor came back up
SSL Events
ssl.expiring -
Certificate expiring soon
ssl.expired -
Certificate has expired
ssl.changed -
Certificate was changed
ssl.issued -
A certificate for your domain from an issuer you don't expect appeared in Certificate Transparency logs
DNS Events
dns.failed - DNS
resolution failed
dns.recovered
- DNS resolution recovered
dns.changed
- Your site's DNS records, or a DNS record you
watch, changed their values
Domain Events Beta
domain.expiring
- Your site's domain registration expires in 30, 7
or 1 days
domain.expired
- Your site's domain registration has expired
Monitor Events
monitor.created
- Site added
monitor.deleted
- Site deleted
monitor.paused
- Site paused
monitor.resumed
- Site resumed
Maintenance Events
maintenance.started
- A maintenance window began
maintenance.completed
- A maintenance window ended
maintenance.cancelled
- A maintenance window was cancelled
Cron Events
cron.failed - A
cron job reported a failure or ran past its
maximum run time
cron.late - A
cron job missed its schedule
Anomaly Events
anomaly.detected
- A confirmed unusual slowdown
anomaly.resolved
- The slowdown returned to normal
Site, maintenance and cron events go to generic webhooks only; Slack, Discord, Google Chat and Microsoft Teams receive incident, SSL, DNS, domain and anomaly events.
Testing
test -
Test webhook delivery
Webhook Security
HMAC signing and custom headers for secure delivery
HMAC-SHA256 Signing
Every webhook request includes a signature header that you can use to verify the request came from FlareWarden.
X-FlareWarden-Signature: sha256=abc123...
Verifying Signatures
To verify a webhook signature:
- Get your webhook secret from the webhook settings
- Compute HMAC-SHA256 of the request body using your secret
- Compare with the signature in the header
Custom Headers
You can add custom HTTP headers to webhook requests for additional authentication (e.g., API keys, Bearer tokens).
Example Payload
JSON structure sent to your webhook endpoint
Here's an example payload for an
incident.started
event:
{
"event": "incident.started",
"timestamp": "2026-07-16T14:03:00Z",
"data": {
"incident": {
"id": "inc_01hfixture",
"incident_type": "uptime",
"started_at": "2026-07-16T14:03:00Z",
"error_message": "connection refused",
"severity": "critical",
"affects_parent_status": true
},
"monitor": {
"id": "mon_01hfixture",
"name": "Example API",
"url": "https://api.example.com/health"
}
}
}Every event uses the same envelope: event,
timestamp and an event-specific
data object. The webhook settings page
serves a live example for each event under
/accounts/{id}/webhooks/payload-example/{event}.
Delivery & Retries
Automatic retries with exponential backoff
Automatic Retries
A delivery that times out, can't connect, or gets a 429 or 5xx is retried after 1, 5 and 15 minutes. A 400, 401, 403, 404 or 410 is final: sending the same request again gets the same answer. After 10 of those in a row on a webhook that has never delivered (25 on any webhook), the webhook is turned off and the account owner is emailed why.
Delivery History
View delivery history including request/response details, status codes, and error messages in the webhook settings.
Health Status
Each webhook shows a health indicator: healthy, degraded, failing, or unknown based on recent delivery success.
Manual Retry
You can manually retry failed deliveries from the webhook history view.
Monitor Filtering
Control which monitors trigger webhooks
You can configure webhooks to trigger for all monitors or only specific monitors:
- All Monitors: Receive events for every monitor in your account
- Specific Monitors: Only receive events for selected monitors
This is useful when you want different teams to receive alerts for different monitors.
Plan Limits
Webhook quotas and history retention by plan
| Plan | Webhooks | History Retention |
|---|---|---|
| Free | 2 | 7 days |
| Starter | 10 | 30 days |
| Business | 25 | 30 days |
| Growth | 50 | 30 days |
| Agency | Unlimited | 30 days |