MinecraftStatusPublic server instrument · Evidence Ladder

Measured, not guessed.

Protocol sheet · read-only JSON

MinecraftStatus API

Unauthenticated, bounded observation endpoints for small integrations. Cache a result no longer than its validity boundary.

Endpoint register

GET / OPTIONS /api/status/java/{address}

Java status-handshake observation. Address may include a port.

Limit · 20 requests / 60s / client

GET / OPTIONS /api/status/bedrock/{address}

Bedrock RakNet unconnected-ping observation.

Limit · 20 requests / 60s / client

GET / OPTIONS /api/services

Redacted, time-bounded local semantic component snapshot; performs no request-path upstream work.

Limit · 60 requests / 60s / client

GET /api/health

Process liveness, exact release identity, and local component state; performs no upstream network work.

Limit · Unlimited

GET /api/v1/community/status

Local, fail-closed Discord companion heartbeat; private and no-store.

Limit · Unlimited

Evidence contract

verdict

Observation class derived from the canonical evidence code. Do not derive a different state from a nullable latency, player count, or transport error.

evidenceCode Canonical

The canonical, stable machine-readable reason for the server verdict. New integrations should branch on this closed code rather than human copy.

unknownReason Deprecated

Deprecated compatibility copy present only for Unknown server observations. It is derived from evidenceCode, never from a raw exception.

observedAt

RFC 3339 time of the bounded observation.

validUntil

RFC 3339 claim boundary. Past this time, consumers must fail the verdict closed to Unknown until they re-observe.

method

Short identifier for the network action that produced the observation.

Claim boundary

Do not poll a target faster than its returned validity window. Requests are still rate-limited, and repeated calls may return the same bounded cache entry.

Minimal response shape

{
  "verdict": "online | offline | unknown",
  "observedAt": "2026-07-15T12:00:00.000Z",
  "validUntil": "2026-07-15T12:00:30.000Z",
  "method": "java-status-handshake",
  "evidenceCode": "status_response"
}