Documentation API L’hébergement web accessible à tous Visiter LWS

Démarrer, arrêter ou redémarrer

Différé Asynchrone · 202

POST /api/v1/servers/{vmid}/power

operationIdpostServerPower

Niveau requis
Exploitation
Quota
mutation, 300 appels par heure

Démarre, arrête ou redémarre le VPS. L'opération est suivie par une tâche.

stop et reset coupent l'alimentation sans arrêt propre du système, avec risque de perte de données non écrites : préférez shutdown et reboot lorsque le système répond. Une seule action d'alimentation à la fois par VPS.

Cette requête est traitée en arrière-plan : elle répond immédiatement pendant que le travail se poursuit. Suivez-la avec les opérations de tâches ou de requêtes.

Paramètres du chemin

vmid string requis

Identifiant du VPS. Il doit appartenir au compte et à la portée de la clé.

motif ^\d+$ Exemple: 116807

Corps de la requête

  • action string

    shutdown/reboot : arrêt propre ; stop/reset : coupure brutale

    parmi : start, shutdown, reboot, stop, reset

    requis
Exemple de requête
{
  "action": "reboot"
}

Réponses

202

Demande acceptée et mise en file. Suivez la tâche renvoyée avec GET /tasks/{id}.

La requête a été acceptée, pas exécutée. La réponse contient une tâche à suivre.

{
  "data": {
    "tasks": [
      {
        "id": "tsk_000002e1",
        "status": "pending",
        "action": "server.reboot",
        "vmid": "116807",
        "description": "Demande de reboot du serveur VPS-116807",
        "created_at": "2026-08-20T14:31:02+02:00",
        "finished_at": null
      }
    ]
  }
}
Champs de la réponse 9
  • data object
  • tasks object[]

    Tâches créées ; toujours un tableau

  • id string

    Identifiant opaque

    Exemple: tsk_000002e1

  • status string

    unknown signalerait un état que l'API ne sait pas nommer

    parmi : pending, succeeded, failed, unknown

  • action string

    Type de tâche

    parmi : server.start, server.stop, server.shutdown, server.reboot, server.reset, server.rebuild, server.enable_rescue, server.disable_rescue, server.reboot_rescue, snapshot.create, snapshot.delete, snapshot.rollback, backup.create, backup.restore, iso.mount, iso.unmount, firewall.sync, firewall.unblock_port_25 TaskAction

  • vmid string
  • description string
  • created_at string (date-time)
  • finished_at string (date-time)

    null tant que la tâche court

400

Paramètres invalides : validation_failed — action hors liste.

{
  "type": "https://docs.lws.fr/kvm/errors/validation-failed",
  "title": "Paramètres invalides",
  "status": 400,
  "code": "validation_failed",
  "detail": "Paramètre « action » invalide.",
  "request_id": "3f9a1c07b2e45d18",
  "errors": {
    "action": "Valeurs acceptées : start, shutdown, stop, reset, reboot."
  }
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Authentification refusée : invalid_token — en-tête Authorization absent ou malformé, ou clé inconnue ; access_disabled — accès API coupé pour ce compte, ou service API momentanément coupé par LWS.

en-tête Authorization absent ou malformé, ou clé inconnue

{
  "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"
}

accès API coupé pour ce compte, ou service API momentanément coupé par 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"
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Accès refusé : insufficient_scope — niveau de la clé insuffisant ; ip_not_allowed — adresse d'appel non autorisée.

niveau de la clé insuffisant

{
  "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"
}

adresse d'appel non autorisée

{
  "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"
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Ressource introuvable : vm_not_found — VPS inexistant ou hors de la portée de la clé.

{
  "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"
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Conflit avec l'état courant : task_already_running — une action d'alimentation est déjà en cours sur ce VPS ; service_suspended — VPS désactivé ou expiré : seules les lectures restent possibles ; server_locked — VPS verrouillé par l'hyperviseur, voir reason ; avec operation_in_progress, Retry-After donne l'attente conseillée.

une action d'alimentation est déjà en cours sur ce VPS

{
  "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 action d'alimentation est déjà en cours sur ce VPS. Attendez qu'elle aboutisse.",
  "request_id": "3f9a1c07b2e45d18",
  "task_id": "tsk_000002d5"
}

VPS désactivé ou expiré : seules les lectures restent possibles

{
  "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 verrouillé par l'hyperviseur, voir reason ; avec operation_in_progress, Retry-After donne l'attente conseillée

{
  "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"
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Quota dépassé : rate_limited — quota horaire de la famille épuisé.

{
  "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 « mutation » : 300 appels par heure. Réessayez dans 95 seconde(s).",
  "request_id": "3f9a1c07b2e45d18",
  "family": "mutation",
  "limit": 300,
  "retry_after": 95
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Dépendance injoignable : hypervisor_unreachable ; upstream_unavailable — inventaire des VPS momentanément indisponible.

Hyperviseur injoignable

{
  "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"
}

inventaire des VPS momentanément indisponible

{
  "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"
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

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

Serveur hôte en intervention : server_maintenance — serveur hôte en intervention annoncée par LWS et injoignable ; respectez 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"
  }
}
Champs de la réponse 18
  • type string (uri)

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

    requis
  • title string

    Titre court

    Exemple: VPS introuvable

    requis
  • status integer (int64)

    Statut HTTP

    Exemple: 404

    requis
  • code string

    Code machine stable (voir « Erreurs » dans Pour commencer)

    Exemple: vm_not_found

    requis
  • detail string

    Message détaillé

    Exemple: Aucun VPS 999999 sur ce compte.

    requis
  • request_id string

    Identifiant de la requête, à communiquer au support

    Exemple: 3f9a1c07b2e45d18

    requis
  • errors object

    validation_failed : message par paramètre fautif

  • required_level string

    insufficient_scope : niveau exigé par l'opération

    parmi : read, exploitation, full

  • task_id string

    task_already_running : tâche en cours sur ce VPS

    Exemple: tsk_000002d5

  • family string

    rate_limited : famille de quota épuisée

    parmi : read, mutation, heavy

  • limit integer (int64)

    rate_limited : plafond horaire de la famille

  • retry_after integer (int64)

    rate_limited : secondes à attendre

  • lock string

    server_locked : verrou posé par l'hyperviseur (backup, snapshot, suspended…)

    Exemple: snapshot

  • reason string

    server_locked : operation_in_progress, une opération est en cours, réessayez après Retry-After ; suspended, le VPS hiberne, démarrez-le d'abord ; support_notified, verrou anormal, l'équipe LWS est prévenue et intervient

    parmi : operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance : nature de l'intervention, début et fin prévue (null pour un incident)

  • kind string

    parmi : works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
Afficher les exemples de code et la console de test
POST /servers/{vmid}/power
LWS_API_KEY='…'curl -X POST \  "https://panelkvm.lwspanel.com/api/v1/servers/116807/power" \  -H "Authorization: Bearer $LWS_API_KEY" \  -H "Content-Type: application/json" \  -d '{"action":"reboot"}'
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/servers/116807/power");curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [    "Authorization: Bearer " . $lwsApiKey,    "Content-Type: application/json",]);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"action":"reboot"}');$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.post(    "https://panelkvm.lwspanel.com/api/v1/servers/116807/power",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },    json={"action": "reboot"},)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/servers/116807/power", {  method: "POST",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,    "Content-Type": "application/json",  },  body: JSON.stringify({"action":"reboot"}),});const data = await res.json();
lwsApiKey := "…"body := strings.NewReader(`{"action":"reboot"}`)req, _ := http.NewRequest("POST",    "https://panelkvm.lwspanel.com/api/v1/servers/116807/power", body)req.Header.Set("Authorization", "Bearer "+lwsApiKey)req.Header.Set("Content-Type", "application/json")resp, err := http.DefaultClient.Do(req)