For authentication headers, API keys, and common error format see API General.
Health Check
Public endpoint — no authentication required.
GET /health
Returns the current API status.
Response
{
"status": "ok"
}Status Monitor
Public endpoints for viewing monitored service status. No authentication required. Rate-limited: 60 req/min per IP (graph: 30 req/min).
Status values: up · down · degraded · unknown
List Services
GET /status
Returns all enabled monitored services with their current status.
Response
{
"services": [
{
"id": "a1b2c3d4e5",
"publicName": "API Gateway",
"status": "up",
"lastCheckedAt": "2026-04-10T11:00:00.000Z"
}
]
}Overall Summary
GET /status/summary
Aggregate platform health across all monitored services.
Response
{
"overall": "operational",
"total": 5,
"up": 4,
"down": 0,
"degraded": 1
}overall values: operational · degraded · major_outage
Service Detail
GET /status/:id
Single service status with 30-day uptime percentage.
| Param | Type | Description |
|---|---|---|
id | string | Service id |
Response
{
"id": "a1b2c3d4e5",
"publicName": "API Gateway",
"status": "up",
"lastCheckedAt": "2026-04-10T11:00:00.000Z",
"uptime30d": 99.87
}Service Graph
GET /status/:id/graph
Time-series graph data. Auto-selects granularity based on date range:
| Range | Granularity |
|---|---|
| ≤ 2 days | Hourly |
| ≤ 14 days | 6-hour |
| > 14 days | Daily |
| Param | Type | Description |
|---|---|---|
id | string | Service id |
from | string | ISO 8601 start date (query) |
to | string | ISO 8601 end date (query) |
Max range: 90 days. Rate limit: 30 req/min per IP.
Response
{
"granularity": "hour",
"from": "2026-04-09 12:00:00",
"to": "2026-04-10 12:00:00",
"points": [
{ "t": "2026-04-09 12:00:00", "up": 58, "down": 2, "avgMs": 42, "uptimePct": 96.67 }
],
"timeline": [
{ "from": "2026-04-09 12:00:00", "to": "2026-04-09 14:32:00", "status": "up" },
{ "from": "2026-04-09 14:32:00", "to": "2026-04-09 14:58:00", "status": "down" }
]
}