Real-time VPS metrics (CPU/RAM/disk/net)
GET/services/:id/status
LIVE status and metrics via Virtualizor admin act=vs&vs_status=<id> (queries the
node at that moment). If this call fails or does not return the expected structure,
the periodic act=vps_stats is used. CPU percentage comes from enduser act=cpu.
Rate limit: services_status bucket — 300 req/min, separate per reseller.
ISOLATED from the other buckets.
management=basic: 409 management_unavailable (the panel is not in the API).
Error behavior: If Virtualizor is down, 502 is returned (NO graceful degradation — a partial response is meaningless for real-time metrics).
Cache: 15 s per VPS (STATUS_CACHE_TTL_SECONDS on the server). A second request
for the same VPS within this period does not go to Virtualizor. Power, rebuild, suspend,
unsuspend and terminate operations clear the cache and disable it completely for the
next 180 s, so an intermediate state during a transition (e.g. still running after stop)
does not stay cached and delay the panel.
Request
Responses
- 200
- 401
- 403
- 404
- 429
- 502
Real-time metrics
Response Headers
The key's effective limit for the services_status bucket
Number of requests remaining in the current window
Unix epoch of the start of the next window (UTC seconds)
Authentication failed — missing header, wrong credential, outside the IP whitelist, or a revoked key. No detail is leaked; all cases return a single message.
Response Headers
RFC 7617 Basic Auth challenge
Insufficient authorization — the reseller tried to access another reseller's service_id, or has insufficient scope for an endpoint requiring admin scope. The message is kept generic (ServiceOwnershipMiddleware prevents leakage).
Service not found OR no Virtualizor mapping
Per-minute limit exceeded
Response Headers
Seconds to wait before retrying after a 429 (RFC 7231 §7.1.3)
The per-minute limit defined for this key
Unix epoch of the start of the next window (UTC seconds)
Virtualizor master upstream error (timeout / 5xx)