Skip to content

HTTP / HTTPS monitor

The HTTP monitor performs a request against a URL and asserts on the response. It’s the workhorse check type for most “is the site up?” questions.

Configuration

FieldTypeDefaultNotes
URLURLFull URL including scheme. Required.
MethodenumGETOne of GET, POST, HEAD, PUT, DELETE.
Expected statusinteger200Single HTTP status code, 100–599. For body-content assertions use the keyword monitor.
Timeoutseconds305–60.
Headersstring mapArbitrary request headers (key/value strings).
BodystringRequest body. Shown in the UI for POST and PUT.
Follow redirectsbooltrueFollow 3xx redirects up to a sane internal cap.
SSL verificationbooltrueValidate the certificate chain. Disable only for self-signed targets you control.
Authenticationobject{type: "none"}One of: none, basic (with username/password), bearer (with token). Stored alongside the monitor config — there is no separate secrets store.
Degraded thresholdmsOptional. Responses slower than this return degraded instead of up.
IP versionsarray["ipv4", "ipv6"]Which families to test. Each requested version runs independently; aggregate status is down if any fails. Cloud runners are IPv4-only — IPv6 against cloud regions is skipped.

Result data

Each check returns:

  • HTTP status code
  • Total response duration (ms)
  • DNS lookup, TCP connect, TLS handshake, TTFB breakdowns
  • Response body size (bytes)
  • Content-Type header
  • IP versions actually used during the request

Status mapping

OutcomeStatus
Response status matches expected_status and arrives under the degraded thresholdup
Response status matches but takes longer than degraded_threshold_msdegraded
Response status doesn’t match expected_statusdown
Timeout, DNS failure, TLS error, connection refuseddown

Private & internal targets

Cloud checkers block requests to private or reserved addresses — RFC 1918 ranges, localhost, link-local / cloud-metadata, CGNAT and similar. A check against a blocked or unresolvable target records an explicit down result with the block or DNS-failure reason in the error message; it never silently disappears. To monitor internal services, use a self-hosted runner.

Common patterns

Auth-protected endpoint — set Authentication to bearer and paste the token. Rotating a token in the monitor config is cleaner than maintaining a shared password.

JSON APIPOST with Content-Type: application/json in Headers, your payload in Body, and either an explicit expected status (200) or pair with a keyword monitor to assert on response body content.

Staging environments — disable SSL verification for self-signed certificates. Don’t disable it for anything you don’t control.