Creating Monitors
Set up monitors to continuously check your websites and APIs.
Monitors continuously check your websites and APIs to make sure they’re working. When a monitor detects a problem (two consecutive failed checks), you’ll receive a notification. When the service recovers, you’ll be notified again.
Creating a Monitor
To create a monitor, click Add Monitor from the dashboard. You’ll see a form with the following fields.
Name
A unique, descriptive name for the monitor (e.g., “Production API” or “Marketing Site”). Each name must be unique within the team that owns the monitor.
URL
The full URL to monitor, including the protocol. For example:
https://example.comhttps://api.example.com/v1/healthhttp://legacy-app.example.com
Note: For security reasons, internal and private addresses are blocked. This includes localhost, private IP ranges (e.g., 10.x.x.x, 192.168.x.x), link-local addresses, and internal domain suffixes (.local, .internal, .corp).
Active
When enabled, the monitor will be checked on its configured interval. Disable this to pause monitoring without deleting the monitor.
Advanced Options
Click the Advanced Options section to access additional settings.
Check Interval
How often the monitor is checked. Available options:
- 1 Minute - For critical services where fast detection is important
- 5 Minutes (default) - Suitable for most websites and APIs
Some intervals may be restricted depending on your plan.
HTTP Method
The HTTP method used for each check:
- HEAD (default) - Fastest option. Requests only the response headers, not the full page body. Use this for most websites and APIs.
- GET - Requests the full page. Use this if your server doesn’t support HEAD requests, or if HEAD returns a different status code than GET.
- POST - Sends a POST request. Use this for endpoints that only accept POST (e.g., certain health check endpoints).
Expected Status Code
The HTTP status code your endpoint should return when healthy. The monitor will report a failure if a different status code is returned. The default is 200 (OK).
Common status codes:
| Code | Meaning | When to use |
|---|---|---|
| 200 - OK | Standard success | Default for most websites and APIs |
| 201 - Created | Resource created | POST endpoints that create resources |
| 202 - Accepted | Request accepted | Async processing endpoints |
| 204 - No Content | Success, no body | APIs that return empty responses |
| 301 - Moved Permanently | Permanent redirect | When monitoring a URL that should redirect (with Follow Redirects disabled) |
| 302 - Found | Temporary redirect | When monitoring a redirect response itself (with Follow Redirects disabled) |
| 304 - Not Modified | Cached response | Endpoints using conditional requests |
| 401 - Unauthorized | Auth required | Verifying that auth is enforced (without providing credentials) |
| 403 - Forbidden | Access denied | Verifying restricted endpoints block access |
Follow Redirects
When enabled (default), the monitor automatically follows HTTP redirects (301, 302, etc.) up to 2 hops and checks the final destination’s status code.
Disable this if you want to verify that a URL returns a specific redirect response. For example, to confirm that http://example.com redirects to https://example.com, disable Follow Redirects and set the expected status code to 301.
Check SSL Certificate
Only available for HTTPS URLs. May be restricted by plan.
When enabled, monitors your SSL/TLS certificate expiration. This is checked every 24 hours (regardless of the monitor’s check interval). You’ll be notified as your certificate approaches expiration.
Check Domain Expiration
May be restricted by plan.
When enabled, monitors your domain registration expiration. This is checked every 24 hours. You’ll be notified as your domain registration approaches expiration.
Custom HTTP Headers
Add custom headers to be sent with each check request. This is useful for:
- Authentication - Send an
AuthorizationorX-Api-Keyheader to monitor authenticated endpoints - Content negotiation - Set
Acceptheaders to request a specific response format - Cache control - Use
Cache-Controlto bypass caches - Custom identification - Add a custom header so your server can identify monitoring traffic
To add a header, click Add Header. You can select from a list of common headers or enter a custom header name.
Restricted headers: Some headers are restricted and will not be available to configure. You will be notified if your requested header name is not allowed..
Notifications
Email notifications are enabled by default for all new monitors. When a monitor goes down or recovers, you’ll receive an email.
You can also configure webhook notifications to receive alerts in Slack or Google Chat:
Both email and webhook notifications can be enabled simultaneously for the same monitor.
Validation Errors
You may see the following errors when creating or updating a monitor:
| Error | Meaning |
|---|---|
| A monitor with the name ‘…’ already exists in this team | Choose a different name. Each monitor name must be unique within a team. |
| A monitor for the URL ‘…’ already exists in your team | Each URL can only be monitored once per team. Check your existing monitors. |
| URL must start with http:// or https:// | Include the full protocol in the URL. |
| Localhost and loopback addresses are not allowed | Internal addresses cannot be monitored. Use a publicly accessible URL. |
| Private IP addresses are not allowed | Addresses like 10.x.x.x or 192.168.x.x cannot be monitored. |