compute

GET /v1/compute/servers/{serverId}/health

Read a server's hardware and live resource usage.

All compute endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.view permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/compute/servers/{serverId}/health \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

What the machine is made of - cores, memory, disk, operating system - and how hard it is working right now: CPU, memory, disk and this month's bandwidth. Read live from the provider on every call and never stored, for the same reason the renewal is: a cached CPU reading is stale the moment it is written, and a customer looking at a usage gauge is asking about now. Every usage figure is `-1` when the provider did not answer, which is **not** the same as zero. A client must render the difference: `0%` says the machine is idle, `-1` says we could not ask. Memory and disk are byte counts with both halves of the ratio, so a screen can say "224 MB of 1 GB" rather than only a percentage. `power_state` is the provider's own word (`running`, `shut off`), carried verbatim and never rounded to a boolean. This response deliberately carries **no hostname**. The provider also states the guest hostname and the physical KVM host; both name our supplier and are never exposed to a customer. Requires `sites.view`.

Parameters

NameTypeRequiredWhat it is
serverId (path)UuidYesThe server's id, as `listComputeServers` reports it. **Ours** (UUIDv7), minted when the order row was written — never the provider's own identifier for the machine.

Response

NameTypeRequiredWhat it is
coresintegerYesVirtual CPU cores the machine is sold with.
ram_mbintegerYesMemory the machine is sold with, in megabytes.
disk_gbintegerYesPrimary disk the machine is sold with, in gigabytes.
os_namestringYesThe provider's own name for the operating system image, or `""`.
ram_used_bytesintegerYesMemory in use, in bytes. `null` when the provider did not say.
ram_total_bytesintegerYesTotal memory, in bytes. `null` when the provider did not say.
disk_used_bytesintegerYesDisk in use, in bytes. `null` when the provider did not say.
disk_total_bytesintegerYesTotal disk, in bytes. `null` when the provider did not say.
cpu_percentnumberYesProcessor in use, 0-100. `null` when the provider did not say. ⛔ **Normalised to a real percentage at the boundary, on every range.** One provider reports every non-idle CPU cla…
bandwidth_used_gbnumberYesThis month's transfer, in gigabytes. `null` when not stated.
bandwidth_allowance_gbnumberYesThe monthly transfer allowance, in gigabytes. ⭐ **The one field on this schema that may be `-1`**, meaning the allowance has no ceiling; `null` means the provider did not state…
bandwidth_overage_gbnumberYesTransfer used beyond the allowance this month, in gigabytes, as the provider states it — the figure overage charges are computed from. `null` when not stated, and a client must…
power_statestringYesThe provider's own word for the machine's state (`running`, `shut off`), verbatim and never rounded to a boolean, or `""`.

Errors this endpoint can return

401 · 403 · 404 · 422 · 429 · 503