AIHealth¶
GET ai/health
Everything AIPing reports, plus the parts that matter when something behaves oddly rather than fails outright.
Access Control¶
Any session. The method reads no customer data.
Response Data¶
{
"ready": true,
"database": { "ok": true, "latencyMs": 1 },
"runs": { "active": 0, "limits": { "global": 50, "brand": 10, "actor": 2 } },
"knowledge": { "ready": true, "documents": 52, "chunks": 203, "failedFiles": [] },
"openrouter": { "requests": 128, "errors": 2, "lastLatencyMs": 4120, "model": "anthropic/claude-sonnet-4.5", "keyConfigured": true },
"tools": { "calls": 74, "errors": 1, "platformEnabled": true },
"platform": {
"ok": false,
"available": 15,
"missing": [ { "command": "MngGetAccountInfo", "reason": "tool \"get_account_info\"", "critical": false } ],
"missingCritical": []
},
"notifications": { "generated": 4, "delivered": 3, "suppressed": 11, "awaitingApproval": 1, "failed": 0, "fallback": 0, "suppressedBy": { "cooldown": 9, "filter": 2 } },
"maintenance": { "enabled": true, "staleRunsReleased": 0 },
"last24h": { "runs": { "completed": 126, "failed": 2 }, "cost": 0.4821 }
}
Two blocks are worth surfacing in an operations screen.
platform lists platform commands the module needs but does not see on the bus. When
it is not ok, some tools are silently unavailable and the cause is the platform build,
not the module. A non-empty missingCritical means nothing works at all.
notifications.suppressedBy explains where generated messages went. Suppressed events
are counted here rather than stored as records, so this is the only place that shows how
often a rule is firing.