The backend is a FastAPI app. Chat is WebSocket. These HTTP routes are how you know the process is alive and which SHA it loaded. Base URL in a default source install: http://localhost:8000.

GET /healthz

Liveness. No database. 200 means the process can serve HTTP.

GET /readyz

Readiness. 200 only when every probe is green (database reachable, price table loaded, required MCP subprocesses). Otherwise 503 with the failing check named.
A 503 body lists checks with ok and detail per probe. Use this when the UI connects but turns never start.

GET /version

Build string plus the SHA this process loaded at start. It does not re-read git on each request. If you pulled new commits and did not restart uvicorn, /version stays on the old SHA.
string
App version string (0.1.0 today).
string
Loaded git SHA (or unknown if the process could not stamp one).

GET /health

Older alias still mounted. Prefer /healthz + /readyz.

GET /browserz

Browser-control diagnose. 200 when a native-host backend is registered, 503 when backend_count is 0. You can ignore this unless you are wiring the browser-control extension.

Other HTTP

Day-to-day control of projects, agents, and chat is not REST. It is the WebSocket API.