DOCUMENTATION
Get up and running in under five minutes.
There's no agent to install, no SDK to import, and no logs to ship. You point us at a URL, port, or DNS record, and we tell you when it breaks.
Quickstart
Three steps, plus an optional status page.
1. Create an account
Head to app.upclock.devapp.upclock.dev and sign in. Free Hobby plan, no credit card.
2. Add a check
Click Create Service, paste a URL, set the interval. We start checking it within seconds.
3. Connect a channel
Add an email address in Channels. Paid plans add ntfy, Slack, and webhooks. We page you when three consecutive checks fail.
4. Publish a status page (optional)
Group checks into a public status page at status.upclock.dev/your-slug or your own custom domain.
HTTP checks
An HTTP check requests your endpoint and compares the response with what you expect.
What we verify
- Status code (default: any 2xx)
- Response body contains a substring (optional)
- Response time under a threshold (optional)
- Custom headers, methods (GET/POST/HEAD), and request bodies
- Follow redirects (up to 5 hops)
Intervals
Hobby checks run every minute, Basic every 30 seconds, Pro every 10 seconds.
Timeouts
Default request timeout is 30 seconds. Anything slower counts as a failure.
TCP checks
For services that don't speak HTTP: databases, SSH, mail servers, custom protocols. We open a TCP connection on the port you specify and confirm the socket accepts the connection.
Host: db.example.com
Port: 5432
Interval: 60s
Timeout: 10sA check passes if the TCP handshake completes within the timeout. We don't send a protocol-level payload, so verifying the protocol itself is up to you.
DNS checks
Resolve a hostname and verify the record matches what you expect. Useful for catching DNS hijacks, misconfigurations after a registrar change, or stale CDN entries.
Supported records
- A: IPv4 address
- AAAA: IPv6 address
- CNAME: alias
- MX: mail exchange
- TXT: text records (SPF, DKIM, verification)
ICMP checks
Plain ping. For hosts that expose no open port, like routers, VMs, and bare-metal boxes, we send 3 ICMP echo requests and the check passes if any reply arrives.
ICMP checks are IPv4 only. If the host also runs a service you care about, prefer an HTTP or TCP check. Ping proves the host is reachable, not that the service works.
Heartbeats
Heartbeat monitoring turns the check around: instead of us calling your service, your job calls us. Use it for cron job monitoring, backups, queue consumers, and anything else that runs on a schedule with no endpoint to probe.
0 2 * * * /usr/local/bin/backup.sh && curl -fsS --retry 3 <ping-url>Each heartbeat has its own ping URL, ending in /heartbeat/<token>. Copy it from the dashboard. A GET or POST to it counts as a ping. Chain the request with && as above, so a failed run sends nothing.
Interval and grace period
You set how often the job should ping, from 1 minute to 31 days, and a grace period of up to 24 hours. If no ping arrives within the interval, the heartbeat shows as late. If the grace period runs out too, it goes down and we alert your email and ntfy channels. The next ping brings it back up and sends a recovery notice. A new heartbeat stays quiet until its first ping.
Limits
Hobby includes 5 heartbeats, Basic 25, Pro 200, and Enterprise has no limit. Heartbeats don't count against your monitors.
Channels
We send an alert when a check has failed three consecutive times (configurable per service, 1 to 10), and a recovery notice when it has succeeded twice in a row. That is the low-noise part. Single blips don't page anyone.
Available channels
Webhook payload
{
"event": "triggered",
"service": "API Gateway",
"check": "Health endpoint",
"target": "https://api.example.com/health",
"incident": "API Gateway is down",
"incident_id": "...",
"timestamp": "2026-07-16T14:21:03Z"
}event is triggered or resolved. If you set a secret on the channel, each request carries an X-Upclock-Signature header with an HMAC-SHA256 of the body.
Status pages
Publish a public page that shows component health, current incidents, scheduled maintenance, and a 90-day uptime history. Customers can subscribe to email updates.
Components
A status page is made of components, such as "API", "Web App" or "Background Jobs". Each component is backed by one or more checks. When all backing checks are healthy, the component shows operational.
Custom domain
Available from the Basic plan. Point a CNAME at cname.upclock.dev (or an A record at 76.76.21.21 for an apex domain) and we provision the SSL certificate.
Private pages
Pro plans support password-protected status pages, useful for staging or internal-only systems.
SSL monitoring
For HTTPS checks on paid plans, we track the certificate expiry and send a warning notification 30, 14, 7, 3, and 1 days before expiration, and again if it expires.
SSL monitoring runs as part of the regular HTTP check. There's no separate check type to configure.
FAQ
Where do checks run from?
From Upclock's own probe servers on the public internet, outside your infrastructure. A check must fail three consecutive times (configurable from 1 to 10) before an incident opens, which filters out single blips and most transient routing noise.
Do I need to install anything?
No. Upclock is external monitoring only. We hit your endpoints from the public internet, so there is nothing to run on your side.
What happens during an Upclock outage?
Upclock monitors itself with the same pipeline it sells and publishes the result at status.upclock.dev/upclock. If we have an incident, it shows there.
Can I import checks from another tool?
Not yet. There is no importer today. Checks are quick to create by hand, and if you have a large list, email support@upclock.dev and we will help you move it over.
How long is data retained?
Hobby: 7 days of check history. Basic: 30 days. Pro: 90 days. Enterprise: 365 days. Resolved incidents older than the retention window are purged.
Something missing here?
Email us or ask on Discord. We're a small team and we read every message.