Skip to content

Status

GET /v1/status reports the health of the service. It is cached for a few seconds (cache-control: public, max-age=...; the x-status-cache header is HIT or MISS), so polling it faster than that gains nothing.

Terminal window
curl "https://api.chizumulu.net/v1/status"
Response
{
"status": "operational",
"collector": {
"status": "connected",
"heartbeatAt": "2026-09-19T15:30:00.000Z",
"whatsapp": {
"status": "connected",
"lastConnectedAt": "2026-09-19T12:46:29.796Z",
"lastDisconnectedAt": "2026-09-19T12:46:23.596Z",
"lastDisconnectReason": "stream_error",
"streamRetryCount": 0
},
"version": {
"collector": "0.1.0",
"baileys": "6.7.24"
},
"processStartedAt": "2026-09-19T08:35:51.896Z",
"storageFailureActive": false,
"lastStorageFailureAt": null
},
"delivery": {
"status": "healthy",
"queueDepth": 0,
"oldestPendingAgeSeconds": null,
"quarantinedCount": 0,
"lastSuccessfulIngestAt": "2026-09-19T15:26:31.207Z"
},
"data": {
"lastUpdateAt": "2026-09-19T15:24:20.000Z",
"freshness": "fresh"
},
"processing": {
"registeredThrough": 6,
"latestObservation": 6,
"lag": 0,
"pending": 0,
"awaitingAi": 1,
"failed": 0
},
"media": {
"status": "idle",
"reasons": [],
"stored": 0,
"pending": 0,
"failed": 0,
"skipped": 0,
"oldestPendingAt": null,
"oldestPendingAgeSeconds": null
}
}

The most important design rule: no new posts does not mean something is broken. The API reports them separately.

Block Answers Values
data.freshness Has the source published something recently? fresh (a message within the last 15 minutes) or quiet
collector.status Is the collector reporting in? connected, degraded or unavailable
delivery.status Is what the collector saw reaching the API? healthy or degraded
status (top level) Overall operational when the collector is connected and delivery is healthy, otherwise degraded
  • data.freshness: "quiet" with status: "operational" is normal: the collector is fine, nothing new was published.
  • degraded or unavailable means the collection side has a problem. Data already stored stays readable; the read routes keep working.
  • collector.whatsapp describes the collector’s own connection to the source (status, last connect and disconnect times, a coarse lastDisconnectReason and streamRetryCount).
  • delivery describes the collector’s outbox: queueDepth, the age of the oldest waiting item, quarantinedCount (items that could not be delivered; any value above zero makes delivery degraded) and the last successful ingest.
  • processing is informational and never changes the top-level status. registeredThrough and latestObservation are observation ids, lag is the difference, and pending, awaitingAi and failed count unfinished observations.
  • media describes retention of images that came with posts. Retained images are not served by this API; only league standings tables in them can be read into structured data (see facts read from an image). If it cannot be computed it is {"status":"unavailable"}.