Downtime alert webhooks
A JSON POST to your endpoint the moment a monitor changes state.
A POST to your endpoint when state changes
A webhook channel is a URL you own. When a monitor changes state, UpCheck POSTs a structured JSON envelope to it: the event, a human-readable text line, and the fields worth acting on, like the HTTP status that failed or how long the downtime lasted on recovery.
It fires on the transition, once when a check breaks and once when it recovers, behind the same confirmation streak as every other alert. Your endpoint hears about the outage, not about every failed check inside it.
{
"event": "monitor.status_change",
"text": "cdn.example.com is down (HTTP 503)",
"detail": "HTTP 503",
"http_status": 503
}Wire it into whatever you already run
The payload is plain JSON over HTTPS, so the receiving end can be anything: a serverless function that opens a ticket, a script that flips a feature flag, your own ops bot. Slack and Discord don't need the generic envelope at all; add them as their own channel types and the message arrives formatted for the room.
Add a channel from the dashboard, send a test through it before you rely on it, and use its routing rule to decide which monitors it carries.
Free, on every plan
The webhook family, Slack, Discord, and the generic webhook, is free on every plan, alongside push to the apps. You don't need a paid tier to get downtime into your own tooling.