Skip to main content

HTTP Monitors

HTTP monitors check your URLs for availability and can optionally verify that the response contains expected content.

Endpoints

MethodPathDescription
GET/http_monitorsList all HTTP monitors
GET/http_monitors/:idGet a specific monitor
POST/http_monitorsCreate a monitor
PUT/http_monitors/:idUpdate a monitor
DELETE/http_monitors/:idDelete a monitor

HTTP Monitor Object

{
"id": "xyz789",
"title": "Main Website",
"url": "https://example.com",
"expected_body": "Welcome",
"alert_group_id": "abc123",
"status": "up",
"checked_at": "2024-01-15T10:35:00Z",
"external_id": "main-website",
"inserted_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}

Fields

FieldTypeDescription
titlestringName of the monitor (required)
urlstringURL to monitor (required)
alert_group_idstringAlert group to notify (required)
expected_bodystringOptional text that must appear in response
statusstringCurrent status: up, down, or pending
external_idstringYour identifier for idempotent operations

Create an HTTP Monitor

curl -X POST https://beepr.io/api/v1/http_monitors \
-H "Authorization: Bearer bpr_your_key" \
-H "Content-Type: application/json" \
-d '{
"alert_group_id": "abc123",
"title": "Main Website",
"url": "https://example.com",
"expected_body": "Welcome",
"external_id": "main-website"
}'

Filtering by Alert Group

List monitors for a specific alert group:

curl "https://beepr.io/api/v1/http_monitors?alert_group_id=abc123" \
-H "Authorization: Bearer bpr_your_key"

Idempotent Creation

If you provide an external_id and a monitor with that ID already exists, the API will update the existing monitor instead of creating a duplicate.

For the complete schema, see the OpenAPI specification.