🚀 SecureCheap is live — Start free →
API Reference
Monitors

Monitors API

Monitor object

{
  "id": "mon_01HXZ3M...",
  "name": "Production API",
  "url": "https://api.example.com/health",
  "type": "http",
  "status": "up",
  "interval_seconds": 60,
  "timeout_ms": 5000,
  "locations": ["fra", "nyc", "sin"],
  "http": {
    "method": "GET",
    "expected_status": 200,
    "keyword": null,
    "follow_redirects": true
  },
  "ssl": {
    "grade": "A",
    "expiry": "2026-03-15T00:00:00Z",
    "days_remaining": 89
  },
  "uptime_24h": 100.0,
  "uptime_7d": 99.98,
  "uptime_30d": 99.95,
  "response_time_ms": 142,
  "created_at": "2024-11-01T09:00:00Z",
  "updated_at": "2025-01-15T10:00:00Z"
}

List monitors

GET /v1/monitors

Query parameters:

ParameterTypeDescription
statusstringFilter by up, down, paused
typestringFilter by http, tcp, ping
limitintegerResults per page (default: 50, max: 200)
cursorstringPagination cursor from previous response
curl -X GET "https://api.securecheap.com/v1/monitors?status=down&limit=10" \
  -H "Authorization: Bearer sc_live_xxxx"

Get a monitor

GET /v1/monitors/{id}
curl -X GET https://api.securecheap.com/v1/monitors/mon_01HXZ3M \
  -H "Authorization: Bearer sc_live_xxxx"

Create a monitor

POST /v1/monitors

Request body:

{
  "name": "Production API",
  "url": "https://api.example.com/health",
  "type": "http",
  "interval_seconds": 60,
  "locations": ["fra", "nyc"],
  "http": {
    "method": "GET",
    "expected_status": 200,
    "keyword": null,
    "follow_redirects": true,
    "timeout_ms": 5000
  }
}
curl -X POST https://api.securecheap.com/v1/monitors \
  -H "Authorization: Bearer sc_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production API",
    "url": "https://api.example.com/health",
    "type": "http",
    "interval_seconds": 60,
    "locations": ["fra", "nyc"]
  }'

Update a monitor

PATCH /v1/monitors/{id}

Send only the fields you want to change:

{
  "interval_seconds": 30,
  "locations": ["fra", "nyc", "sin"]
}

Delete a monitor

DELETE /v1/monitors/{id}

Returns 204 No Content on success.

Pause / resume

POST /v1/monitors/{id}/pause
POST /v1/monitors/{id}/resume

Check locations

Available check locations:

CodeCityRegion
fraFrankfurtEU-Central
nycNew YorkUS-East
sinSingaporeAsia-Pacific
lonLondonEU-West
sfoSan FranciscoUS-West