Uptime & API monitoring
Know before your customers tell you.
HTTP, API and port checks every few minutes, with incidents that open and close on their own, alerts in the channel you actually read, and a branded public status page you can point customers at during an outage.
HTTP · API · port · incidents · webhooks · public status pages
Three check types
"Is it up?" is the wrong question
A site can answer 200 and still be broken. Assert on what actually matters.
HTTP
Expect a status code, and optionally assert a string is present in the body — so a 200 that renders an error page still counts as down.
API
Pick the method, expected status and a body assertion. Catches the endpoint that returns 200 with an empty payload.
Port
Raw TCP reachability for databases, mail and anything that isn't HTTP.
What you get
Monitoring that doesn't need babysitting
Incidents open and close themselves
First failed check opens an incident; the first success resolves it. A partial unique index guarantees one open incident per monitor, so a flapping service doesn't spam you with duplicates.
Alerts where you already work
Slack, Telegram, email, or an outbound webhook to Zapier / n8n / your own endpoint with an optional shared secret. `uptime_down` and `uptime_recovered` are separate events, so recovery isn't noise.
Branded public status pages
Publish a subset of monitors at a public URL — uptime %, current state and recent incidents — with your logo and brand colour. No login for visitors.
Uptime % and response trend
24-hour and 30-day availability plus a response-time sparkline per monitor, so you see degradation before it becomes an outage.
Why here and not a separate tool
An outage is a brand event
Downtime, an expiring certificate, a lookalike domain and a spike of angry mentions are the same story told four ways. Watching them in one project means the alert reaches the same channel and the same people — instead of four vendors each telling you a quarter of it.
Add your first monitor in a minute.
Free plan included. Point it at a URL, pick an interval, and publish a status page when you're ready.