Health
JARVIS exposes one public endpoint for service status. It requires no credential.
Endpoint
curl -s https://jarvis.spacekeep.dev/api/health \
-H "Accept: application/json"
Response
{
"status": "operational",
"checks": {
"core": { "ok": true, "detail": "Service responding" },
"memory": { "ok": true, "detail": "Data store reachable" },
"auth": { "ok": true, "detail": "Session service ready" }
},
"checkedAt": "2026-01-01T00:00:00.000Z"
}
Status values
The HTTP status is 200 in both cases — read the status field rather than relying on the
response code alone.
Checks
Each check is a boolean with a short human-readable detail. The endpoint reports availability only — no metrics, no configuration, no secrets.
What it does not tell you
- Which specific component behind a check is failing.
- Capacity, latency, or throughput.
- Anything about your account.
If you need detail, that is deliberate — this endpoint is public and unversioned. Raise an issue with SpaceKeep Labs support instead of probing for diagnostics.
Using it
As a liveness probe
const res = await fetch("https://jarvis.spacekeep.dev/api/health", {
headers: { Accept: "application/json" },
signal: AbortSignal.timeout(5000),
});
const { status } = await res.json();
if (status !== "operational") process.exitCode = 1;
As a readiness probe
curl -sf https://jarvis.spacekeep.dev/api/health \
| grep -q '"status":"operational"' \
&& echo ready \
|| echo not-ready
Before you depend on it
Give your probe a timeout. Individual checks are bounded, but a slow network should not turn a health check into a hang.
Responses are sent with Cache-Control: no-store, so a probe never reads a cached answer.
In the app
The same status is shown in the interface — on the landing page, on the Developer page, and in the dashboard. You do not need to call the endpoint to check.
Related
- API Overview — the rest of the API
- Global Enforcement — the difference between degraded and restricted
- Troubleshooting — what to do when things are not working