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 } },
  "stscript": { "enabled": true, "ok": true, "problems": [], "runtimeId": "stscript-dsl-sha256:b791bd3042d168af2c5e24a402c054922be1b2dbe031e3c0ac9f2e7090415823", "referenceVersion": "reference-…", "skillVersion": "1.0.0", "toolMode": "tools", "validator": { "active": 0, "waiting": 0 }, "runs": 12, "artifacts": 9, "failedProposals": 1 },
  "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.

stscript is the state of the StScript assistant. ok: false with a reason in problems means the reference was not verified for the deployed compiler build (or was edited without rebuilding the package): the capability is off until the package is rebuilt. A growing failedProposals with the same model means the reference or the prompt drifted away from the compiler.

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.