When a check fails, Waklio immediately re-checks from a different region. An incident is only opened – and alerts are only sent – when the second check fails too. When the monitor works again, you get a recovery alert with the total downtime.
Plan maintenance under Maintenance in the dashboard. While a window is active, the selected monitors are not checked and no alerts are sent, and your status page shows “Scheduled maintenance” instead of an outage. Upcoming windows (next 7 days) are listed on the status page. Heartbeat monitors get one full interval after the window ends before they alert, so a job that was skipped during maintenance doesn't trigger an alarm.
Call your heartbeat URL after the job finished successfully. GET, POST and HEAD all work:
# crontab: run backup every night, then ping 0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://YOUR-HEARTBEAT-URL
# Node.js
await fetch("https://YOUR-HEARTBEAT-URL", { method: "POST" });# Python
import urllib.request
urllib.request.urlopen("https://YOUR-HEARTBEAT-URL", timeout=10)Webhook channels receive a JSON POST on every state change:
{
"event": "down", // "down" | "up" | "test"
"monitor": { "id": "…", "name": "Shop", "target": "https://shop.example.com" },
"cause": "Connection refused",
"startedAt": "2026-01-01T10:00:00.000Z",
"resolvedAt": null, // set on "up"
"regions": ["eu", "us"], // regions that confirmed the failure
"url": "https://…/dashboard/monitors/…"
}Respond with any 2xx status code. Requests time out after 10 seconds.
Create a bot with @BotFather, add it to your group or start a chat with it, and enter the bot token and chat ID in a new Telegram alert channel. Use “Send test” to verify.
Manage monitors programmatically – see the API documentation.
Our checkers identify themselves with the User-Agent Waklio/1.0. Checks against private or internal IP addresses are not possible.