API documentation Web hosting accessible to everyone Visit LWS

Get disk usage

GET /api/v1/servers/{vmid}/disk-usage

operationIdgetServerDiskUsage

Required level
Read only
Rate limit
read, 3,600 calls per hour

Actual disk usage, measured inside the VPS by the QEMU guest agent. The hypervisor only knows the allocated size of the virtual disk (disk, returned by GET /servers/{vmid}/status).

The value is aggregated over real file systems: virtual file systems (tmpfs, overlay, squashfs…) are excluded, and a device is counted only once, even if it is mounted several times.

The QEMU guest agent runs inside your system: if it is missing or stopped, the call responds 422. Install the qemu-guest-agent package and start its service to use this feature.

Path parameters

vmid string required

Identifier of the VPS. It must belong to the account and be within the key's scope.

pattern ^\d+$ Example: 116807

Responses

200

Disk usage

{
  "data": {
    "used": 6796091392,
    "total": 202655672320,
    "free": 195859580928,
    "percent": 3.4,
    "source": "qemu-guest-agent"
  }
}
Response fields 6
  • data object required
  • used integer (int64)

    Bytes used

  • total integer (int64)

    Capacity, in bytes

  • free integer (int64)

    Bytes free

  • percent number (double)

    Usage rate, in %

  • source string

    one of: qemu-guest-agent

401

Authentication refused: invalid_token — Authorization header missing or malformed, or unknown key; access_disabled — API access turned off for this account, or API service temporarily turned off by LWS.

Authorization header missing or malformed, or unknown key

{
  "type": "https://docs.lws.fr/kvm/errors/invalid-token",
  "title": "Authentification invalide",
  "status": 401,
  "code": "invalid_token",
  "detail": "Clé inconnue ou révoquée.",
  "request_id": "3f9a1c07b2e45d18"
}

API access turned off for this account, or API service temporarily turned off by LWS

{
  "type": "https://docs.lws.fr/kvm/errors/access-disabled",
  "title": "Accès API désactivé",
  "status": 401,
  "code": "access_disabled",
  "detail": "L'accès API est désactivé pour ce compte. Réactivez-le depuis la page « API / MCP » du panel.",
  "request_id": "3f9a1c07b2e45d18"
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
403

Access denied: ip_not_allowed — calling address not authorized.

{
  "type": "https://docs.lws.fr/kvm/errors/ip-not-allowed",
  "title": "Adresse non autorisée",
  "status": 403,
  "code": "ip_not_allowed",
  "detail": "L'adresse 203.0.113.10 ne figure pas parmi les adresses autorisées de ce compte.",
  "request_id": "3f9a1c07b2e45d18"
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
404

Resource not found: vm_not_found — VPS does not exist or is outside the key's scope.

{
  "type": "https://docs.lws.fr/kvm/errors/vm-not-found",
  "title": "VPS introuvable",
  "status": 404,
  "code": "vm_not_found",
  "detail": "Aucun VPS 999999 sur ce compte.",
  "request_id": "3f9a1c07b2e45d18"
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
422

Operation unavailable on this VPS: unsupported_operation — QEMU guest agent missing, stopped, or command disabled.

{
  "type": "https://docs.lws.fr/kvm/errors/unsupported-operation",
  "title": "Opération indisponible sur ce VPS",
  "status": 422,
  "code": "unsupported_operation",
  "detail": "L'occupation disque nécessite le guest agent QEMU, qui ne répond pas sur ce VPS. Vérifiez que le paquet qemu-guest-agent est installé et son service démarré.",
  "request_id": "3f9a1c07b2e45d18"
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
429

Rate limit exceeded: rate_limited — hourly limit of the family exhausted.

{
  "type": "https://docs.lws.fr/kvm/errors/rate-limited",
  "title": "Quota dépassé",
  "status": 429,
  "code": "rate_limited",
  "detail": "Quota dépassé pour les opérations de type « read » : 3600 appels par heure. Réessayez dans 37 seconde(s).",
  "request_id": "3f9a1c07b2e45d18",
  "family": "read",
  "limit": 3600,
  "retry_after": 37
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
502

Dependency unreachable: hypervisor_unreachable; upstream_unavailable — VPS inventory temporarily unavailable.

Hypervisor unreachable

{
  "type": "https://docs.lws.fr/kvm/errors/hypervisor-unreachable",
  "title": "Hyperviseur injoignable",
  "status": 502,
  "code": "hypervisor_unreachable",
  "detail": "L'hyperviseur hébergeant ce VPS n'a pas répondu. Réessayez dans quelques instants.",
  "request_id": "3f9a1c07b2e45d18"
}

VPS inventory temporarily unavailable

{
  "type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
  "title": "Service momentanément indisponible",
  "status": 502,
  "code": "upstream_unavailable",
  "detail": "Inventaire des VM indisponible.",
  "request_id": "3f9a1c07b2e45d18"
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
503

Host server under intervention: server_maintenance — host server under an intervention announced by LWS and unreachable; honor Retry-After.

{
  "type": "https://docs.lws.fr/kvm/errors/server-maintenance",
  "title": "Intervention en cours sur le serveur hôte",
  "status": 503,
  "code": "server_maintenance",
  "detail": "Le serveur hébergeant ce VPS fait l'objet d'une intervention programmée par LWS : il est momentanément inaccessible. Fin prévue : 2026-10-21T18:00:00+02:00.",
  "request_id": "3f9a1c07b2e45d18",
  "maintenance": {
    "kind": "works",
    "started_at": "2026-10-21T14:00:00+02:00",
    "expected_end": "2026-10-21T18:00:00+02:00"
  }
}
Response fields 18
  • type string (uri)

    Example: https://docs.lws.fr/kvm/errors/vm-not-found

    required
  • title string

    Short title, in French

    Example: VPS introuvable

    required
  • status integer (int64)

    HTTP status

    Example: 404

    required
  • code string

    Stable machine-readable code (see "Errors" in Getting started)

    Example: vm_not_found

    required
  • detail string

    Detailed message, in French

    Example: Aucun VPS 999999 sur ce compte.

    required
  • request_id string

    Identifier of the request, to give to support

    Example: 3f9a1c07b2e45d18

    required
  • errors object

    validation_failed: message per faulty parameter

  • required_level string

    insufficient_scope: level required by the operation

    one of: read, exploitation, full

  • task_id string

    task_already_running: task running on this VPS

    Example: tsk_000002d5

  • family string

    rate_limited: exhausted rate limit family

    one of: read, mutation, heavy

  • limit integer (int64)

    rate_limited: hourly limit of the family

  • retry_after integer (int64)

    rate_limited: seconds to wait

  • lock string

    server_locked: lock set by the hypervisor (backup, snapshot, suspended…)

    Example: snapshot

  • reason string

    server_locked: operation_in_progress, an operation is running, retry after Retry-After; suspended, the VPS is hibernating, start it first; support_notified, abnormal lock, the LWS team has been notified and is taking care of it

    one of: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: nature of the intervention, start and expected end (null for an incident)

  • kind string

    one of: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
Show the code examples and the test console
GET /servers/{vmid}/disk-usage
LWS_API_KEY='…'curl -X GET \  "https://panelkvm.lwspanel.com/api/v1/servers/116807/disk-usage" \  -H "Authorization: Bearer $LWS_API_KEY"
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/servers/116807/disk-usage");curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [    "Authorization: Bearer " . $lwsApiKey,]);$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.get(    "https://panelkvm.lwspanel.com/api/v1/servers/116807/disk-usage",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/servers/116807/disk-usage", {  method: "GET",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,  },});const data = await res.json();
lwsApiKey := "…"req, _ := http.NewRequest("GET",    "https://panelkvm.lwspanel.com/api/v1/servers/116807/disk-usage", nil)req.Header.Set("Authorization", "Bearer "+lwsApiKey)resp, err := http.DefaultClient.Do(req)