API

Public monitoring API

Read the same aggregate network observations used by the live dashboard as JSON.

GET /api/monitoring

Send a GET request without credentials or query parameters. Poll no more often than every 30 seconds. The endpoint supports no configuration changes or arbitrary monitoring queries.

Availability is not network health

HTTP 200 with status "ok" means that monitoring queries completed. It does not mean that every service is healthy or the radio site is connected. HTTP 503 with status "unavailable" means that the monitoring source could not be queried or is not configured. Null means missing data; it must not be converted to zero or false.

Time and freshness

checkedAt and sampleTime are Unix timestamps in milliseconds. Each current.time and history[].time is a Unix timestamp in seconds. checkedAt records when the snapshot was collected; it does not establish freshness of every metric. History contains 288 points spaced five minutes apart. current is the final history point; top-level backhaulMode and backhaulState use a separate 30-second sample window. Successful snapshots are cached on the server for 30 seconds; unavailable snapshots for 10 seconds.

Traffic and service states

uplinkBps and downlinkBps describe aggregate ogstun traffic in bits per second, averaged over five minutes. They are not per-device throughput measurements. uplinkBytesTotal and downlinkBytesTotal are cumulative byte counters which can reset; they are not daily totals. vmUptimeSeconds is VM uptime in seconds. Service active flags report systemd state. core reports AMF/SMF scrape availability, while gnb reports successful gNB setup when the InfoAPI source is available.

Backhaul codes

backhaulMode: 0 = unknown, 1 = direct campus Ethernet, 2 = OpenWrt/WireGuard. backhaulState: 0 = unknown, 1 = direct with N2 up, 2 = WireGuard with N2 up, 3 = direct with N2 down, 4 = WireGuard with N2 down. Null means no sample. These observations do not prove that an end-device application is reachable.

Public data boundary

The payload contains aggregate subscriber and session counts, network history, Open5GS service names and states, and VM uptime. It contains no subscriber identities, SIM secrets, UE addresses, traffic destinations or raw logs. The OpenAPI document describes every response field.

Read the dashboard interpretation guide