Authentication
All REST API endpoints require a valid API key passed in the X-API-Key request header or via HTTP Bearer token.
Request Header Format
X-API-Key: up_live_a1b2c3d4e5f678901234567890abcdef
Rate Limits & Quotas
Requests are rate-limited to 120 requests per minute per API key. Rate limit status is returned in the response headers.
Header
X-RateLimit-Limit
120 requests / min
Header
X-RateLimit-Remaining
Remaining quota in window
GET
/api/v1/public/monitors
Retrieve list of all active health monitors and their live statuses.
Request Example (curl)
curl -X GET "/api/v1/public/monitors" \ -H "X-API-Key: up_live_a1b2c3d4e5f678901234567890abcdef"
Response 200 OK
{
"count": 2,
"monitors": [
{
"id": "mon-a1b2c3d4",
"name": "Production Gateway",
"check_type": "HTTP",
"target": "https://api.example.com",
"status": "UP",
"interval_seconds": 60
}
]
}POST
/api/v1/public/monitors
Programmatically provision a new HTTP, Keyword, or DNS monitor.
Create Monitor Payload
curl -X POST "/api/v1/public/monitors" \
-H "X-API-Key: up_live_a1b2c3d4e5f678901234567890abcdef" \
-H "Content-Type: application/json" \
-d '{
"name": "API Gateway",
"target": "https://api.example.com",
"check_type": "KEYWORD",
"config": {"target_keyword": "OK"}
}'Response 201 Created
{
"id": "mon-98765432",
"name": "API Gateway",
"check_type": "KEYWORD",
"target": "https://api.example.com",
"status": "UP",
"created_at": "2026-08-08T09:30:00Z"
}POST
/api/v1/public/push/{heartbeat_token}
Passive Heartbeat ping endpoint for Cron jobs, DB backups, and scheduled workers.
Cron Job Ping Example
curl -X POST "<your-origin>/api/v1/public/push/<your-token>"