Features
What CuliPulse watches,
and how it tells you.
Websites, servers, scheduled jobs and the services you rely on. Checked from our locations or from inside your own network, with an alert only when something is really wrong.
Websites, servers, scheduled jobs and the services you rely on, with an alert only when something is really wrong.
What you can watch
Eight kinds of checks, one set of alerts.
Pick what matters to you. Each one has a guide that explains exactly what we check and when we tell you.
Checks your site answers correctly and quickly, and warns before its security certificate expires.
Checks a server accepts connections: databases, mail servers, queues.
Checks a machine is reachable on the network at all.
Sends a small message and checks the reply. Ready-made for DNS and time servers; for anything else you write the message.
Your backups and cron jobs check in. We tell you when one goes quiet or fails, and when a run you time takes too long.
Warns you well before your domain registration runs out.
Tells you when your DNS records change when they shouldn't.
Follows the official status pages of your providers and tells you when one has a problem.
Where checks run
From our locations, or from inside your network.
Websites, ports and servers are checked by an agent, a small program that does the checking. Use ours, run your own, or both. Ours can only reach public addresses, so anything private needs your own agent.
Ready the moment you sign up. Good for anything public: your website, your API, your mail server.
Ready the moment you sign up, for anything public.
Install it on one server inside your network to watch databases, internal tools and anything without a public address. It only connects out, so you never open a port.
One server inside your network watches what has no public address. It only connects out.
Your agent looks around your network or your AWS account and suggests what to watch. Nothing is added until you approve it.
Suggests what to watch on your network or AWS. You approve each one.
Alerts
Told once, told clearly, and only when it's real.
A single blip shouldn't wake you up. CuliPulse waits for the problem to repeat, and can ask more than one location to agree first.
2 of 2 locations failing
Down from Singapore and Frankfurt
Down from Singapore and Frankfurt
Reports
Prove your uptime to the people who ask.
Pick a few monitors and a period, then share a link. Your customers or your boss see the uptime and downtime of each one against your target, without needing an account.
Share a link. They see each monitor's uptime against your target, with no account.

Status pages
A public status page, on every plan.
Pick the monitors your users care about, name them the way they know them, and share one link. Visitors see what's working right now and the last 90 days, day by day.
Pick monitors, name them, share one link. Visitors see what's working now and the last 90 days.

For teams that automate
Monitoring as code, when you want it.
Create and change monitors from your own scripts or your Terraform, and send every alert into your own systems. Included on every plan.
Manage monitors from scripts or Terraform, and send alerts into your own systems.
Read and change monitors from your own scripts and tools. Tokens can be read-only or read-write, and you can revoke one at any time.
# List your monitorscurl https://culipulse.dev/v1/monitors \ -H "Authorization: Bearer cpk_••••••••••••"# Create one, checked from the Singapore agentcurl -X POST https://culipulse.dev/v1/monitors \ -H "Authorization: Bearer cpk_••••••••••••" \ -H "Content-Type: application/json" \ -d '{"type": "http", "name": "API health", "target": "https://api.example.com/health", "interval_seconds": 300, "agent_sources": ["agt_sg••••"]}'
Keep monitors next to the infrastructure they watch. Review changes in a pull request and apply them with the rest of your stack.
terraform { required_providers { culipulse = { source = "culipulse/culipulse", version = "~> 0.1" } }}resource "culipulse_http_monitor" "api" { name = "API health" url = "https://api.example.com/health" interval_seconds = 300 agent_ids = data.culipulse_agents.singapore.ids expected_status = "200"}
Send every alert to your own endpoint as signed JSON, then open a ticket, post to chat or store it wherever you like.
POST /your/endpointX-CuliPulse-Event: monitor.downX-CuliPulse-Signature: sha256=9f2c…e41a{ "event": "monitor.down", "monitor": { "name": "Checkout API", "type": "http" }, "state": "down", "reason": "Connection timed out after 10s", "detail": { "sources_down": ["Singapore", "Frankfurt"] }}
Weighing up tools? See how CuliPulse compares with UptimeRobot, Better Stack, Uptime Kuma, Pingdom and Healthchecks.io.
Start with one monitor.
Your website takes about a minute. Add the rest when you're ready.
Your website takes about a minute.
No credit card · free plan forever