Servers, metrics and time series

Organisation, servers, overview, which metrics have data, time series with p95 and batching, top events, sessions and the metric catalogue.

REST API referenceUpdated

Base https://serverstats.cc/api/v1. <org> is your organisation id, <server> a server id. All routes are GET and need Network.

Machine-readable: the token API is described as OpenAPI 3.1 at /api/v1/openapi.json, generated from the routes themselves. Import it into Postman or Insomnia, or generate a client from it.

RouteReturns
/orgs/<org>The organisation: name, plan, limits, usage, timezone, perms
/orgs/<org>/serversServers with game, status, agent version and agent_update
/orgs/<org>/servers/<server>One server
/orgs/<org>/servers/<server>/overviewPlayers online now, joins and playtime today, latest gauges
/orgs/<org>/servers/<server>/metricsWhich metrics and event types have data
/orgs/<org>/servers/<server>/timeseriesOne or more metrics over a range
/orgs/<org>/servers/<server>/events/topMost frequent event types
/orgs/<org>/servers/<server>/custom-eventsYour own custom.* events
/orgs/<org>/servers/<server>/sessionsSessions (pseudonymous)
/orgs/<org>/servers/<server>/instancesRoblox servers running now
/orgs/<org>/overview?range=24hAll servers: totals and one row per server (24h, 7d or 30d)
/catalog/metrics?game=minecraftThe metric catalogue for a game

Organisation

bash
curl -H "Authorization: Bearer $TOKEN" https://serverstats.cc/api/v1/orgs/$ORG

Abridged; the values in examples are illustrative:

json
{"org":{"id":"...","name":"Example Network","plan":"network","role":"owner","timezone":"UTC",
  "limits":{"servers":null,"history_days":730,"min_bucket":"1m","seats":15},
  "usage":{"servers":{"used":3,"active":3,"paused":0,"limit":null}}}}

Overview

json
{"server":{"id":"...","name":"survival","game":"minecraft","last_seen_at":"2026-10-06T09:41:20.000Z","paused":false},
 "online_now":42,"today":{"joins":311,"playtime_s":182400,"tz":"UTC"},
 "gauges":[{"key":"tick_rate","label":"TPS","unit":"tps","value":19.9,"ts":"2026-10-06T09:41:10.000Z","dims":{"window":"1m"}}]}

Metrics with data

GET .../metrics?since=<iso or ms> (default 24 hours, at most 30 days) returns metrics[] with key, type, unit, label, category, source, last_ts, points_24h, series and custom, plus events[] with type, count, last_ts, custom.

Time series

GET .../timeseries?metric=<key> with these parameters:

ParameterMeaning
metricOne metric key, or metrics=a,b,c for 1 to 12 in one call (one bad name does not fail the rest)
from, toISO 8601 or Unix ms; clamped to your plan
bucket10s (Network, up to 6 hours, within the last 7 days), 1m, 5m, 1h or 1d
aggavg, min, max, sum, last, count or p95 (exact across buckets, for histograms such as tick_time_ms)
dimskind:used,world:w or a JSON object: only series whose dimensions contain these values
series=falseOmit the series breakdown by dimension combination (top 20). It is on by default for one metric and off for the batch form
bash
curl -G -H "Authorization: Bearer $TOKEN" "https://serverstats.cc/api/v1/orgs/$ORG/servers/$SRV/timeseries" \
  --data-urlencode metric=tick_time_ms --data-urlencode agg=p95 --data-urlencode bucket=1h
json
{"metric":{"key":"tick_time_ms","type":"histogram","unit":"ms","label":"Tick time"},
 "bucket":"1h","agg":"p95","from":"2026-10-05T09:00:00.000Z","to":"2026-10-06T09:00:00.000Z",
 "points":[{"t":"2026-10-05T09:00:00.000Z","v":31.2}],"points_dims":null,"combined_across_dims":false,
 "history_limit":null}

Counters (sum, count) are summed across dimensions and combined_across_dims is true. Gauges and histograms return one series: the one matching dims, else a default (for example tick_rate uses window=1m), else the busiest. The batch form returns {bucket, from, to, history_limit, series: {a: ..., b: ...}}. On Free the 1-minute bucket is answered as 5 minutes, so read bucket from the response.

Top events and sessions

events/top?from&to returns {from, to, history_limit, events: [{type, count}]}. sessions?limit=100&open=true&from&to (limit up to 500) returns sessions[] with sid, pid, join, leave, duration_s, source_host, platform and country, and needs permission to read players.