Uptime Kuma

Add phone-call escalation to self-hosted Uptime Kuma with Edesy OnCall. Set up a Webhook notification with the application/json preset; down events call your team, up events resolve the incident.

2 min read

If you already run Uptime Kuma, keep it for checks and add Edesy OnCall for the part Kuma doesn't do: phone calls that escalate until someone presses 1.

1. Create an alert webhook monitor#

In OnCall, go to Monitors → New, choose Alert webhook and pick an escalation policy. Copy the URL from the monitor page:

https://oncall.edesy.in/ingest/<token>

2. Add a Webhook notification in Kuma#

In Uptime Kuma: Settings → Notifications → Setup Notification.

Notification Type: Webhook
Post URL:          https://oncall.edesy.in/ingest/<token>
Request Body:      Preset - application/json

Save it, then enable the notification on each Kuma monitor you want to page for (or tick "Default enabled" and "Apply on all existing monitors").

How Kuma events are mapped#

OnCall recognises Kuma's payload automatically (a body with heartbeat or monitor).

OnCall field Taken from
Down or up heartbeat.status: 0 is down, 1 is up
Dedup key The Kuma monitor's ID, so each Kuma monitor gets its own incident
Title (read on the call) monitor.name
Message heartbeat.msg

A down event opens an incident and runs your escalation policy. The next up event for the same Kuma monitor resolves it.

Kuma's Test button sends a message without a heartbeat. OnCall accepts it and does nothing, so testing never calls anyone. Use Test on a contact in OnCall to hear a real alert call.

Add ?format=uptimekuma to the URL to force the parser.

Responses and limits#

A good delivery returns 202 with {"data":{"accepted":1}}. Bad JSON returns 400 invalid_payload, an unknown URL 404. Up to 120 requests a minute per IP.

FAQ#

Why not just use Kuma's own notifications? Kuma can notify many apps, but OnCall adds phone calls in English or Hindi, press 1 to acknowledge, and escalation to the next person when nobody answers.

Does my Kuma server need to be public? No. Kuma sends outgoing requests to OnCall; nothing needs to reach your server.

One OnCall monitor or many? One alert webhook monitor can take all your Kuma monitors; each Kuma monitor becomes its own incident. Create separate OnCall monitors if different teams should be paged.

See also: Generic JSON and the Uptime Kuma phone call alerts page.

Was this page helpful?