Readiness probe
Unauthenticated **readiness** check (`GET /v1/ready`) — the deep sibling of `/health`, not a replacement for it. Where `/health` reports only that the process is serving, this one verifies the dependency every other endpoint needs. It pings the database inside a short timeout, then answers `503` (`status: degraded`) when it is unreachable and `200` (`status: ok`) otherwise. Use `/health` to ask "is the process alive?" (liveness — e.g. a restart decision) and `/ready` to ask "can it actually serve?" (readiness — e.g. load-balancer rotation or an uptime monitor). It requires no credential and returns no tenant data, but it is rate-limited per source IP, so poll it on the order of once a minute rather than continuously.
Unauthenticated readiness check (GET /v1/ready) — the deep sibling of /health, not a replacement for it. Where /health reports only that the process is serving, this one verifies the dependency every other endpoint needs. It pings the database inside a short timeout, then answers 503 (status: degraded) when it is unreachable and 200 (status: ok) otherwise. Use /health to ask "is the process alive?" (liveness — e.g. a restart decision) and /ready to ask "can it actually serve?" (readiness — e.g. load-balancer rotation or an uptime monitor). It requires no credential and returns no tenant data, but it is rate-limited per source IP, so poll it on the order of once a minute rather than continuously.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/ready"{ "status": "ok", "database": "ok"}{ "code": "validation_error", "message": "string", "details": [ { "field": "string", "issue": "string" } ]}{ "status": "ok", "database": "ok"}Liveness probe GET
Unauthenticated liveness/health check (`GET /v1/health`). Returns 200 with a minimal status document whenever the API process is serving requests. It does no tenant work, requires no credential (note the empty `security` below), and is safe to poll. It backs the deploy health-gate, `scripts/smoke.sh`, Caddy, and the Uptime Kuma status page — NOT a deep dependency (DB/provider) check.
Changelog
Every change to the API, webhooks, and SDKs — newest first.