Skip to content

Website monitoring for developers, wired into CI.

Chain the real calls — log in, take the token, place the order, read it back — and assert every response. Give each cron job a heartbeat URL, create monitors from a deploy step, and get paged in Slack, Discord or PagerDuty.

50 API chains and 50 heartbeats in the trial REST API, webhooks & 12 alert channels No credit card
Websites monitored
100,000+
Checks per day
50M+
Checkpoints
171+
Countries covered
70+

Four failures that never throw

Every one of them is true the moment the pipeline goes green. None of them is still true at 03:00, when the running system has drifted and nothing has thrown.

Belief 01

"If something broke, we'd see an exception."

Error trackers only see code that runs. A cron entry that never starts, a worker wedged mid-job, a certificate that quietly expires — none of them throw. The worst failures aren't stack traces; they're silence.

Belief 02

"The pipeline is green, so prod is fine."

CI proves the code was good at deploy time. Expired tokens, full disks, exhausted quotas and drifting config all happen between deploys — in the running system your test suite never sees again.

Belief 03

"We'd hear about it fast — we're online all day."

You're at a keyboard 40 of the week's 168 hours — nobody is looking for the other 128. And users rarely report a broken checkout; they retry once and leave.

Belief 04

"It worked in staging, so it works."

Staging never has production's traffic, data volume, third-party quotas or DNS. The failure modes that page you at 03:00 are precisely the ones staging can't reproduce.

1,440× "200 OK"
one /health check · every day

"We have a /health endpoint — we're covered" is the biggest one. A one-minute health check tells you 1,440 times a day that a process answers (24 × 60). The number of those checks that prove checkout completes, the nightly backup ran or the queue is draining: zero.

"A process answers" and "the system works" are different claims — and only one of them is the one your users care about.

So what does 03:00 look like on the night a job dies — when something is actually listening?↓ minute by minute

The night invoice-worker stopped

A deploy at 22:40 rewrote the crontab and dropped one line. At 03:00 the invoice worker didn't start, raised nothing, and every dashboard stayed green — the queue never moved.

03:00:00 invoice-worker's ping never arrivesA bad deploy broke the cron entry — no error, no crash, just silence invoices: on hold
03:06 The silence itself pages youAn incident opens: Slack first, PagerDuty if nobody acknowledges invoices: on hold
03:15 Cron entry fixed, job re-runOne bad line in tonight's deploy — found the same night it shipped invoices: on hold
03:19 The next ping lands — auto-resolvedRecovery confirmed by the ping itself, logged in the incident history invoices: flowing
19 minsilent → fixed
Fixed the same night.03:19
A job that stops running can't send its own alarm — so the missing ping is the alarm. Nobody spends three days not knowing.
one curl line to wire infixed in 19 minauto-resolvedbackups · queues · syncs — same switch
And without a heartbeat? A dead job looks exactly like a healthy one — silence either way. The break surfaces on day three, when someone asks where the invoices went. day three

That covers the job that died. But cron is only one of the surfaces that fail without a sound — every belief above has its own.↓ a monitor for each

Chains, pings and agents

API chains for services, inbound pings for jobs, real-browser flows for checkouts, a one-line agent for the box. Different surfaces, one incident stream, one API.

API monitoringChained calls, asserted step by step
Heartbeat (cron)A missed ping is the alarm
WebhooksAlerts POSTed to your endpoint
Server metricsCPU, RAM and disk from inside
1 alerting spine web · jobs · servers · flows
Uptime checksEvery 30 s from Professional up
TransactionsReal-browser flows, step by step
12 alert channelsSlack, PagerDuty, SMS + 9 more
Outside-in checks fire from 171+ checkpoints in 70+ countries, and you decide how many regions must agree — up to 3 — before anyone is paged. One flaky route never becomes a 03:00 page, and every monitor here is scriptable from the REST API. no false alarms

Chains, heartbeats and ladders

API monitoring for developers

Chained calls, asserted per step

A /health endpoint proves a process answers. It proves nothing about the flow behind it. The chain runs the real calls in order and checks each response — the status code, the time it took, a value inside the JSON — as often as once a minute on every paid plan, from every location or a list of at least six.

  • Up to 15 steps — GET, POST, PUT, PATCH, DELETE or HEAD, run in order
  • Extract and reuse — pull a value from one response and template it into the next with {{token}}
  • Assert what matters — status code, response time, a JSONPath value, a header or body text, per step
Explore API monitoring
POST/auth/login200 · extract
POST/orders201 · <800 ms
GET/orders/{{orderId}}$.status = paid
DEL/orders/{{orderId}}204 · cleanup
Checkout proven218 ms
All four calls passed — logged in, ordered, confirmed paid, cleaned up. Confirmed from 3 locations.
4 stepsevery 60 s2 variables
A /health check answers 200 this whole time — and proves none of these four calls. 0 of 4 proven
Cron job monitoring

The job that never started

A job that stops running goes silent, not red — nothing throws, so nothing alerts. Give it a heartbeat URL to ping when it runs, and the missing ping becomes the alarm: miss the window past the grace period and Uptimia opens an incident. Signal start and finish too, and it catches jobs that hang instead of stopping.

  • Interval or cron schedule — a plain interval or a 5-field cron expression in your account timezone
  • One line to wire in — copy-paste snippets for Crontab, Bash, PowerShell, GitHub Actions and PHP
  • Catches hangs, not just misses — send a start ping and a runtime limit flags a job that never finishes
Explore heartbeat monitoring
nightly-backup · pings /p/hb_9f3c… · cron 0 3 * * *
Tue03:00✓ 1.2 s
Wed03:00✓ 1.1 s
Thu03:00✓ 1.3 s
Fri03:00no ping
Incident opened03:15
nightly-backup missed its 03:00 window and stayed silent through the 15-minute grace this job was given. It went quiet, not red.
SlackPagerDutyEmail
A job that stops running doesn't error — it just goes silent. The missing ping is the alert. grace 15 m
REST API & webhook alerts

Monitors created from your deploy step

Nobody clicks anything — the script that shipped the service created its monitor. Create and manage monitors over the REST API from a CI step, and when an incident opens, a custom webhook POSTs it into whatever you already run: a status board, a bot, a ChatOps flow.

  • A REST API — create, read, update and delete monitors on every plan (API monitors and heartbeats live on v2), with account API keys managed in settings
  • Custom webhooks — POST a fixed JSON body with your own headers to any endpoint on a monitor event
  • Safe by default — webhook delivery is TLS-verified, pins DNS at send time and rejects private-network targets
Read the API & webhook docs
Your deploy pipelineCI step
# uses your account API key
curl -X POST …/api/v2/api-monitor
  -d '{"name":"Checkout API","interval":60}'
201 Created · the same script that shipped the service provisioned its monitor.
Monitor #4821 · live
checking every 60 s from every location
Custom webhook
POST hooks.caldmont.com/uptimia
your headersTLS-verifiedno redirects
Onboard a service from your pipeline — no click-through for every environment you spin up. 0 clicks
Alerts where you already are

Slack first, PagerDuty if nobody acknowledges

In the channel your team already watches, not an inbox nobody opens at 03:00. The ladder moves an unanswered Slack ping up to a PagerDuty page on your schedule, and one acknowledgement — tapped in the alert itself, no login — pauses every pending step for everyone. Ladders and acknowledgement come with Professional and above; below that, and during the trial, every alert goes to everyone at once.

  • 12 channels — Slack, Discord, Telegram, MS Teams, Mattermost, PagerDuty, email, SMS, webhooks and more
  • Escalation ladders — up to 10 timed steps per policy; acknowledge from the alert and the ladder pauses, from Professional up
  • Confirmed first — outages are verified from multiple regions — and late jobs past their grace period — before anyone is paged
Explore downtime alerts
Incident — invoice-worker03:06
Missed ping, confirmed from multiple regions. Escalation policy: On-call ladder.
SlackDiscordPagerDuty+ 9 more
1
#incidents (Slack)
paged 03:06 · whole on-call channel
unacknowledged
2
PagerDuty on-call
acknowledged 03:13 by Sam · from the alert, no login
ladder paused
3
Everyone · all channels
would page 03:21 — stays asleep
One acknowledgement pauses every step below it — the people who were never paged stay unpaged, and nobody's phone rings twice. acknowledge to pause

Paged where you already work, not in another dashboard

A worker that stopped, a chain that broke, a box out of disk — all of it reaches the same channels, and all of it is scriptable from the REST API.

On-call & escalation
Direct

12 channels, one contact list — set it from the API or the UI, once.

Browse the full integrations directory
04:10 · incident opened — invoice-worker · no heartbeat since 03:00
#ops-alertsSlack
⚠ No heartbeat — invoice-worker · hourly
expected 04:00grace 10 minAcknowledge ↩
+371 ··· 4082SMS
Uptimia: NO HEARTBEAT invoice-worker. Expected 04:00 with 10 min grace; last ping 03:00:12.
InboxEmail
⚠ No heartbeat — invoice-worker · hourly
Last ping 03:00:12, expected again by 04:00 with a 10-minute grace. The run log and the webhook payload are on the incident…
ProductionPagerDuty
TRIGGEREDNo heartbeat — invoice-worker
assigned to on-call · via Uptimia integration

A broken deploy should page you.Not your users.

Every monitor type in the 30-day trial — 50 API chains, 50 heartbeats, all 12 alert channels.

Start your free 30-day trial
30 days free no credit card cancel anytime

Wire the first monitor in

Point it at a surface, route the alert, and let it run.

Step 12 minutes

Pick the surface

An API chain, a heartbeat URL, a browser flow or the one-line agent. Create it in the UI or over the REST API.

Monitor type
API chainHeartbeatServerUptime
or POST /api/v2/api-monitor from your pipeline
Step 21 minute

Route the alert

Send it to Slack, Discord or PagerDuty, add a webhook, and on Professional set an escalation ladder so nothing rings unanswered.

Alert channels
SlackPagerDutyWebhook+ 9 more
ladder: Slack → +5 min PagerDuty → +15 min all
Step 3automatic

Let it run

Checks run from 171+ locations and confirm a failure before paging you — with the step or job that broke named.

Running
Checkout API · every minute · 3-region confirm
nightly-backup · pinged 03:00 · on time

Also included

One-line server agent

CPU, memory, disk and load from inside the box — a checksum-verified bash install, no collector to write. Linux, via a systemd timer or cron.

curl -s uptimia.com/server-agent/install.sh | bash -s -- $KEY

Transaction monitoring

Replay a login or checkout in a real Chrome browser — built step by step in the builder, with a screenshot of what each step saw.

✓ sign-in flow · real Chrome

Maintenance windows

Deploying tonight? Schedule the window — checks pause, alerts stay quiet, no false page during a planned release.

Sun 02:00–03:00 · alerts muted

Recovery notices

When a service comes back, the people who were alerted hear that too — no lingering "is it still down?" in the channel.

✓ recovered · 03:19 · 13 min

Incident history

Every incident is logged with what fired, when, how long recovery took and — where a ladder is running — who acknowledged it.

MTTA & timeline · per incident

One list for chains and jobs

API chains, heartbeats, servers and uptime checks share one dashboard, one alerting spine and one API — not four separate tools.

Checkout APIAPI CHAIN nightly-backupHEARTBEAT web-01SERVER AGENT

What is website monitoring for developers?

Website monitoring for developers is the practice of watching the surfaces you ship — HTTP APIs, background jobs, servers and user flows — and alerting you through the tools you already use when one breaks. You wire monitoring into the stack: a multi-step API check from outside, a heartbeat ping a cron job sends in, an agent inside the box, and a REST API and webhooks where you'd rather script it.

A health check alone

200 OK, still broken

GET /health
returns 200
meanwhile
Checkout is down
token endpoint 500s

A shallow ping stays green while the flow your users depend on fails.

A monitor that tests the flow

The chain catches it

4-step API chain
login → order → verify
step 2 fails
Paged in Slack
"/orders returned 500"

The assertion that fails names the exact call — so you start debugging, not guessing.

By surface

Which monitor watches what

Each family watches a different surface — all sharing one dashboard, one alerting spine and one REST API. Each is also counted separately, and a chain is the priciest row to run: Basic carries 1 API chain and 10 heartbeats, Professional 10 and 100.

See all monitor types
SurfaceWhat it catchesHow it works
API chainBroken multi-step flowsUp to 15 ordered steps with per-step assertions, checked as often as once a minute
HeartbeatCron & workers that silently stopInbound ping URL; a missed window past the grace period opens an incident
UptimeOutages, server errorsOutside-in checks as often as every 30 s on Professional and up, confirmed from up to 3 regions
Server agentCPU, memory, disk pressureOne-line Linux agent reporting /proc + df every 30 s
TransactionBroken logins & checkoutsMulti-step flows replayed in a real Chrome browser

Developer & DevOps monitoring FAQ

01What is website monitoring for developers?+
Monitoring you wire into your stack rather than a dashboard you have to remember to check. Point it at the surfaces you ship — an API chain, a cron job's heartbeat, a server, a login flow — and it alerts you through the tools you already use. It's also reachable from a REST API, so onboarding a new service can happen in your deploy pipeline.
02Can I monitor a multi-step API flow, not just one endpoint?+
Yes — build an ordered chain of up to 15 requests (GET, POST, PUT, PATCH, DELETE, HEAD), extract a value from one response and template it into the next with {{token}}, and assert on status code, response time, a JSONPath value, a header or body text per step. If a step fails, the alert names it — you know which call broke.
03How do I monitor a cron job or background worker?+
With a heartbeat monitor — a dead-man's switch. The job gets a unique ping URL; add a one-line curl so it pings when it runs. Set an interval or cron schedule with a grace period, and if the ping doesn't arrive, an incident opens. A start ping plus a runtime limit also catches jobs that hang. Snippets cover Crontab, Bash, PowerShell, GitHub Actions and PHP.
04Is there an uptime monitoring API to create and manage monitors?+
Yes — a REST API lets you create, read, update and delete monitors from your own tooling, on every plan. API monitors and heartbeats live on the v2 API (other types are also reachable on v1), authenticated with account API keys managed in settings; the API Keys page shows a ready-to-copy curl example. There's no Terraform provider or Zapier app.
05Can I issue a separate API key to each team member?+
Not today. API keys are account-scoped — there's no per-team-member key issued or revoked per seat. Create as many named keys as you need for different scripts or environments, and rotate them from settings.
06Where do alerts go, and can I pipe them into my own tools?+
To 12 channels: Slack, Discord, Telegram, Microsoft Teams, Mattermost, PagerDuty, email, SMS, WhatsApp, Twilio, Atlassian Statuspage and custom webhooks. A webhook POSTs a fixed JSON body with your own headers to any endpoint — pipe incidents into a status board, a bot or a ChatOps flow. Delivery is TLS-verified, pins DNS at send time and rejects private-network targets. No voice-call or mobile-push channels.
07Do you handle on-call rotations?+
Not scheduling-wise. Escalation ladders are a Professional-and-up feature — ordered, timed steps (up to 10, from 1 minute to 24 hours apart) that page the next channel until someone acknowledges — which pauses the ladder for everyone, and can be set to resume automatically if the incident is still open a set number of minutes later. It doesn't manage a weekly rota — if you run PagerDuty for rotations, route the ladder to it.
08Does the server agent run on Windows?+
The copy-paste install command in the control panel is the Linux one: a checksum-verified bash agent that installs as a systemd timer (cron fallback) and reads /proc and df for CPU, memory, disk and load. A PowerShell collector for Windows and a macOS one ship alongside it and post the same payload — minus the per-core and I/O-wait figures only Linux exposes — but they aren't handed to you as a one-liner. Windows hosts can also be watched from the outside with uptime, API or transaction monitors.
09Can I import a cURL command or OpenAPI spec into the API builder?+
Not yet — chains are built step by step in the editor; there's no cURL or OpenAPI import. If you'd rather not click, create and update API monitors programmatically through the REST API.
10How many chains, heartbeats and agents does a plan include?+
Every family is counted separately, and a chain is the most expensive row to run — one monitor is an ordered set of requests, so it costs roughly as many checks as it has steps. API monitors run 1 on Basic, 10 on Professional, 100 on Enterprise; server agents and transaction flows follow the same ladder. Heartbeats are inbound pings with no probe work behind them, so they're counted far more generously — 10, 100 and 1,000 across those plans, the same as uptime checks. The 30-day trial carries 50 API chains, 50 heartbeats and 500 uptime checks, which is more chains than any plan below Enterprise — size the plan on the chains you intend to keep, not on the ones you try out.

Ship it. We'll watch it.

Wire an API chain, a heartbeat and a server agent into the trial — alerts reach you where you already are.

50 API chains & 50 heartbeats REST API & webhooks Slack, Discord & PagerDuty alerts No credit card
30-day free trial · every monitor type included · alerts to the tools you already run