Integration · Developers

Alerts as signed webhooks

Every alert as JSON to your own endpoint, signed with HMAC-SHA256 so you can prove it came from Uptimecheck.

14-day free trial · No credit card required

What you get

  • Signed requests

    Each POST carries x-uptimecheck-timestamp and x-uptimecheck-signature: an HMAC-SHA256 of the timestamp and the body, keyed with the channel’s signing secret.

  • Clear event names

    monitor.down, monitor.up, monitor.slow, certificate.expiring, dns.changed and more, so your code switches on one field.

  • One incident, both ends

    monitor.down and monitor.up carry the same incident ID, so you can open and close the matching record on your side.

  • Retries built in

    Anything but a 2xx answer within 10 seconds is retried after 30 seconds, 2, 10 and 30 minutes. A 410 Gone stops the retries.

How to connect Webhooks

  1. Open Alert channels in the sidebar and choose Add channel.

  2. Pick Webhook and enter the Endpoint URL.

  3. Choose Add channel and copy the signing secret that appears. It is shown only once.

  4. Choose Send test to send a test event to your endpoint.

Every field and a Python version of the check are in the API reference.

Included on every plan, from Start to Business.

What arrives

monitor.down
A confirmed outage
monitor.up
The recovery, with the downtime
monitor.slow
Responses above your limit
monitor.fast
Back under the limit
certificate.expiring
A TLS certificate expires soon or has expired
domain.expiring
A domain registration expires soon or has expired
dns.changed
DNS records changed, with before and after
server.rebooted
A server with the agent restarted
site.issues
New broken links or mixed content
site.performance_dropped
A page’s mobile speed score fell below your limit
domain.email_issues
New problems with a domain’s email setup
test
Sent by Send test

POST to your endpoint

x-uptimecheck-timestamp: 1792120324
x-uptimecheck-signature: sha256=5d2c…e81f

{
  "event": "monitor.down",
  "workspace": "Northwind",
  "monitor": {
    "id": "mon_9xk2m1q8w4",
    "name": "Checkout",
    "target": "https://northwind.shop/checkout",
    "url": "https://app.uptimecheck.com/w/northwind/monitors/mon_9xk2m1q8w4"
  },
  "incident": {
    "id": "inc_7b3t9r2m5c",
    "url": "https://app.uptimecheck.com/w/northwind/incidents/inc_7b3t9r2m5c"
  },
  "cause": "HTTP 502",
  "regions": ["eu-north"],
  "at": "2026-10-16T03:12:04.000Z",
  "downtimeSeconds": null,
  "explanation": null
}
A monitor.down event. monitor.up carries the same incident ID and the downtime in seconds.

Questions

How do I verify the signature?

Compute HMAC-SHA256 over the x-uptimecheck-timestamp value, a dot and the raw request body, keyed with the signing secret. Compare it in constant time with the hex value after sha256= in x-uptimecheck-signature, and reject old timestamps.

Which events are sent?

monitor.down, monitor.up, monitor.slow, monitor.fast, certificate.expiring, domain.expiring, dns.changed, server.rebooted, site.issues, site.performance_dropped, domain.email_issues and test.

What happens when my endpoint is down?

A request that doesn’t get a 2xx answer within 10 seconds is retried four more times, after 30 seconds, 2 minutes, 10 minutes and 30 minutes. After that, the channel shows Not delivering with the last error. Answering 410 Gone stops the retries at once.

Can I see the signing secret again?

No. It is shown once, when you add the channel, and it never changes. For a new secret, add a new webhook channel and delete the old one.

Can our status page subscribers follow it here too?

Yes. Visitors of an Uptimecheck status page can follow it in Slack, Microsoft Teams, Discord or by webhook, for the whole page or only the components they choose, and get your status updates there.

Is it included on every plan?

Yes. Every alert channel is on every plan, from Start to Business; SMS uses credits (included on Professional and Business, bought packs on Start). Plans differ in how many alert channels you can add: 25 on Start, 75 on Professional and 250 on Business.

Downtime is obsolete.

Set up your first monitor in under a minute, or look around the live demo first.

14-day free trial · No credit card required