Webhooks Integration

Website Monitoring Webhooks

Send Downtime Alerts to Your Own Systems

Wire Site Detection into anything with a website monitoring webhook. When downtime is detected, Site Detection sends an HTTP POST with a JSON payload to your endpoint, and sends another on recovery. Use the uptime webhook to trigger runbooks, open tickets, update a status page, or log incidents in your own tooling.

POST on downtime + recovery • JSON payload • Per-channel On/Off + test

Set Up a Webhook Channel

Webhooks are configured like any other channel: add a webhook in Site Detection, point it at your endpoint, test it, and assign it to monitors.

1

Create an endpoint

Stand up an HTTPS endpoint in your own system that can accept an HTTP POST with a JSON body.

2

Copy the endpoint URL

Copy the full URL of that endpoint — this is where Site Detection will POST downtime and recovery events.

3

Open Alerts in Site Detection

In Site Detection, go to Alerts and add a new channel of type Webhook.

4

Paste the endpoint URL

Paste your endpoint URL into the webhook channel and save it. This tells Site Detection where to POST the payload.

5

Send a test

Use the test button to send a sample POST to your endpoint and confirm it is received and parsed correctly.

6

Choose which monitors it covers

Assign the webhook to the monitors that should use it. Each monitor can use several channels at once.

The webhook channel has its own On/Off switch and a test button. Turn it on or off whenever you like, and use the test button any time to confirm your endpoint is receiving events without waiting for a real outage.

Example Webhook Payload

When downtime is confirmed, Site Detection POSTs a JSON body like this to your endpoint. A matching recovery event follows when the site is back.

{
  "event": "downtime",
  "site": "Marketing site",
  "url": "https://example.com",
  "status": "down",
  "monitor_id": "mon_8fd23a",
  "incident_id": "inc_5c19b7",
  "checked_at": "2026-08-16T14:03:21Z"
}

On recovery, Site Detection POSTs the same shape with "event": "recovery", "status": "up", and the same incident_id, so you can pair the two events.

site / url

The monitor name and the URL being checked, so you know which site the event is about.

status

down when downtime is confirmed, up when the site recovers.

checked_at / incident_id

The time the check ran, and an id that ties the downtime and recovery events of one incident together.

Build Deeper with the REST API

Webhooks push events to you; the REST API lets you pull data and manage monitoring programmatically.

Webhooks are the fastest way to react to a specific outage, while the uptime monitoring API lets you read monitors and incident history and build richer integrations. Endpoints, authentication, and payloads are documented in the API docs. For the full list of alert destinations, see the integrations hub.

Send Downtime Events to Your Systems

Start monitoring your website and POST downtime and recovery events straight to your own endpoint.

Start Monitoring Your Website

Frequently Asked Questions

How do webhooks work in Site Detection?

When you add a webhook channel and downtime is detected, Site Detection sends an HTTP POST request with a JSON payload to the endpoint URL you provide. It sends one POST when downtime is confirmed and another when the site recovers, so your systems learn both the start and the end of an incident.

What is in the webhook payload?

The JSON payload identifies the affected site and URL, the status (down or up), the time the check ran, and an incident id that ties the downtime and recovery events together. Your endpoint can parse these fields to route, log, or act on the event.

Do I get a webhook when the site recovers?

Yes. Site Detection POSTs a recovery event with status "up" and the same incident id when the site is reachable again, so you can close out an incident automatically.

Can I test the webhook and turn it off?

Yes. The webhook channel has its own On/Off switch and a test button in Site Detection. Use the test button to send a sample POST to your endpoint and confirm it is received, and toggle the channel off at any time without deleting its settings.