POST /api/health/check

Run Health Check

Trigger a full health check run (startup + connectivity checks) and return the updated status summary. Broadcasts results to all connected WebSocket clients.

Overview

Triggers a full health check run including both startup checks (config, storage) and connectivity checks (LLM reachability). Returns the updated health summary.

Unlike GET /api/health which returns cached results, this endpoint actively runs all 11 checks and updates the health engine state. After completion, it broadcasts the updated health status to all connected WebSocket clients as a health_update message.

Info

Connectivity checks make network calls with a 5-second timeout (e.g. testing the Anthropic API). The response may take a few seconds.

Request Body

No request body is required.

Response

status string

Updated overall system health: healthy, degraded, or unhealthy.

check_count integer

Total number of health checks that were run.

issues array

List of check results that are not ok. Same format as GET /api/health.

last_check string

ISO 8601 timestamp of this check run.

Terminal window
curl -X POST "http://localhost:8888/api/health/check"
const response = await fetch("http://localhost:8888/api/health/check", {
method: "POST"
});
const data = await response.json();
console.log(data.status);
import requests
response = requests.post("http://localhost:8888/api/health/check")
data = response.json()
print(f"Status: {data['status']}, Issues: {len(data['issues'])}")
{
"status": "healthy",
"check_count": 11,
"issues": [],
"last_check": "2025-03-15T10:35:00+00:00"
}
Request
curl -X POST "http://localhost:8888/api/health/check" \
  -H "Content-Type: application/json"
const response = await fetch("http://localhost:8888/api/health/check", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
},
});

const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "http://localhost:8888/api/health/check",
    headers={'Content-Type':'application/json'},
)

print(response.json())
package main

import (
    "fmt"
    "net/http"
    "io"
)

func main() {
    req, _ := http.NewRequest("POST", "http://localhost:8888/api/health/check", nil)
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
Response
Send a request to see the response