Skip to content

Health API

GET /api/health · GET /health

Two equivalent paths. No authentication.

curl -s https://api.venkai.fr/api/health
{"status": "ok", "database": "ok"}

It is a readiness probe, not a liveness probe

A 200 means the API is up and able to serve data. If the API is up but cannot reach its data, it returns 503:

{"detail": "database unreachable"}
Status Meaning Action
200 Ready —
503 API up, not able to serve data Treat Venkai as unavailable; degrade gracefully
no response API unreachable Treat Venkai as unavailable

/api/health is the canonical path; /health is an alias kept for compatibility and is not listed in the OpenAPI schema.

Monitoring it

curl -fsS https://api.venkai.fr/api/health >/dev/null \
  && echo "venkai ok" || echo "venkai DOWN"

Poll it from your uptime monitor, and pair it with client-side error rates: health says the service is ready, not that your particular requests succeed.

Endpoint Auth Returns
GET /api/usage ✅ Request counts by kind (remember, recall, read, admin), counted server-side
GET /api/activity ✅ Recent activity for the organization
GET /api/onboarding ✅ Onboarding checklist state for the dashboard
POST /api/telemetry ✅ Client-submitted events, opt-in
POST /api/feedback ✅ {project_id, context_id?, rating} where rating is positive or negative

/api/usage is counted server-side on every authenticated /api/ request, so it reflects real traffic. /api/telemetry only contains what clients choose to post — the two are not comparable and should not be summed.