Skip to content

Status

Status

ShipVAT exposes unauthenticated status endpoints for uptime probes and public status pages.

Health

GET /health

Returns live dependency checks for the API worker.

{
"status": "healthy",
"timestamp": "2026-06-12T12:00:00.000Z",
"environment": "production",
"cached": false,
"duration_ms": 42,
"checks": {
"database": { "name": "database", "status": "pass" },
"kv": { "name": "kv", "status": "pass" },
"sync_freshness": { "name": "sync_freshness", "status": "pass" }
}
}

healthy and degraded return HTTP 200. unhealthy returns HTTP 503 and names the failing check.

Public Status

GET /v1/status

Returns public collector freshness by region. No API key is required. Responses are cached for about 60 seconds and rate-limited by client IP.

{
"status": "degraded",
"checked_at": "2026-06-12T12:00:00.000Z",
"summary": {
"healthy": 5,
"degraded": 1,
"stale": 0,
"unknown": 1,
"total": 7
},
"regions": [
{
"region": "EU",
"status": "healthy",
"last_sync_at": "2026-06-12T02:00:00.000Z",
"last_successful_fetch": "2026-06-12T02:00:00.000Z",
"consecutive_failures": 0,
"parse_failures": 0,
"last_error": null
}
]
}

The same data powers the public status page at https://shipvat.com/status.

If collector metadata cannot be read, /v1/status returns unhealthy with an explanatory message.