14-day PRO trial · No credit card — Start free →
API Reference
Monitors

Monitors API

Monitor fields

FieldTypeNotes
namestringRequired, 1–100 characters
typestringHTTP, HTTPS (default), SSL, DOMAIN, TCP, PING
targetstringRequired — URL or host, up to 500 characters
intervalnumberSeconds between checks, 60–86400 (default 300)
timeoutnumberSeconds, 5–120 (default 30)
expectedStatusnumberOptional HTTP status, 100–599
keywordstringOptional text that must appear in the response
httpMethodstringOptional: GET, POST, PUT, HEAD, OPTIONS
httpHeadersobjectOptional request headers
httpBodystringOptional request body, up to 10,000 characters
isPausedbooleanUpdate only — pause or resume checks

List monitors

GET /api/v1/monitors
curl https://api.securecheap.com/api/v1/monitors \
  -H "X-API-Key: sc_live_..."

Response: { "monitors": [ ... ] }


Get a monitor

GET /api/v1/monitors/{id}

Response: { "monitor": { ... } } — 404 if it does not belong to your team.


Create a monitor

POST /api/v1/monitors
curl -X POST https://api.securecheap.com/api/v1/monitors \
  -H "X-API-Key: sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "production-api",
    "type": "HTTPS",
    "target": "https://api.example.com/health",
    "interval": 300,
    "expectedStatus": 200
  }'

Response: { "ok": true, "monitor": { ... } }. Monitor count is limited by your plan.


Update a monitor

PUT /api/v1/monitors/{id}

Send only the fields you want to change (name, target, interval, timeout, expectedStatus, keyword, isPaused). To pause:

curl -X PUT https://api.securecheap.com/api/v1/monitors/{id} \
  -H "X-API-Key: sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "isPaused": true }'

Response: { "ok": true, "monitor": { ... } }


Run a check now

POST /api/v1/monitors/{id}/check

Response: { "ok": true, "message": "Check triggered" }


Delete a monitor

DELETE /api/v1/monitors/{id}

Response: { "ok": true }