A simple read-only REST API for your monitors and their uptime. JSON over HTTPS.
https://siteisonline.com/api/v1
Create an API key in Integrations, then send it with every request — either as a Bearer token or an X-API-Key header:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://siteisonline.com/api/v1/monitors
Requests without a valid key return 401. Keys are stored hashed; treat them like passwords.
Limits are per API key, per minute, and scale with your plan:
| Plan | Requests / minute |
|---|---|
| Free | 60 |
| Pro | 120 |
| Business | 300 |
Every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (unix time). Exceeding the limit returns 429 with a Retry-After header.
/api/v1/accountYour account summary (plan, monitor count).
/api/v1/monitorsList all your monitors.
/api/v1/monitors/{id}A single monitor with stats and 30-day uptime.
/api/v1/monitors/{id}/checksRecent check results for a monitor.
API keys have a scope: read (default) or read-write. Choose read-write when generating a key in Integrations to use these. Read-only keys get 403.
/api/v1/monitorsCreate a monitor. Body: name, url, check_type (http/https/ping/tcp/keyword/dns), optional check_interval, timeout, keyword. Plan limits + public-address checks apply.
/api/v1/monitors/{id}Update name, url, check_interval, timeout, keyword or alert_email.
/api/v1/monitors/{id}Delete a monitor.
/api/v1/monitors/{id}/pause · /resumePause or resume checks for a monitor.
curl -X POST -H "Authorization: Bearer YOUR_RW_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"My Site","url":"https://example.com","check_type":"https"}' \
https://siteisonline.com/api/v1/monitors
{
"data": [
{
"id": 123,
"name": "My Website",
"url": "https://example.com",
"check_type": "https",
"is_up": true,
"uptime_percentage": 99.98,
"average_response_time": 184,
"last_check_at": "2026-06-11 09:15:00"
}
]
}
Errors use a consistent shape and standard HTTP status codes:
{ "error": "Invalid or missing API key." }
| Status | Meaning |
|---|---|
| 200 | OK |
| 401 | Missing or invalid API key |
| 404 | Resource not found |
| 429 | Rate limit exceeded (see Retry-After) |
Questions or feedback on the API? Get in touch.