Current host resources for core and every poller reporting telemetry.
const url = 'https://example.com/api/v1/system/hosts';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/system/hosts \ --header 'Authorization: Bearer <token>'Reads st.admin opportunistically rather than taking the Admin extractor: core is answering
the request, so it can always report itself. Skeleton mode returns just core rather than 503.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Core plus every poller reporting host telemetry
Core plus every poller that reports host telemetry.
object
One self-monitored host: current resource values for the core process’s host (role="core") or
a poller’s (role="poller").
object
Current CPU utilization % (0–100); null when no sample yet.
Highest watched-filesystem used %, for at-a-glance columns; null when none has a capacity.
Current per-watched-filesystem usage.
Usage of one watched filesystem (or a store-size proxy, e.g. the PostgreSQL database size which
core cannot statvfs). size_bytes == 0 means “total capacity unknown” — the value is a bare
growing size (used only), not a fraction of a disk.
object
Friendly mount label (e.g. root, metrics, database) — a stable, low-cardinality name,
never a raw device path, so it is safe as a TSDB label.
Total filesystem capacity in bytes; 0 when unknown (capacity not measurable).
Bytes in use on the filesystem (or the store’s size when size_bytes == 0).
core or the poller id.
Current 1-minute load average; null when no sample / unavailable on the platform.
Total physical memory, bytes; null when no sample.
Memory in use, bytes; null when no sample.
Memory-used %, derived; null when total is unknown.
Whether the source is currently reporting (core is always online; a poller within its heartbeat window).
Pool the poller serves; null for core.
"core" or "poller".
Examplegenerated
{ "hosts": [ { "cpu_pct": 1, "disk_used_pct": 1, "disks": [ { "mount": "example", "size_bytes": 1, "used_bytes": 1 } ], "instance": "example", "load1": 1, "mem_total_bytes": 1, "mem_used_bytes": 1, "mem_used_pct": 1, "online": true, "pool": "example", "role": "example" } ]}No valid bearer token
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks the view permission
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}