HTTP Monitors
HTTP monitors check your URLs for availability and can optionally verify that the response contains expected content.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /http_monitors | List all HTTP monitors |
| GET | /http_monitors/:id | Get a specific monitor |
| POST | /http_monitors | Create a monitor |
| PUT | /http_monitors/:id | Update a monitor |
| DELETE | /http_monitors/:id | Delete 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
| Field | Type | Description |
|---|---|---|
title | string | Name of the monitor (required) |
url | string | URL to monitor (required) |
alert_group_id | string | Alert group to notify (required) |
expected_body | string | Optional text that must appear in response |
status | string | Current status: up, down, or pending |
external_id | string | Your 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.