Run HTTP health checks with URL monitors
Use URL monitors to track the availability of your HTTP-based services. They send a GET request to a specified URL and check for a successful response and acceptable response time.
Typical use cases include:
- Ensuring your marketing site returns a 200 OK
- Verifying your documentation site loads quickly
- Checking that your SSL certificate is still valid
- Confirming that a public pricing endpoint is reachable for customers
URL monitors are ideal for lightweight uptime monitoring. If a URL goes down, returns an unexpected status code, or responds too slowly, any configured alerts will be triggered.
Creating a URL monitor
Each URL monitor is defined by its request configuration, which includes the target URL and how its availability and performance should be validated.
- Request method: Always
GET
. - URL: The HTTP(S) URL to monitor (e.g.
https://api.example.com
). - IP family: Defaults to IPv4.
To validate the response further, you can configure:
- Response time limits: Define latency thresholds for degraded or failed states.
- Assertions: Validate the returned response status code (e.g. expect
200
).
Additional settings for URL monitors include:
- Name: Give your monitor a clear name to identify it in dashboards and alerts.
- Tags: Use tags to organize monitors across dashboards and maintenance windows.
- Scheduling strategy: Choose between parallel or round-robin execution. Learn more about scheduling strategies.
- Locations: Select one or more public or private locations to run the monitor from.
- Scheduling: Set how frequently the monitor runs (from every 10 seconds up to once every 24 hours).
- Retries: Define how failed runs should be retried. See retry strategies.
- Alerting: Configure your alert settings, alert channels, or set up webhooks for custom integrations.
CLI example
With the Checkly CLI, you can define URL monitors in TypeScript or JavaScript and manage them as code.
import { UrlMonitor, UrlAssertionBuilder } from 'checkly/constructs'
new UrlMonitor('hello-url-1', {
name: 'Hello URL',
activated: true,
request: {
method: 'GET',
url: 'https://api.checklyhq.com/v1/echo/get',
assertions: [
UrlAssertionBuilder.statusCode().equals(200),
]
}
})
const { UrlMonitor, UrlAssertionBuilder } = require('checkly/constructs')
new UrlMonitor('hello-url-1', {
name: 'Hello URL',
activated: true,
request: {
method: 'GET',
url: 'https://api.checklyhq.com/v1/echo/get',
assertions: [
UrlAssertionBuilder.statusCode().equals(200),
]
}
})
See the full Url monitor construct reference for more context.
Last updated on July 9, 2025. You can contribute to this documentation by editing this page on Github