Create a snapshot
Deferred Asynchronous · 202
POST
/api/v1/
operationIdpostSnapshot
- Required level
- Operations
- Rate limit
- heavy operations, 6 calls per hour per VPS (60 per account)
Takes a snapshot of the disk. At most three snapshots per VPS (LWS internal snapshots do not count).
The name must be alphanumeric (no spaces, hyphens or underscores) and at most 64 characters long. There is no description field. Two names are reserved: current, and any name starting with nas (lowercase), the prefix of LWS internal snapshots.
This request is processed in the background: it answers immediately while the work continues. Follow it with the task or request endpoints.
Path parameters
-
vmidstring required -
Identifier of the VPS. It must belong to the account and be within the key's scope.
Request body
application/json
-
namestringrequiredAlphanumeric name
Example request
{
"name": "avantMajPhp84"
}
Responses
202
Request accepted and queued. Track the returned task with GET /tasks/{id}.
GET /tasks/{id}.The request was accepted, not completed. The response carries a task to follow.
{
"data": {
"tasks": [
{
"id": "tsk_000002e1",
"status": "pending",
"action": "snapshot.create",
"vmid": "116807",
"description": "Création d'un snapshot du serveur VPS-116807",
"created_at": "2026-08-20T14:31:02+02:00",
"finished_at": null
}
]
}
}
Response fields 9
-
dataobject -
tasksobject[]Tasks created; always an array
-
idstringOpaque identifier
-
statusstringunknownwould indicate a state the API cannot name -
actionstringType of task
-
vmidstring -
descriptionstring -
created_atstring (date-time) -
finished_atstring (date-time)nullwhile the task is running
400
Invalid parameters: validation_failed — name missing, not alphanumeric, or too long.
validation_failed — name missing, not alphanumeric, or too long.{
"type": "https://docs.lws.fr/kvm/errors/validation-failed",
"title": "Paramètres invalides",
"status": 400,
"code": "validation_failed",
"detail": "Le nom d'un snapshot doit être alphanumérique, sans espace ni ponctuation.",
"request_id": "3f9a1c07b2e45d18",
"errors": {
"name": "Le nom d'un snapshot doit être alphanumérique, sans espace ni ponctuation."
}
}
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)
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: insufficient_scope — key level too low; ip_not_allowed — calling address not authorized.
insufficient_scope — key level too low; ip_not_allowed — calling address not authorized.key level too low
{
"type": "https://docs.lws.fr/kvm/errors/insufficient-scope",
"title": "Droits insuffisants",
"status": 403,
"code": "insufficient_scope",
"detail": "Niveau de permission « exploitation » requis.",
"request_id": "3f9a1c07b2e45d18",
"required_level": "exploitation"
}
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)
409
Conflict with the current state: quota_exceeded — limit of 3 snapshots reached; invalid_state — name already in use (case-insensitive), or reserved (current, nas prefix); task_already_running — a snapshot operation is already running; service_suspended — VPS disabled or expired: only read operations remain possible; server_locked — VPS locked by the hypervisor, see reason; with operation_in_progress, Retry-After gives the recommended wait.
quota_exceeded — limit of 3 snapshots reached; invalid_state — name already in use (case-insensitive), or reserved (current, nas prefix); task_already_running — a snapshot operation is already running; service_suspended — VPS disabled or expired: only read operations remain possible; server_locked — VPS locked by the hypervisor, see reason; with operation_in_progress, Retry-After gives the recommended wait.limit of 3 snapshots reached
{
"type": "https://docs.lws.fr/kvm/errors/quota-exceeded",
"title": "Limite atteinte",
"status": 409,
"code": "quota_exceeded",
"detail": "Ce VPS a atteint la limite de 3 snapshots. Supprimez-en un avant d'en créer un nouveau.",
"request_id": "3f9a1c07b2e45d18"
}
name already in use (case-insensitive), or reserved (current, nas prefix)
{
"type": "https://docs.lws.fr/kvm/errors/invalid-state",
"title": "Opération impossible en l'état",
"status": 409,
"code": "invalid_state",
"detail": "Le snapshot « avantMajPhp84 » existe déjà.",
"request_id": "3f9a1c07b2e45d18"
}
a snapshot operation is already running
{
"type": "https://docs.lws.fr/kvm/errors/task-already-running",
"title": "Opération déjà en cours",
"status": 409,
"code": "task_already_running",
"detail": "Une opération sur les snapshots est déjà en cours sur ce VPS. Attendez qu'elle aboutisse.",
"request_id": "3f9a1c07b2e45d18",
"task_id": "tsk_000002d5"
}
VPS disabled or expired: only read operations remain possible
{
"type": "https://docs.lws.fr/kvm/errors/service-suspended",
"title": "Service suspendu",
"status": 409,
"code": "service_suspended",
"detail": "Le VPS 116807 est expiré.",
"request_id": "3f9a1c07b2e45d18"
}
VPS locked by the hypervisor, see reason; with operation_in_progress, Retry-After gives the recommended wait
{
"type": "https://docs.lws.fr/kvm/errors/server-locked",
"title": "Serveur verrouillé",
"status": 409,
"code": "server_locked",
"detail": "Action impossible pour le moment : une sauvegarde est en cours sur le serveur. Réessayez dans quelques minutes.",
"request_id": "3f9a1c07b2e45d18",
"lock": "snapshot",
"reason": "operation_in_progress"
}
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 « heavy » sur le VPS 116807 : 6 appels par heure. Réessayez dans 214 seconde(s).",
"request_id": "3f9a1c07b2e45d18",
"family": "heavy",
"limit": 6,
"retry_after": 214
}
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: hypervisor_unreachable — existing snapshots could not be read; upstream_unavailable — request not recorded on the hypervisor.
hypervisor_unreachable — existing snapshots could not be read; upstream_unavailable — request not recorded on the hypervisor.existing snapshots could not be read
{
"type": "https://docs.lws.fr/kvm/errors/hypervisor-unreachable",
"title": "Hyperviseur injoignable",
"status": 502,
"code": "hypervisor_unreachable",
"detail": "Les snapshots de ce VPS n'ont pas pu être lus, la demande est donc refusée.",
"request_id": "3f9a1c07b2e45d18"
}
request not recorded on the hypervisor
{
"type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
"title": "Service momentanément indisponible",
"status": 502,
"code": "upstream_unavailable",
"detail": "La demande n'a pas pu être enregistrée sur l'hyperviseur. Réessayez dans quelques instants.",
"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)
503
Host server under intervention: server_maintenance — host server under an intervention announced by LWS and unreachable; honor Retry-After.
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
-
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)