/api/healthNo tokenLiveness and database reachability.
getHealth
Unauthenticated and outside /v1 on purpose: it is infrastructure, not API surface, and the load balancer that calls it has no credentials. Returns 503 rather than 200-with-a-status-field, because a green check on a broken service is worse than no check at all.
Responses
When status = "ok"
| Field | Type | Rules | Notes |
|---|---|---|---|
| status* | "ok" | — | — |
| database* | "reachable" | — | — |
| latency_ms* | integer | ≥ 0 | — |
| build* | object | no extra keys | Which commit, branch and environment this deployment was built from. |
| build.commit* | string | nullable | — |
| build.ref* | string | nullable | — |
| build.environment* | string | nullable | — |
| timestamp* | string | — | — |
When status = "degraded"
| Field | Type | Rules | Notes |
|---|---|---|---|
| status* | "degraded" | — | — |
| database* | "unreachable" | — | — |
| build* | object | no extra keys | Which commit, branch and environment this deployment was built from. |
| build.commit* | string | nullable | — |
| build.ref* | string | nullable | — |
| build.environment* | string | nullable | — |
| timestamp* | string | — | — |
When status = "ok"
| Field | Type | Rules | Notes |
|---|---|---|---|
| status* | "ok" | — | — |
| database* | "reachable" | — | — |
| latency_ms* | integer | ≥ 0 | — |
| build* | object | no extra keys | Which commit, branch and environment this deployment was built from. |
| build.commit* | string | nullable | — |
| build.ref* | string | nullable | — |
| build.environment* | string | nullable | — |
| timestamp* | string | — | — |
When status = "degraded"
| Field | Type | Rules | Notes |
|---|---|---|---|
| status* | "degraded" | — | — |
| database* | "unreachable" | — | — |
| build* | object | no extra keys | Which commit, branch and environment this deployment was built from. |
| build.commit* | string | nullable | — |
| build.ref* | string | nullable | — |
| build.environment* | string | nullable | — |
| timestamp* | string | — | — |