UpCheck Docs

Core concepts

Monitors, projects, checks, and incidents, and how they relate.

Five nouns explain all of UpCheck: projects hold monitors, monitors run checks, checks produce events, and incidents and status pages tell people about them. This page gives each one a definition, so the rest of the docs can use them without stopping to explain.

#Projects

A project is the container everything else lives in: monitors, notification channels, maintenance windows, a status page, and API keys all belong to exactly one project. It is also the unit of sharing, teammates are invited to a project, and the unit of scope, an API key can reach one project and nothing else.

The free plan includes 1 project; Pro raises it to 3 and Team to 5.

#Monitors and checks

A monitor describes one thing to watch: a URL, a host and port, or a DNS name, plus how to judge the response. A check is one execution of that description, and they run on the monitor's interval, every 5 minutes on free, down to every minute on paid plans.

Each check lands in one of three states:

StateMeaning
UpThe check passed.
SlowThe check passed, but took longer than the latency threshold.
DownThe check failed: an error, a timeout, or an unexpected response.

A single failed check does not flip the monitor. Two thresholds add debounce: fail_threshold consecutive failures turn it down, recover_threshold consecutive passes turn it back up. That keeps one network blip from paging you.

#Events and incidents

Every state change is recorded as an event, and the monitor page shows them as a timeline next to the latency and uptime charts.

An incident is the human-facing wrapper around downtime: it opens when a monitor goes down (your project's incident policy decides exactly when), collects updates, and closes when things recover. Incidents are what your status page tells the outside world about.

A maintenance window is planned downtime: schedule one and alerts stay quiet while it is active, so a deploy does not read as an outage.

#Alerts and channels

Alerts reach you two ways. If you use the UpCheck app on iPhone, iPad, or Mac, push notifications are already on: state changes land on your devices with no setup, along with SSL and domain expiry warnings on paid plans.

A channel is everywhere else alerts go: Slack, Discord, Telegram, or a webhook, connected per project on the Notifications page, plus email channels on paid plans. When a monitor crosses its fail threshold, every connected channel is notified, and again on recovery.

#Status pages

A status page is the public view of a project: you pick which monitors it shows, and visitors see current status and uptime history without signing in. It lives on an UpCheck subdomain for free, or on your own domain on paid plans.

#How it fits together

One account, on one plan, owns projects. Each project holds monitors, and each monitor runs checks on its interval. Checks produce events; enough failures open an incident, which fires alerts through the project's channels and shows up on its status page, unless a maintenance window says this downtime is planned.

Everything is also an API object

Every noun on this page can be managed with a project API key over the REST API, or by an AI agent over MCP.