Endpoints
Health Check
GET /health reports whether the engine can actually route: 200 once the pool graph is loaded, 503 while it is not. No API key required — poll it and alert on non-200.
GET
Health check
What 503 means
/health reports readiness, not liveness. It answers 200 only when the routing
graph holds pools the engine can quote against.
A 503 means the process is running and answering, but has nothing to route with —
almost always because it is still loading the pool set, or because the upstream RPC
was unavailable when it tried. Loading retries in the background, so this clears on
its own; it is “not ready yet”, not “gave up”.
This is deliberately stricter than a liveness check. An engine whose entire value
is the state it holds can be up, responsive, and useless at the same time — and a
check that only proves the process is alive reports healthy through exactly that
outage.
readyPools and totalPools, which are the useful diagnostic:
totalPools above zero with readyPools at zero means pools loaded but none passed
their readiness checks, which is a different problem from having loaded nothing.Last modified on September 2, 2026