Health Check APIs
Verify liveness and readiness of the backend and its dependencies (Hasura, Keycloak, Postgres). Used for load balancer and Kubernetes probes. No authentication required.
GET
Health check endpoints for monitoring and orchestrator probes.
GET /health/live confirms the process is running. GET /health/ready verifies dependencies (Hasura, Keycloak, Postgres) are reachable. Both work for self-hosted and cloud deployments.
Base URL: Health is mounted at
/health. If your deployment uses a path prefix (e.g. /api), use /api/health/live and /api/health/ready. For self-hosted, replace the host with your instance URL.Endpoint (Cloud)
Self-hosted Databrain Endpoint
Guide: How to check health
- Liveness — Call
GET /health/live. Expect200and{"status":"live"}. Use for liveness probes. - Readiness — Call
GET /health/ready. Expect200and{"status":"ready","checks":{...}}when all dependencies are up. Inspectchecksfor per-service status. - If any check is
DOWNorUNKNOWN, the response is503andstatusisnot_ready.
Authentication
None. Health endpoints do not require authentication.Headers
None required.Query Parameters
None.Response
GET /health/live (200 OK)
string
Always
"live" when the server responds. Indicates the process is running.GET /health/ready – Success (200 OK)
string
"ready" when all configured dependency checks pass.object
Map of service names to their health result. Keys present depend on configuration.
object
Always present. Hasura GraphQL engine health. Uses
{HASURA_ENDPOINT}/healthz. No change required on Hasura; backend uses the existing endpoint.string
"UP" when Hasura is reachable, "DOWN" when unreachable, "UNKNOWN" when HASURA_ENDPOINT is not configured.number
HTTP status from
{HASURA_ENDPOINT}/healthz. Present when a response was received. Absent on network/fetch errors.string
Present when
status is "DOWN" or "UNKNOWN". Error message or configuration hint (e.g. "HASURA_ENDPOINT not configured").object
Present only when
KEYCLOAK_SERVER_URL is set. Keycloak health via {KEYCLOAK_SERVER_URL}/health/live.string
"UP" or "DOWN".number
HTTP status from Keycloak. Present when a response was received.
string
Present when
status is "DOWN". Error message.object
Present only when
HASURA_ENDPOINT is set. Postgres reachability via Hasura strict health ({HASURA_ENDPOINT}/healthz?strict=true).string
"UP" or "DOWN".number
HTTP status from Hasura strict health. Present when a response was received.
string
Present when
status is "DOWN". Error message.GET /health/ready – Failure (503 Service Unavailable)
string
"not_ready" when one or more checks failed.object
Same structure as success. At least one entry has
status: "DOWN" or "UNKNOWN".Services summary
Examples
HTTP Status Code Summary
Notes
- Each dependency check uses a 3 second timeout.
statusCodeis omitted when the check fails due to network/connection errors (e.g.ECONNREFUSED).- For Kubernetes: use
GET /health/livefor liveness andGET /health/readyfor readiness. - Graceful shutdown: On
SIGTERMorSIGINT, the server stops accepting new connections and waits for in-flight requests to complete. If shutdown is not complete within 30 seconds, the process exits forcefully. SetterminationGracePeriodSecondsto at least 35 when using Kubernetes.

