HTTP Monitor Reference
An HTTP monitor checks the status of HTTP and HTTPS endpoints. Use it to monitor websites, APIs, webhooks, or any other HTTP-accessible service.
Use cases:
- Website uptime monitoring
- API health checks
- Webhook endpoint validation
- CDN performance monitoring
- Authentication endpoint testing
Configuration
URL
Type: String (required)
Format: Full URL including protocol
The URL of the HTTP endpoint you want to monitor.
Examples:
https://openstat.ushttps://api.example.com/healthhttp://internal-service.local:8080/status
Note: We recommend using HTTPS for better security.
Method
Type: String (required)
Default: GET
The HTTP method to use when making the request to the endpoint.
Available methods:
GET— retrieve data (most common for health checks).POST— send data to create/trigger actions.PUT— update existing resources.DELETE— remove resources.HEAD— likeGETbut without response body.OPTIONS— query supported methods.PATCH— partial resource updates.TRACE— echo request for debugging.CONNECT— establish a tunnel to the server.
Common usage:
- Health checks:
GET. - API testing:
POST,PUT,DELETE. - Webhook testing:
POST.
Body
Type: String (optional)
Available for: POST, PUT, PATCH, DELETE methods
The request body to send with the HTTP request. Supports both text and binary data.
Text body examples:
{ "key": "value" }
Binary data: For binary content (e.g., images), use base64 encoding with data URI:
data:image/jpeg;base64,/9j...
The data URI is only decoded for POST requests that set Content-Type: application/octet-stream. With any other method or content type the string is sent literally.
Content type: Set the appropriate Content-Type header (e.g., application/json, application/octet-stream).
Headers
Type: Key-value pairs (optional)
Custom HTTP headers to include with your request.
Common examples:
Content-Type: application/json
Authorization: Bearer your_token_here
Accept: application/json
User-Agent: Custom-Agent/1.0
Use cases:
- Authentication — send API tokens or credentials.
- Content negotiation — specify accepted response formats.
- Custom identification — add tracking or debugging headers.
Note: openstatus automatically adds User-Agent: OpenStatus/1.0 to all requests. You can override it with a custom User-Agent header.
Up to 20 headers per monitor.
Regions
Type: Array of strings (optional)
Default: a plan-based selection (4 regions on the free plan, 6 on paid plans)
Format: Region identifiers (e.g., iad, jnb)
The geographical regions from which the HTTP request will be triggered. This allows for monitoring global availability and performance. See the Location Reference for the full list of regions and the IPs to allowlist.
Frequency
Type: String (required)
Format: Duration string (e.g., 30s, 1m, 1h)
The interval at which the HTTP monitor will perform checks. Supported frequencies:
30 seconds1 minute5 minutes10 minutes30 minutes1 hour
Response time thresholds
Timeout
Type: Duration (optional)
Default: 45 seconds
The maximum duration to wait for the HTTP request to complete. If the request exceeds this time, it is considered a failure.
Degraded
Type: Duration (optional)
The duration after which the HTTP request is considered to be performing in a degraded state. This threshold allows for proactive alerting on performance issues before a complete outage.
Retry
Type: Integer (optional)
Default: 3
The number of times the monitor will automatically retry the HTTP request upon failure before reporting a definitive error. For example: 3
Follow redirects
Type: Boolean (optional)
Default: true
Whether the checker follows HTTP redirects. When enabled, up to 10 redirects are followed and assertions run against the final response. When disabled, the first response is recorded as-is, so a 301/302 is what your status code assertions see.
Assertions
Assertions let you validate specific aspects of the HTTP response. You can define up to 10 status code, 10 body, and 10 header assertions per monitor.
Body assertions
Validate the content of the HTTP response body.
Comparisons:
Contains— the response body must include the specified string.Not Contains— the response body must not include the specified string.Equal— the response body must exactly match the specified string.Not Equal— the response body must not exactly match the specified string.Empty— the response body must be empty.Not Empty— the response body must not be empty.Greater Than/Greater Than or Equal— lexicographic comparison against the target.Less Than/Less Than or Equal— lexicographic comparison against the target.
Status code assertions
Validate the HTTP status code of the response.
Comparisons:
Equal— the status code must be exactly the specified value.Not Equal— the status code must not be the specified value.Greater Than— the status code must be greater than the specified value.Greater Than or Equal— the status code must be greater than or equal to the specified value.Less Than— the status code must be less than the specified value.Less Than or Equal— the status code must be less than or equal to the specified value.
Header assertions
Validate the presence or content of specific HTTP response headers.
Purpose: verify cache headers, check security headers (e.g., X-Frame-Options), validate content type.
Comparisons:
Contains— a header's value must include the specified string.Not Contains— a header's value must not include the specified string.Equal— a header's value must exactly match the specified string.Not Equal— a header's value must not exactly match the specified string.Empty— a header's value must be empty or the header must not be present.Not Empty— a header's value must not be empty.Greater Than/Greater Than or Equal— lexicographic comparison against the target.Less Than/Less Than or Equal— lexicographic comparison against the target.
Example use cases:
- Verify
Cache-Controlheaders are present and correct. - Check for the existence of security-related headers like
Strict-Transport-Security. - Validate the
Content-Typeheader in API responses.
OpenTelemetry
Configures the export of monitoring metrics to an OpenTelemetry-compatible observability platform.
OTLP endpoint
Type: String (optional) Protocol: HTTP only
The OTLP (OpenTelemetry Protocol) endpoint URL where collected metrics should be exported.
Example: https://otlp.example.com/v1/metrics
OTLP headers
Type: Key-value pairs (optional)
Custom headers to include when sending metrics to your OTLP endpoint. Commonly used for authentication or tenant identification.
Common example:
Authorization: Bearer <your_token>
Public
Type: Boolean
Default: false
Controls the visibility of monitor data on your public status page.
true— monitor metrics and status are visible to all visitors of your status page.false— monitor data remains private, accessible only within your openstatus dashboard.
Use cases for public visibility:
- Enhancing transparency with users regarding service health.
- Providing public API status pages.
- Displaying SaaS service availability to customers.
Related resources
- Create your first monitor — step-by-step tutorial on setting up a monitor.
- CLI reference — manage monitors programmatically from the command line.