Waklio

Documentation

Monitor types

How alerts are confirmed

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.

Maintenance windows

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.

Heartbeat monitoring (cron jobs)

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 alerts

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.

Telegram

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.

REST API

Manage monitors programmatically – see the API documentation.

Requests from our checkers

Our checkers identify themselves with the User-Agent Waklio/1.0. Checks against private or internal IP addresses are not possible.