Skip to content
StatusCheck

Everything StatusCheck does.

29 features across eight areas. The pricing page says which plan each limit belongs to, in a table, with no asterisks.

Uptime Monitoring

Know it’s up. Know why when it isn’t.

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.

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.

  • Method
  • Request
  • Status assertion
  • Body assertion
One check · as the probe returns it 59.1 ms
$ 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"}
timing waterfall, ms assertions region is stamped by the probe, never by the caller

The whole timing story

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.

Requests shaped like your traffic

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.

Confirmed before it pages

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.

Everything in uptime monitoring

Network Monitoring

The layers underneath the URL.

Most outages don’t start at the front door. StatusCheck checks the port behind it, the host under it, and the DNS record pointing at both.

TCP ports

Databases, brokers, mail servers, SSH. A timed connect from each region you select, so you learn a port stopped accepting connections before an application does.

  • TCP
  • ICMP
  • DNS

Network monitors

4 up · 1 degraded
  • TCP db-primary.acme.internal:5432 12 ms Up
  • DNS acme.com · A 31 ms Up
  • ICMP edge-01.acme.com 148 ms Degraded
  • TCP smtp.acme.com:587 44 ms Up
  • DNS acme.com · MX 28 ms Up

ICMP reachability

Ping with a packet count you set and a maximum acceptable loss. Min, average and max round-trip are recorded per region, and partial loss shows up as degraded rather than down.

DNS records

A, AAAA, CNAME, MX, NS, TXT, SRV, and PTR, checked against the resolver you choose with an expected-answer assertion. Catches a bad propagation before customers do.

Same confirmation rules

Network checks confirm across regions exactly like HTTP checks. A single region failing to reach a host is far more likely to be that region’s problem than yours.

Everything in network monitoring

SSL Monitoring

No outage is more avoidable than this one.

A certificate expiring is the one failure you always get warning about, as long as something is watching for it.

Warned in days, not minutes

Set the threshold at 30 days, 14 or 7, and the check turns degraded while there is still time to renew. It only goes down once the certificate is actually invalid.

  • Target
  • Expiry warning
  • Verified
  • Alerts

SSL · api.acme.com:443

Renew before October 31

Degraded
DAYS TO EXPIRY 11 / 30
  • Certificate is trusted
  • Hostname matches api.acme.com
  • Chain complete, 2 intermediates
  • Expires in 11 days, under your 30-day threshold

Issued by Let’s Encrypt R3 · checked from 18 regions

More than the expiry date

Trust, hostname match, and chain completeness are all verified. A certificate that is technically valid but missing an intermediate still breaks clients, and still gets flagged.

Every certificate, not just the main one

Point a check at any host and port. API endpoints, admin subdomains, mail servers, and the internal service that nobody remembered had its own certificate.

Everything in ssl monitoring

Cron & Heartbeats

The job that quietly stopped running.

Nothing fails louder than a backup you find out was never running. Heartbeats invert the check: your job pings us, and silence is the alert.

Silence is the signal

Give a heartbeat an expected period and a grace period. One line at the end of your job pings the URL. Miss the window and an incident opens on its own.

  • Expected period
  • Grace period
  • Endpoints
  • Alerts

Heartbeats · last 23 runs

1 incident open
  • nightly-backup every 24 h
  • invoice-run every 1 h
  • search-reindex every 15 min
  • queue-worker every 5 min
On time Late, inside grace Missed

Report failure explicitly

A /fail endpoint lets a job report that it ran and went wrong. That is a different problem from not running at all, and worth telling apart at three in the morning.

Anything on a schedule

Nightly backups, billing runs, queue workers, ETL jobs, certificate renewals, data exports. If it should have happened by now and didn’t, that’s worth knowing.

Everything in cron & heartbeats

Status Pages

Tell customers before they tell you.

A status page is only worth having if people believe it. Components are backed by real monitors, and the overall banner is derived from them rather than hand-set to look better.

Uptime bars from real history

Each component shows a 90-day uptime bar that comes straight from monitor results. Back a component with one or more monitors, or update it by hand when a monitor can’t see it.

status.acme.com
A Acme
Subscribe

Partial degradation

Checkout is slower than usual. Investigating · updated 4 min ago

  • API
    99.98% Up
  • Web app
    100% Up
  • Checkout
    99.71% Degraded
  • Email delivery
    99.95% Up
90 days ago Today

A banner you can’t fudge

All systems operational, Partial outage, Major outage and Under maintenance are all derived from component state. The page tells the truth even on the day you’d rather it didn’t.

Subscribers on their own terms

Email, RSS/Atom, and Slack, per page or per component. Double opt-in and one-click unsubscribe, so the list stays clean and the mail keeps landing.

Your domain, your brand

Public, password-protected, or SSO-protected, on your own domain with automatic TLS. Your logo, favicon, and accent color. Remove “Powered by StatusCheck” and send from your own domain, on every paid plan, not as an add-on.

Everything in status pages

Alerts

One confirmed failure. One alert.

An alert you learn to ignore is worse than no alert. Every notification StatusCheck sends has already been confirmed by a second region and carries the facts you need to act.

Alerts with the facts in them

Monitor, target, state change, failure reason, confirming regions, start time, and a link to the incident. Recovery alerts include how long it lasted.

  • Direct
  • Chat
  • On-call tools
  • Custom

Checkout API is down

Monitor
Checkout API
Target
https://api.acme.com/checkout
Reason
HTTP 503 on 3 consecutive checks
Confirmed by
NYC, Frankfurt
Since
09:12:04 UTC

Sent once, per channel

  • Phone call Delivered
  • SMS Delivered
  • Slack Delivered
  • Webhook Signed · 200

No storms

One confirmed failure sends one alert per channel. Flapping inside a short window is grouped into the same incident instead of re-paging everyone who already knows.

Signed webhooks

Every webhook is signed with HMAC-SHA256 using a per-channel secret. Events for down, degraded, up, incidents, heartbeats, and expiring certificates.

No per-responder fee

Route a channel to whoever should get it. Alert-only seats cost $2 a month, so nobody gets left off the alert to save money.

Everything in alerts

On-Call

Page the right person, once.

Escalation exists so a missed page doesn’t become a missed outage, and it stops the moment somebody picks up.

Rotations in their own time zone

Daily or weekly schedules that run in the time zone the team actually lives in, with overrides for holidays and swaps. Who’s on call now sits on the project home page.

Escalation policy · Core platform

3 steps
  1. On-call engineer

    SMS + push

    delivered

    Wait 5 min, then

  2. On-call engineer

    Phone call

    delivered

    Wait 5 min, then

  3. 3

    Engineering lead

    Phone call

    queued

Acknowledged by Mira from the phone call · escalation stopped

Escalation that knows when to stop

Ordered steps with wait times between them. Acknowledge from the dashboard, an SMS reply, a phone keypress or Slack, and everyone further down the list is left alone.

Everyone on the team, at no extra cost

Owner, admin and member roles, and alert-only seats at $2 for people who carry the pager but never open the dashboard. Rotations don’t get thin because seats are expensive.

Everything in on-call

Incident Management

Incidents that write their own first update.

A confirmed failure opens an incident with the facts already in it: what, since when, and from where. You add the human part. Recovery closes it.

Opened and closed automatically

Confirmed failures open an incident; confirmed recoveries close it. Nobody has to remember to update the status page while they’re busy fixing the actual problem.

Incident · INC-0418

Elevated checkout latency

Resolved
  1. Investigating 09:12 · Automatic

    Checkout Service degraded: p95 512 ms over the 400 ms threshold. Confirmed from NYC and Frankfurt.

  2. Identified 09:19 · Mira

    Slow query on the orders table after this morning’s migration. Rolling back the index change.

  3. Monitoring 09:31 · Mira

    Rollback complete. p95 back under 150 ms from all regions; watching for 20 minutes.

  4. Resolved 09:52 · Automatic

    Checkout Service recovered. Total duration 40 minutes.

Posted to status.acme.com · 214 subscribers notified 4 updates

The states people expect

Investigating, Identified, Monitoring and Resolved, with templates for the updates you end up writing over and over. Optional postmortems publish alongside the incident.

Manual incidents too

For what monitors can’t see: a partner outage, a data issue, a bad deploy caught by hand. Same timeline, same subscriber updates.

Maintenance that doesn’t cry wolf

Scheduled windows notify subscribers, silence alerts for the duration, and are excluded from uptime history, so planned work doesn’t look like downtime.

Everything in incident management

All of it runs from 18 places.

Pick the regions that match your customers. A failure has to be seen from two of them before anyone gets paged.

San Francisco N. California N. Virginia New York City Toronto São Paulo London Paris Amsterdam Frankfurt Bahrain Cape Town Mumbai Bangalore Singapore Seoul Tokyo Sydney San Francisco New York N. Virginia Toronto São Paulo London Frankfurt Bahrain Cape Town Mumbai Singapore Seoul Tokyo Sydney

Built for a team, not a single admin.

Everyone who carries the pager needs an account, so the seats are cheap and the alert-only ones are cheaper. Security is here because customers ask for it, not because it’s a lucrative upsell.

Roles for the whole team

Owner, admin and member roles, plus alert-only seats at $2 for people who need the page but never open the dashboard.

API keys

Create monitors, read check results, and post incident updates from your own tooling. Keys are scoped per project.

SSO and 2FA

Two-factor authentication for everyone. SAML single sign-on on Business, for the dashboard and for private status pages.

Audit log

Who changed which monitor, channel, or page, and when. Exportable.

Secrets stay secret

Auth headers and proxy credentials are stored encrypted and never appear in logs, alerts, or the UI after you save them.

Probe safety

Probes refuse private and link-local targets and identify themselves with a stable User-Agent, so you can tell our traffic apart from anyone else’s.

Start on the free plan.

Ten monitors, three regions and a status page, free forever and no card. Join the waitlist and we’ll email you once, when it’s your turn.

Early access opens in batches. No spam, one email when it's your turn.