Assertions past 200 OK
Match on status, whether that is an exact code, a 2xx class or a 200 to 299 range. Then add a keyword in the body, a response header, or a regex. Contains, equals and regex operators work on all three.
Uptime Monitoring
HTTP checks from the regions you choose, with assertions that go past 200 OK, and the full DNS, TCP, TLS, first byte and download waterfall recorded on every single run.
Included on every plan. Nothing here is an add-on.
$ statuscheck check api.acme.com/health --region fra { "location": "frankfurt", "type": "http", "target": "https://api.acme.com/health", "up": true, "status": 200, "dns": 0.687, "tcp": 9.433, "tlsHandshake": 30.141, "firstByte": 18.313, "download": 0.11, "total": 59.059, "redirects": 0, "assertion": true, "sslExpiration": 57, "sslNotAfter": "2026-10-31T21:41:26Z", "date": "2026-09-04T12:41:07.617Z"} Match on status, whether that is an exact code, a 2xx class or a 200 to 299 range. Then add a keyword in the body, a response header, or a regex. Contains, equals and regex operators work on all three.
DNS, TCP connect, TLS handshake, first byte, and download are timed separately on every check. When a page gets slow, you already know which layer did it.
Custom methods, headers, and bodies. Follow redirects or assert on them. Per-monitor timeouts. Auth headers are stored encrypted and never shown again after you save.
A failure has to be seen from a second region before the monitor turns down. One region timing out is a data point, not an incident. Single-region monitors say so on the dashboard.
https://api.acme.com/health · HTTP · every 60 s
Checkout Service is degraded
p95 512 ms over threshold · confirmed from NYC and FRA
#incidents · 12 s ago
The specifics
Written out in full, because “monitoring” means something different at every vendor.
Every part of StatusCheck is on every plan. These are the pieces this one talks to most.
StatusCheck opens in batches. Join the waitlist and we’ll email you once, when it’s your turn. The free plan needs no card.