Health check
Public liveness/readiness probe. GET /v1/health returns {status, version, checks:{database}} with 200 when healthy and 503 when degraded. No auth.
Public liveness and readiness probe for the Craftkit API. Returns 200 when all dependency checks pass and 503 when any are failing. No authentication is required.
GET /v1/healthQuick Start
curl
curl -i https://api.craftkit.dev/v1/healthNode.js
const res = await fetch('https://api.craftkit.dev/v1/health');
const health = await res.json();
const healthy = res.status === 200 && health.status === 'ok';Python
import requests
res = requests.get("https://api.craftkit.dev/v1/health")
healthy = res.status_code == 200 and res.json()["status"] == "ok"No Authorization header is needed — this endpoint is public.
Response — 200 OK
{
"status": "ok",
"version": "a1b2c3d",
"checks": {
"database": "ok"
}
}| Field | Type | Description |
|---|---|---|
status |
string | ok when every check passed, degraded when at least one failed. degraded is returned with HTTP 503. |
version |
string | Short git commit SHA of the running deployment (first 7 chars), or local when not deployed on Vercel. |
checks |
object | Per-dependency status map. Each value is ok or error. |
checks.database |
string | ok if a SELECT 1 against Postgres succeeded, error otherwise. |
When a dependency is failing, the same shape is returned with status: "degraded" and HTTP 503:
{
"status": "degraded",
"version": "a1b2c3d",
"checks": {
"database": "error"
}
}Errors
| HTTP | Code | Meaning | Fix |
|---|---|---|---|
| 503 | degraded |
One or more dependency checks failed (see checks) |
Inspect the failing check; this signals an outage, not a client error |
This endpoint never returns 4xx — it takes no input and requires no auth. Treat 200 as healthy
and 503 as degraded; the JSON body is the same shape in both cases.
Related
- Authentication — bearer token format for the rest of the API
- Provisioning (multi-tenant) — admin endpoint for tenant setup
- Errors — error envelope for the authenticated API