Uptime Monitoring
Monitor HTTP, HTTPS, and TCP endpoints from multiple locations. Know before your users do when something is down.
How Uptime Monitoring Works
Unsparing periodically requests your endpoints from multiple locations. If a check fails, Unsparing confirms from a second location before triggering an alert — no false positives.
Adding an Uptime Monitor
- Navigate to Uptime → Monitors and click Add Monitor
- Configure the monitor:
| Field | Description |
|---|---|
| Type | HTTP/HTTPS or TCP |
| URL / Host | The endpoint to monitor |
| Check Interval | 1 min, 5 min, 15 min, 1 hour |
| Expected Status | HTTP status code(s) to expect (default: 200) |
| Timeout | Maximum response time before marking as degraded |
| Keyword | Optional string to search for in the response body |
Check Types
HTTP/HTTPS
The most common check type. Unsparing makes a request to your URL and validates:
- Status code matches expectations
- Response body contains (or doesn't contain) specific keywords
- Response time is within the configured timeout
- SSL certificate is valid (for HTTPS)
TCP
For services that don't speak HTTP — databases, SSH, Redis, custom services:
- Unsparing opens a TCP connection to the specified host:port
- If the connection succeeds, the service is up
- If the connection fails or times out, the service is down
Alert Conditions
| Condition | Description |
|---|---|
| Endpoint down | No response or unexpected status code |
| Response slow | Response time exceeds threshold |
| SSL issue | Certificate expired or invalid |
| Keyword missing | Expected text not found in response |
| Recovery | Service is back up after being down |
Response Time Tracking
Unsparing tracks response times and provides:
- Average response time over 1h, 24h, 7d, 30d
- Percentiles (p50, p90, p95, p99)
- Response time graphs in the dashboard
- Degradation alerts when response time exceeds threshold
Maintenance Windows
Need to mute alerts during a deploy? Set a maintenance window:
- Go to Uptime → Monitors → [Your Monitor] → Maintenance
- Set the start and end time
- Alerts during this window are suppressed and logged separately
API Endpoints
List Uptime Monitors
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.unsparing.dev/api/v1/uptime/monitorsCreate an Uptime Monitor
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "https",
"url": "https://api.example.com/health",
"check_interval": 60,
"expected_status": [200],
"timeout": 10
}' \
https://api.unsparing.dev/api/v1/uptime/monitorsPause/Resume a Monitor
# Pause
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
https://api.unsparing.dev/api/v1/uptime/monitors/mon_abc123/pause
# Resume
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
https://api.unsparing.dev/api/v1/uptime/monitors/mon_abc123/resumePlan Limits
| Plan | Uptime Monitors |
|---|---|
| Free | 3 |
| Homelabber | Unlimited |
| Teams | Unlimited |
| Agency | Unlimited |