HTTP Monitoring
HTTP monitors send real HTTP requests to your endpoints and evaluate the response against your configured expectations.
Creating an HTTP Monitor
- Go to Monitors → New Monitor
- Select HTTP(S)
- Complete the configuration form
Configuration Reference
Basic Settings
| Field | Required | Description |
|---|---|---|
| Name | Yes | Display name for this monitor |
| URL | Yes | Full URL including scheme (https://api.example.com/health) |
| Method | Yes | GET, POST, PUT, HEAD |
| Check Interval | Yes | How often to check (30s, 60s, 5m, 10m, 30m) |
HTTP Request Options
| Field | Default | Description |
|---|---|---|
| Request Headers | None | Custom headers sent with each check |
| Request Body | Empty | Body payload for POST/PUT monitors |
| Timeout | 10s | Maximum wait before failing the check |
| Follow Redirects | Yes | Whether to follow 3xx redirects |
| Max Redirects | 10 | Maximum redirect chain depth |
Response Validation
| Field | Default | Description |
|---|---|---|
| Expected Status Code | 200 | HTTP status code required to pass |
| Expected Status Range | Off | Accept any 2xx status (200–299) |
| Response Body Contains | None | String that must appear in the response body |
| Response Body Not Contains | None | String that must NOT appear in the body |
| Max Response Time | Off | Fail if response exceeds this threshold (ms) |
Common Configurations
Simple Health Check
Method: GET
URL: https://api.yourapp.com/health
Expect: 200 OK
Timeout: 10s
Authenticated API Endpoint
Method: GET
URL: https://api.yourapp.com/v1/status
Headers: Authorization: Bearer your-service-token
Expect: 200 OK
POST Endpoint Check
Method: POST
URL: https://api.yourapp.com/v1/ping
Headers: Content-Type: application/json
Body: {"ping": true}
Expect: 200 OK
Body Contains: "pong"
Redirect-Aware Check
Method: GET
URL: http://yourapp.com (HTTP)
Follow Redirects: Yes
Expect: 200 (after redirect to HTTPS)
API — Create HTTP Monitor
POST /v1/monitors
Authorization: Bearer psk_live_xxx
Content-Type: application/json
{
"name": "Production API Health",
"type": "http",
"url": "https://api.yourapp.com/health",
"method": "GET",
"interval": 60,
"timeout": 10,
"expectedStatusCode": 200,
"followRedirects": true,
"headers": {
"X-Monitor-Source": "pingsla"
},
"alertPolicyId": "pol_xxxxxxxx"
}
Troubleshooting HTTP Monitors
| Symptom | Likely Cause | Resolution |
|---|---|---|
Monitor always DOWN immediately | Firewall blocking probe IPs | Allowlist PingSLA probe IP ranges |
| Intermittent failures from one region | Regional network issue | Check probe region breakdown in monitor detail |
| SSL errors | Certificate problem | Check SSL Monitoring → |
| Timeout on first check | Cold start (Lambda, container) | Increase timeout or use a warm-up endpoint |
| 401 on authenticated endpoint | Token expired | Use a non-expiring service account token |
Probe IP Allowlist
If your endpoint is behind a firewall, allowlist these CIDR ranges:
# PingSLA Probe Workers — update periodically
52.0.0.0/8 # us-east-1 probes
54.72.0.0/13 # eu-west-1 probes
13.229.0.0/15 # ap-southeast-1 probes
157.175.0.0/16 # me-south-1 probes
note
The complete and current list of probe IPs is available at https://api.pingsla.com/v1/probe-ips.