TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/iFamishedX/HungerBridge/llms.txt
Use this file to discover all available pages before exploring further.
/v2/tps endpoint returns the server’s ticks-per-second (TPS) measurements across four time windows plus the average tick duration in milliseconds. A healthy Minecraft server runs at 20 TPS; values below 20 indicate the server is struggling to keep up with the game loop. The implementation differs slightly between platforms but the response schema is identical on both.
Request
Method:GETPath:
/v2/tps
Headers
| Header | Required | Description |
|---|---|---|
X-Auth-Key | Yes | Authentication key from config.yaml → auth.key |
Configuration
This endpoint can be disabled inconfig.yaml under v2-endpoints.tps. It is enabled by default.
Response
All numeric fields aredouble (64-bit floating point). A value of -1.0 indicates the metric is not yet available or could not be computed.
Always
true on success.Current TPS computed over approximately the last 20 ticks (roughly one second).
- Fabric: Exponential moving average (EMA) with an alpha of
1/20, updated every tick. - Paper: First element of
Bukkit.getServer().getTPS(), which is Paper’s own 1-second average.
TPS averaged over the last 1 minute.
- Fabric: EMA with an alpha of
1/1200(1200-tick / 60-second window). - Paper: Second element of
Bukkit.getServer().getTPS()(Paper’s built-in 1-minute average). Returns-1.0if the array has fewer than 2 elements.
TPS averaged over the last 5 minutes.
- Fabric: EMA with an alpha of
1/6000(6000-tick / 5-minute window). - Paper: Third element of
Bukkit.getServer().getTPS()(Paper’s built-in 5-minute average). Returns-1.0if the array has fewer than 3 elements.
TPS averaged over the last 15 minutes.
- Fabric: Reuses the 5-minute EMA value (
tps_5m), because Fabric does not expose a native 15-minute window. - Paper: Also reuses the 5-minute value (
tps[2]), becauseBukkit.getServer().getTPS()exposes only three values. Returns-1.0if unavailable.
tps_15m will equal tps_5m. The field is preserved in the schema for forward compatibility.The average duration of a single server tick in milliseconds.
- Fabric: Average of the last 100 tick durations recorded in nanoseconds, converted to milliseconds. Returns
-1.0if no samples are available yet. - Paper: Average of all values in
Bukkit.getServer().getTickTimes()(nanoseconds), converted to milliseconds by dividing by1,000,000. Returns-1.0if the array is null or empty.
50 ms (the budget for one tick at 20 TPS).Example Response
Example Response — Metrics Not Yet Available
Error Responses
| Status | error field | Cause |
|---|---|---|
401 | unauthorized | Missing or incorrect X-Auth-Key header |
403 | forbidden | Endpoint disabled via v2-endpoints.tps: false |
405 | method_not_allowed | Request method was not GET |
curl Example
On a freshly started server, the EMA windows may not have accumulated enough ticks to produce meaningful values. Fields will show
-1.0 during this warm-up period. For the 5-minute and 15-minute windows on Fabric this can take several minutes of continuous uptime.Because
tps_15m mirrors tps_5m on both platforms, treat the 15-minute value as an approximate long-window indicator rather than a precise 15-minute measurement. Use GET /v2/info to detect the platform if your client needs to surface this distinction.