# Get started with Uptime

Uptime checks watch the services around your VPN servers: websites and APIs, pages that must or mustn't contain a keyword, hosts that should answer ping, TCP ports, DNS servers, and scheduled jobs that should check in. They live in the same projects as your tunnels and alert through the same [alert channels](/docs/alert-channels/).

![The Uptime page's Checks tab grouped by group: the Example app group with three healthy website checks, and a port check and a ping check that are not in a group.](../../../assets/screenshots/uptime-checks.webp)

## Adding your first check

<Steps>

1. In the sidebar, go to **Uptime**, and on the **Checks** tab click **Add check**.

2. Under **Alert us when…**, choose what counts as down, and enter the URL or host. The dialog presets this from what you type: `host:port` selects the TCP port option, and a bare IP address selects ping.

   ![The Add check dialog set to alert when https://example.com becomes unavailable, with a name and a group filled in.](../../../assets/screenshots/uptime-add-check.webp)

3. Optionally give the check a name, a **Group**, and tags, and review [Who gets alerted](/docs/uptime/checks/#who-gets-alerted). If you leave the name blank, the check is named after its target, such as `example.com` or `example.com:443`.

4. Click **Save & run first check**.

</Steps>

| Alert us when… | Check type |
| --- | --- |
| URL becomes unavailable | [Website](/docs/uptime/website/) |
| URL returns HTTP status other than | [Website](/docs/uptime/website/) |
| URL doesn't contain keyword | [Keyword](/docs/uptime/keyword/) |
| URL contains a keyword | [Keyword](/docs/uptime/keyword/) |
| Host doesn't respond to ping | [Ping](/docs/uptime/ping/) |
| Host doesn't respond at a TCP port | [TCP port](/docs/uptime/port/) |
| DNS server doesn't respond | [DNS](/docs/uptime/dns/) |

To monitor a scheduled job instead, use a [heartbeat](/docs/uptime/heartbeat/): open the **Heartbeats** tab and click **Add heartbeat**.

When the Uptime page is empty, it offers templates to start from: **Website or API**, **Keyword on a page**, **TCP port**, **Ping a host**, and **Heartbeat**.

## Adding many checks at once

In the **Add check** dialog, open the **Bulk import** tab and paste **URLs to monitor, one per line**.

- Each address becomes a **URL becomes unavailable** check, with the dialog's advanced settings, group, tags, and alert channels.
- Duplicates are dropped, and a line that isn't a web address is reported as "Not a web address: …".
- If adding stops partway, the dialog says "Added N of M." followed by the reason. The addresses that weren't added stay in the box, so adding again retries exactly those.

## Limits

Plan limits for Uptime checks will be announced.

Checks only reach [public addresses](/docs/uptime/checks/#public-addresses-only).
