Retrieve a VPS
GET
/api/v1/
operationIdgetServer
- Required level
- Read only
- Rate limit
- read, 3,600 calls per hour
Full record of the VPS, including its hardware configuration read from the hypervisor. If the hypervisor does not respond, status is unavailable and config is null: the record is still returned. During an intervention announced by LWS on the host server, maintenance describes it, and status is maintenance if the host server stops responding.
The record remains available even if the service is suspended or expired (enabled, expired).
The state read from the hypervisor is cached for 15 seconds: a closer call returns the same value. Any write made through the API on a VPS refreshes its state immediately.
Path parameters
-
vmidstring required -
Identifier of the VPS. It must belong to the account and be within the key's scope.
Responses
200
VPS record
{
"data": {
"vmid": "116807",
"name": "vps116807",
"node": "shp-40",
"status": "running",
"maintenance": null,
"os_template": "debian12_64",
"commercial_name": "Debian 12",
"ipv4": "31.207.34.214",
"ipv6": "2a00:7ee0:9:1:11:6807:1:1",
"additional_ips": [],
"datacenter": {
"code": "SJ1",
"city": "Nancy",
"country": "France",
"zone": "eu-france-est"
},
"purchased_at": "2025-03-14T00:00:00+01:00",
"expires_at": "2027-03-14T00:00:00+01:00",
"enabled": true,
"expired": false,
"comment": null,
"config": {
"cores": 4,
"memory": 8589934592,
"disk": 171798691840,
"uptime": 4291
}
}
}
Response fields 30
-
dataobjectrequired -
vmidstringIdentifier of the VPS
-
namestringName of the machine on the hypervisor
-
nodestringHypervisor hosting the VPS, for information only. Never requested as input, and may change during a migration.
-
statusstringPower status;
unavailableif the hypervisor did not respond;maintenanceif it does not respond during an intervention announced by LWS -
maintenanceobjectIntervention announced by LWS on the host server (service status), scheduled or in progress, whether the server responds or not;
nullif there is none -
statusstringscheduled: scheduled;in_progress: in progress -
kindstringworks: maintenance, improvement or reboot;incident: incident, disruption, slowdown or attack -
starts_atstring (date-time) -
expected_endstring (date-time)Expected end; always
nullfor an incident -
os_templatestring -
commercial_namestring -
ipv4string -
ipv6string -
additional_ipsstring[] -
datacenterobject -
codestring -
citystring -
countrystring -
zonestring -
purchased_atstring (date-time) -
expires_atstring (date-time) -
enabledbooleanfalse: service disabled -
expiredbooleantrue: service expired -
commentstringComment entered in the panel
-
configobjectConfiguration read from the hypervisor;
nullif it did not respond -
coresinteger (int64)Number of vCPUs
-
memoryinteger (int64)Allocated memory, in bytes
-
diskinteger (int64)Allocated disk size, in bytes
-
uptimeinteger (int64)Seconds since startup
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.
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
-
typestring (uri)required -
titlestringrequiredShort title, in French
-
statusinteger (int64)requiredHTTP status
-
codestringrequiredStable machine-readable code (see "Errors" in Getting started)
-
detailstringrequiredDetailed message, in French
-
request_idstringrequiredIdentifier of the request, to give to support
-
errorsobjectvalidation_failed: message per faulty parameter -
required_levelstringinsufficient_scope: level required by the operation -
task_idstringtask_already_running: task running on this VPS -
familystringrate_limited: exhausted rate limit family -
limitinteger (int64)rate_limited: hourly limit of the family -
retry_afterinteger (int64)rate_limited: seconds to wait -
lockstringserver_locked: lock set by the hypervisor (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, an operation is running, retry afterRetry-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 -
maintenanceobjectserver_maintenance: nature of the intervention, start and expected end (nullfor an incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
403
Access denied: ip_not_allowed — calling address not authorized.
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
-
typestring (uri)required -
titlestringrequiredShort title, in French
-
statusinteger (int64)requiredHTTP status
-
codestringrequiredStable machine-readable code (see "Errors" in Getting started)
-
detailstringrequiredDetailed message, in French
-
request_idstringrequiredIdentifier of the request, to give to support
-
errorsobjectvalidation_failed: message per faulty parameter -
required_levelstringinsufficient_scope: level required by the operation -
task_idstringtask_already_running: task running on this VPS -
familystringrate_limited: exhausted rate limit family -
limitinteger (int64)rate_limited: hourly limit of the family -
retry_afterinteger (int64)rate_limited: seconds to wait -
lockstringserver_locked: lock set by the hypervisor (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, an operation is running, retry afterRetry-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 -
maintenanceobjectserver_maintenance: nature of the intervention, start and expected end (nullfor an incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
404
Resource not found: vm_not_found — VPS does not exist or is outside the key's scope.
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
-
typestring (uri)required -
titlestringrequiredShort title, in French
-
statusinteger (int64)requiredHTTP status
-
codestringrequiredStable machine-readable code (see "Errors" in Getting started)
-
detailstringrequiredDetailed message, in French
-
request_idstringrequiredIdentifier of the request, to give to support
-
errorsobjectvalidation_failed: message per faulty parameter -
required_levelstringinsufficient_scope: level required by the operation -
task_idstringtask_already_running: task running on this VPS -
familystringrate_limited: exhausted rate limit family -
limitinteger (int64)rate_limited: hourly limit of the family -
retry_afterinteger (int64)rate_limited: seconds to wait -
lockstringserver_locked: lock set by the hypervisor (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, an operation is running, retry afterRetry-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 -
maintenanceobjectserver_maintenance: nature of the intervention, start and expected end (nullfor an incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
429
Rate limit exceeded: rate_limited — hourly limit of the family exhausted.
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
-
typestring (uri)required -
titlestringrequiredShort title, in French
-
statusinteger (int64)requiredHTTP status
-
codestringrequiredStable machine-readable code (see "Errors" in Getting started)
-
detailstringrequiredDetailed message, in French
-
request_idstringrequiredIdentifier of the request, to give to support
-
errorsobjectvalidation_failed: message per faulty parameter -
required_levelstringinsufficient_scope: level required by the operation -
task_idstringtask_already_running: task running on this VPS -
familystringrate_limited: exhausted rate limit family -
limitinteger (int64)rate_limited: hourly limit of the family -
retry_afterinteger (int64)rate_limited: seconds to wait -
lockstringserver_locked: lock set by the hypervisor (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, an operation is running, retry afterRetry-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 -
maintenanceobjectserver_maintenance: nature of the intervention, start and expected end (nullfor an incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
502
Dependency unreachable: upstream_unavailable — VPS inventory temporarily unavailable.
upstream_unavailable — 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
-
typestring (uri)required -
titlestringrequiredShort title, in French
-
statusinteger (int64)requiredHTTP status
-
codestringrequiredStable machine-readable code (see "Errors" in Getting started)
-
detailstringrequiredDetailed message, in French
-
request_idstringrequiredIdentifier of the request, to give to support
-
errorsobjectvalidation_failed: message per faulty parameter -
required_levelstringinsufficient_scope: level required by the operation -
task_idstringtask_already_running: task running on this VPS -
familystringrate_limited: exhausted rate limit family -
limitinteger (int64)rate_limited: hourly limit of the family -
retry_afterinteger (int64)rate_limited: seconds to wait -
lockstringserver_locked: lock set by the hypervisor (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, an operation is running, retry afterRetry-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 -
maintenanceobjectserver_maintenance: nature of the intervention, start and expected end (nullfor an incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)