WakeHook ← wakehook.com

Integration guide

Uptime Kuma → WakeHook

Uptime Kuma already knows the second a monitor goes DOWN. The gap is between that moment and a human finding out — a Discord ping or an email sits unread until morning. Point Kuma's webhook notification at WakeHook and DOWN rings a phone like an alarm clock, through Silent and Do Not Disturb, until someone acknowledges it.

Set it up

  1. In your WakeHook dashboard, open SourcesAdd source, name it something like Uptime Kuma, and pick the Uptime Kuma preset. Save it and copy the Webhook URL it gives you — shown once, in full.

  2. In Uptime Kuma, go to Settings → Notifications → Setup Notification, choose type Webhook, and paste that URL into Post URL.

  3. Attach the notification to any monitor (or make it the account default so every new monitor gets it automatically).

  4. Trigger a real test: pause and resume the monitor, or point it at a port nothing is listening on for a few seconds. A real TRIGGERED incident should appear in your dashboard within moments.

What WakeHook reads from it

Kuma's webhook body is { heartbeat, monitor, msg }. This is the exact mapping — no configuration needed, it's built in:

WakeHook fieldComes fromNotes
titlemonitor.name"<name> is UP" or "<name> is DOWN"
bodymsg / heartbeat.msgKuma's own status message
severityderivedcritical on DOWN; unset (defaults to high) on UP
statusheartbeat.statusOnly a confirmed 1 (UP) resolves the incident — PENDING/MAINTENANCE are treated as still-firing, safer to over-report than to silently drop
dedup_keymonitor.idRepeated down/up cycles for the same monitor collapse into one incident instead of paging fresh each time
linkmonitor.urlTapped from the incident to jump straight to what's actually down

Kuma sends heartbeat.status as a small integer (0=DOWN, 1=UP, 2=PENDING, 3=MAINTENANCE), not a string — WakeHook already knows this convention, you don't need to translate anything.

Example payload

{
  "heartbeat": { "status": 0, "msg": "503 Service Unavailable" },
  "monitor": { "id": 14, "name": "api-prod", "url": "https://api.example.com/health" },
  "msg": "[api-prod] [Down] 503 Service Unavailable"
}

Ready to wire it up?Free while WakeHook is in beta — one source, one device.

Join the waitlist

Other integrations