API Operations Hub
One fast workspace for API reference, endpoint diagnostics, and runtime health checks.
Search and filter control the API catalog below and keep diagnostics focused on the endpoint you care about.
API Reference
GET /api/sitehealth — Site health aggregate
Primary site-health response with aggregate status and diagnostics.
Expected request payload: none (GET without body).
GET /api/sitehealth HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{
"ok": true,
"name": "kettlelogic-site",
"version": "2026.03",
"uptime_s": 12345,
"routes": [{"path": "/api", "ok": true}],
"timestamp": "2026-03-01T16:20:00Z"
}
curl -s http://localhost:8080/api/sitehealthGET /api/qa/run — Full QA route checks
Runs multi-route smoke checks and returns per-route pass/fail diagnostics.
Expected request payload: none (GET without body).
GET /api/qa/run HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{
"ok": true,
"summary": {"total": 7, "passed": 7, "failed": 0},
"checks": [
{"route": "/api", "ok": true, "status": 200},
{"route": "/api/sitehealth", "ok": true, "status": 200}
]
}
curl -s http://localhost:8080/api/qa/runGET /api — Baseline API ping
Fast metadata and uptime check for lightweight probes.
Expected request payload: none (GET without body).
GET /api HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{"ok": true, "service": "kettlelogic", "uptime_s": 12345}
curl -s http://localhost:8080/apiGET /api/labs — Labs payload
Validates lab route wiring and data used by interactive demo experiences.
Expected request payload: none (GET without body).
GET /api/labs HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{
"ok": true,
"games": ["kettletris", "backlog", "steamrunner"],
"featured": "kettletris"
}
curl -s http://localhost:8080/api/labsGET /api/leaderboard — Team leaderboard
Returns score + ranking payload used by game and competition widgets.
Expected request payload: none (GET without body).
GET /api/leaderboard HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{
"ok": true,
"leaders": [
{"team": "North Ops", "score": 980},
{"team": "Platform Core", "score": 910}
]
}
curl -s http://localhost:8080/api/leaderboardGET /api/health — Lightweight health
Minimal heartbeat endpoint for low-overhead checks.
Expected request payload: none (GET without body).
GET /api/health HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{"ok": true, "status": "healthy"}
curl -s http://localhost:8080/api/healthGET /api/config — Runtime contact config
Returns public runtime values needed by the contact form (for example the Turnstile site key).
Expected request payload: none (GET without body).
GET /api/config HTTP/1.1 Host: kettlelogic.com
Expected response payload:
{"turnstileSiteKey": "..."}
curl -s http://localhost:8080/api/configPOST /api/contact — Contact intake + delivery
Validates contact requests, verifies Turnstile when configured, and delivers the message through Resend.
Expected request payload:
POST /api/contact HTTP/1.1
Host: kettlelogic.com
Content-Type: application/json
{"name":"Alex","email":"alex@example.com","company":"Northwind","inquiryType":"Strategy session","message":"Need faster release governance."}
Expected response payload:
{"ok": true, "message": "Contact received"}
curl -s -X POST http://localhost:8080/api/contact -H 'Content-Type: application/json' -d '{"name":"Alex","email":"alex@example.com","inquiryType":"Strategy session","message":"Need help."}'GET /api/metrics — Prometheus metrics
Exports analytics, contact, and scrape counters in Prometheus text format.
Expected request payload: none (GET without body). Use Bearer auth when METRICS_TOKEN is configured.
GET /api/metrics HTTP/1.1 Host: kettlelogic.com Authorization: Bearer <METRICS_TOKEN>
Expected response payload:
# TYPE kl_site_events_total counter
kl_site_events_total{event="page_view",page="/"} 42
curl -s http://localhost:8080/api/metrics -H 'Authorization: Bearer $METRICS_TOKEN'GET/POST /api/echo — Request wiring validation
Use GET query echo and POST JSON echo to validate client request payloads quickly.
Expected request payloads:
GET /api/echo?ping=1 HTTP/1.1
Host: kettlelogic.com
POST /api/echo HTTP/1.1
Host: kettlelogic.com
Content-Type: application/json
{"msg":"hello"}
Expected response payloads:
{"ok": true, "query": {"ping": ["1"]}}
{"ok": true, "body": {"msg": "hello"}}
curl -s 'http://localhost:8080/api/echo?ping=1'curl -s -X POST http://localhost:8080/api/echo -H 'Content-Type: application/json' -d '{"msg":"hello"}'No API entries match this filter.
Diagnostics Console
Choose any endpoint (including /api/sitehealth and /api/qa/run) and run one shared diagnostic control.