Status
Status
ShipVAT exposes unauthenticated status endpoints for uptime probes and public status pages.
Health
GET /healthReturns 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/statusReturns 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.