HTTP and keyword
Is it answering, how fast, and does the page still contain the word you expect? A homepage that loads an empty template is still broken.
Uptime monitoring for agencies
UniMonitor watches your sites around the clock and tells you the moment one stops answering — by email, Slack, Discord or Telegram. Status pages for your clients are included.
Five monitors free, no card. Paid plans come with a 14-day trial.
90-day uptime
A client rings you on Saturday morning. Their site has been showing a database error since Thursday. You had no idea, and now the conversation is about why you didn’t.
Most outages are boring. An expired certificate nobody renewed. A DNS record someone changed at the registrar. A host that ran out of memory at three in the morning and recovered on its own by six. None of them announce themselves, and none of them wait for office hours.
You cannot check thirty client sites by hand every morning. Nobody can.
Saturday · 09:14
Morning — the site has not been working since Thursday 😐
Since Thursday?
Yes. My customers are calling me.
UniMonitor
shop.tsala-textiles.cm is down
Thu 02:41 · Database error
Six kinds of check, running on the interval your plan allows.
Is it answering, how fast, and does the page still contain the word you expect? A homepage that loads an empty template is still broken.
Warned days before it lapses, not after. An expiring certificate is marked degraded rather than down, because the site is serving perfectly and nobody should be paged at 2am for a nine-day deadline.
Watch the A, CNAME, MX or TXT record you care about. Useful the day a client moves their domain and forgets to tell you.
Point it at an API endpoint and require particular keys to exist. Handy for the health route you already built.
For the mail server, the database, or anything else that listens but does not speak HTTP.
Planned work can silence alerts, exclude itself from uptime, or do only one of those. When the migration is what broke the site, counting the downtime is the honest option.
Error establishing a database connection
Reported as down
Matched: WordPress database error
Crash detection
WordPress will happily return a perfectly healthy HTTP 200 and show “Error establishing a database connection”. So will a Laravel error page. So will a LiteSpeed 508. A checker that only reads status codes calls that site up, all weekend.
We read the response body and match it against known failure signatures. You can add your own from the admin panel and it takes effect the same minute — no waiting for us to ship anything.
Alerts
A site that flaps for an hour does not produce forty messages. Everything about one outage belongs to one thread.
A tool that repeats itself gets muted, and a muted channel is worse than no channel — it looks configured. Turn them on if you want them.
After thirty minutes, if nobody has picked it up, it goes somewhere louder. A second escalation would just be a reminder with a bigger name.
A site that went down at 23:05 is not first mentioned at 07:00. The opening alert and the escalation always go out.
Working today Email · Slack · Discord · Telegram
Not yet WhatsApp · SMS · Web push
Status pages
Publish only the monitors you choose, under your own branding, at your own URL. Ninety days of uptime history, incident updates you write yourself, and an email list your client’s customers can subscribe to.
Internal names stay internal. “prod web-02 (billing)” is useful to you and is exactly what your client’s customers should never read — so the page calls it whatever you tell it to.
Tsala Textiles
All systems operational
Get updates by email
Per agency, not per client site. Pay by card, MTN Mobile Money or Orange Money.
Free
One site, checked every five minutes.
$29.00 / month
Everything an agency needs for its client portfolio.
14-day trial
Get started$99.00 / month
Higher limits and three years of history.
14-day trial
Get startedBilled to your agency, not to your clients. Your clients never see us or hear from us.
Compare the plans in fullYour checks keep running. You get three notices over nine days, then a week of grace with full service, and only then do the checks pause. Nothing is deleted at any point — your monitors, your history and your status pages are all still there, and everything comes back the moment a payment reaches us. Your clients depend on this working; switching it off over an expired card would punish people who never had the chance to pay us.
Not yet. ICMP needs raw sockets, which needs a server we control, and we are on shared hosting today. It is on the roadmap along with checks from more than one location. We would rather say so than list a feature that quietly never runs.
Not yet. Today a status page lives at a path on our domain, with your branding on it. Custom domains arrive with the same infrastructure work as multi-region checks.
Every five minutes on the free plan, every minute on paid plans. Sub-minute checks are a different architecture and we do not pretend to offer them.
No. Every monitor, incident and status page belongs to exactly one account, enforced in the database layer rather than by remembering to filter. When there is no account context, queries return nothing rather than everything.
Yes. Bearer tokens with per-resource read and write permissions, covering monitors, incidents, uptime and status pages. You can build your own dashboard, or wire alerts into whatever you already use.
Add your first monitor in about a minute. Add the rest of the portfolio over a coffee.