Before you start
- Create an account and verify your email address. Monitors cannot be created until the email is verified.
- Decide where alerts should go. You can add notification destinations now or after creating the monitor.
- Check your plan limits in Plans & Features: monitor count and minimum check interval.
Create a monitor in the dashboard
1
Open the new monitor form
Click Monitors in the sidebar, then Create Monitor.
2
Enter the URL
HTTP is selected by default. Enter the full URL, for example
https://example.com/health. The monitor name is derived from the URL and can be changed later from the monitor’s edit page.To monitor something else (heartbeat, ping, TCP port, DNS), open Monitoring something else? and pick the type.3
Review how often we check (optional)
Expand How often we check:
- Check Interval slider. The default is 5 minutes. The shortest interval you can save is set by your plan: 5 minutes on Free, 1 minute on Pro and Scale. The slider only offers intervals at or above your plan’s minimum.
- Regions. The default is automatic selection. Pro and Scale can choose specific locations (at least one). Free always uses automatic selection.
4
Review HTTP settings (optional)
Expand the HTTP section to change the method, expected status codes, headers, request body, redirects and SSL verification. See Advanced options.
5
Choose notification destinations (optional)
Expand Notifications and select the destinations that should be alerted. Verified destinations are pre-selected.
6
Create the monitor
Click Create Monitor. The first check runs shortly afterwards and the monitor page shows the status, response time and the location that ran the check.
Create a monitor with the API
POST /api/monitors with a read_write API key (see Authentication):
Main request fields
The full field reference is on the Create Monitor page.
Choosing check settings
Interval
Use 5 minutes for non-critical sites and 1 minute for services where you need the fastest detection. A request below your plan’s minimum is rejected with
INTERVAL_TOO_SHORT.
Timeout
The default is 30 seconds in the dashboard and 10 seconds through the API. The maximum is 60 seconds, through the API and the dashboard. The timeout must be shorter than the check interval, so a 60 second timeout needs an interval of 2 minutes or more. A timeout that is too short causes false failures on slow endpoints; too long delays failure detection.Locations
UptimeIO checks from multiple probe locations; see Probe locations for the current list.
On Free, sending a non-empty
monitoring_regions returns 403 with code LOCATION_MONITORING_NOT_AVAILABLE.
Whichever locations you select, an incident is only opened after failures are confirmed from multiple locations. See Understanding Incidents.
Advanced options
HTTP method
HTTP method
Default
GET. Also available: POST, PUT, PATCH, DELETE, HEAD and OPTIONS. HEAD is faster because no body is downloaded.Expected status codes
Expected status codes
Default:
[200]. A check passes only when the response status is in the list. Add the codes your endpoint really returns, for example [200, 201, 204].Request headers and body
Request headers and body
Add custom headers (for example
Authorization) and a request body for POST, PUT and PATCH.Follow redirects
Follow redirects
On by default, following up to 5 redirects (
max_redirects, 0 to 10). Turn it off to detect unexpected redirects.Authentication
Authentication
Send credentials in a request header, for example
Authorization: Bearer YOUR_TOKEN. Use a dedicated, revocable credential for monitoring.Slow response threshold
Slow response threshold
Set
slow_response_threshold_ms to open a separate slow-response incident when responses exceed it. See Understanding Incidents.SSL certificate and domain expiry
SSL certificate and domain expiry
Turn on certificate and domain expiry warnings in SSL, domain & performance alerts on the monitor form. See Setting Up Alerts.
Test a monitor
After creating a monitor, use Test Now on its page to run an immediate check. The result shows success or failure, response time, status code and the location that ran it. If a test fails, check the URL, expected status codes, timeout and authentication.Limits and pausing
- Every monitor that is not deleted counts towards your plan’s monitor limit, including paused monitors. At the limit, creating a monitor returns
403with codeMONITOR_LIMIT_REACHED. Delete monitors or upgrade to free up room. - Pausing stops checks. Resuming is refused with
MONITOR_LIMIT_REACHEDwhen your plan’s limit of active monitors is reached.
Troubleshooting
Monitor shows Down but the site works
Monitor shows Down but the site works
- Timeout too short for the endpoint.
- Expected status codes do not match what the endpoint returns (the default is only
200). - A firewall or rate limiter is blocking the UptimeIO user agent
UptimeIO-Monitor/1.0 (+https://uptimeio.com/monitoring-bot). - An invalid or expired certificate on the target. HTTPS checks fail when the certificate cannot be verified.
I cannot create a monitor
I cannot create a monitor
EMAIL_NOT_VERIFIED: verify your email address.MONITOR_LIMIT_REACHED: you are at your plan limit.INTERVAL_TOO_SHORT: choose an interval at or above your plan minimum.VALIDATION_ERROR: the target or another field is invalid. The message explains which.
Test passes but an incident opened
Test passes but an incident opened
Incidents come from scheduled checks that fail and are then confirmed from multiple locations. Open the incident to see which checks failed and where.
Next steps
Understanding Incidents
How incidents are opened and resolved
Setting Up Alerts
Send alerts to email, Slack, webhooks and more
Monitor Types
Settings for each monitor type
Reading Metrics
Uptime and response time