Skip to main content

Health

A liveness/health probe used by BetterStack, CI, and load balancers.
Base URL: https://theroyalglow.in · Auth: Public. Unlike every other endpoint, GET /api/health does not use the { success, data } envelope — it returns its own documented HealthStatus contract and its own status codes. The response always sends Cache-Control: no-store and an X-Health-Status header. The admin app exposes an identical probe at admin.theroyalglow.in/api/health; this page documents the customer probe on theroyalglow.in.

GET /api/health

Runs three independent dependency checks (database, Redis, R2) in parallel and reports an overall status. The handler is fully guarded — each check is wrapped so the endpoint never throws. Minimum role: Public
This endpoint takes no parameters.

Response shape

Response fields

Each component check is { status: "pass" | "fail" | "skip", latencyMs: number, message?: string }.

Overall status rules

The database is the only hard dependency. A skip never degrades the overall status. So a no-keys local/dev environment (Redis and R2 unconfigured → skip) reports healthy with a 200. Only a failing database produces a 503.

Status examples

Redis and R2 unconfigured (skip); database passes → 200.

Headers

Last modified on June 29, 2026