Skip to main content

HTTP Monitoring

HTTP monitors send real HTTP requests to your endpoints and evaluate the response against your configured expectations.

Creating an HTTP Monitor​

  1. Go to Monitors → New Monitor
  2. Select HTTP(S)
  3. Complete the configuration form

Configuration Reference​

Basic Settings​

FieldRequiredDescription
NameYesDisplay name for this monitor
URLYesFull URL including scheme (https://api.example.com/health)
MethodYesGET, POST, PUT, HEAD
Check IntervalYesHow often to check (30s, 60s, 5m, 10m, 30m)

HTTP Request Options​

FieldDefaultDescription
Request HeadersNoneCustom headers sent with each check
Request BodyEmptyBody payload for POST/PUT monitors
Timeout10sMaximum wait before failing the check
Follow RedirectsYesWhether to follow 3xx redirects
Max Redirects10Maximum redirect chain depth

Response Validation​

FieldDefaultDescription
Expected Status Code200HTTP status code required to pass
Expected Status RangeOffAccept any 2xx status (200–299)
Response Body ContainsNoneString that must appear in the response body
Response Body Not ContainsNoneString that must NOT appear in the body
Max Response TimeOffFail 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​

SymptomLikely CauseResolution
Monitor always DOWN immediatelyFirewall blocking probe IPsAllowlist PingSLA probe IP ranges
Intermittent failures from one regionRegional network issueCheck probe region breakdown in monitor detail
SSL errorsCertificate problemCheck SSL Monitoring →
Timeout on first checkCold start (Lambda, container)Increase timeout or use a warm-up endpoint
401 on authenticated endpointToken expiredUse 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.