Base URLs

All endpoints accept and return application/json unless otherwise noted (the /health probe returns plain text).

Authentication

Every protected endpoint is authenticated with a bearer JWT:
App-user tokens are issued by POST /auth/token — a partner platform’s backend authenticates as its service account and exchanges a worker’s phone number (and, on first contact, an id-proof) for a short-lived app JWT:
Response 200 — POST /auth/token
Admin and service tokens are minted by Keycloak via OIDC. See the Authentication guide for the full token lifecycle, claims, and renewal model.

Public endpoints (no auth required)

POST /auth/token itself is not public — the caller must present a platform service-account bearer token.

Common Headers

Request Headers

Response Headers


Request Format


Response Envelope

Successful responses return the resource (or a list envelope) as JSON directly — there is no outer success wrapper. Error responses use a consistent error envelope — see the Error Reference.

Pagination

List endpoints (e.g. /accounts, /consultations, /insurance_policies) use offset-based pagination via two optional query parameters: Paginated responses are a flat envelope carrying the page and the total count:
The data array holds the page; total is the full count matching the query (use it with limit/offset to drive page controls).

Health Check

Returns 200 OK with no authentication required. Used by load balancers, uptime monitors, and Kubernetes readiness probes. The body is a plain-text status string.

Where to Go Next

Authentication

Bearer JWTs, POST /auth/token, claims, and token renewal.

Error Reference

The error envelope, HTTP status conventions, and the per-domain code catalogue.

Modules

Endpoint-by-endpoint reference for every domain (users, accounts, consultations, insurance, and more).