Skip to content

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.