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

Réinstaller un VPS

Différé Asynchrone · 202

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

operationIdpostServerRebuild

Niveau requis
Complet
Quota
opérations lourdes, 6 appels par heure et par VPS (60 par compte)

Réinstalle le système. Tout le contenu du disque est détruit (fichiers, configuration, comptes), sans retour possible : ce qui n'est pas dans une sauvegarde ou un snapshot est perdu.

Le couple os / variant se reprend tel quel de GET /catalog/os-templates. La mémoire du VPS est comparée au minimum du template avant toute action : une réinstallation qui laisserait une machine incapable de démarrer est refusée en 409.

Les mots de passe sont générés, pas choisis, et rendus une seule fois dans cette réponse : root_password toujours, app_password en plus pour une variante applicative (variant différent de default). Ils prennent effet au démarrage du système réinstallé.

ssh_key_ids remplace les clés à poser sur la machine reconstruite. Un identifiant qui n'appartient pas au compte n'installe rien. Une clé weak est refusée (400), avant toute action.

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

  • os string

    Champ os d'une entrée de GET /catalog/os-templates

    Exemple: debian-12

    requis
  • variant string

    Champ variant de la même entrée

    facultatif
  • ssh_key_ids string[]

    Clés du compte à installer. Absent ou vide : cet appel ne touche pas aux clés.

    facultatif
Exemple de requête
{
  "os": "debian-12",
  "variant": "default",
  "ssh_key_ids": [
    "45"
  ]
}

Réponses

202

Réinstallation mise en file ; mots de passe rendus une seule fois

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.rebuild",
        "vmid": "116807",
        "description": "Réinstallation du serveur VPS-116807 avec le template Debian 12",
        "created_at": "2026-08-20T14:31:02+02:00",
        "finished_at": null
      }
    ],
    "root_password": "shfKvbnERTUP2345",
    "effective_after_reboot": true
  }
}
Champs de la réponse 12
  • data object
  • tasks object[]
  • 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

  • root_password string

    Mot de passe root généré, rendu une seule fois

  • app_password string

    Mot de passe applicatif, pour une variante autre que default

  • effective_after_reboot boolean

    parmi : 1

400

Paramètres invalides : validation_failed — os absent, ou couple os / variant inconnu du catalogue ; validation_failed — clé de ssh_key_ids marquée weak.

os absent, ou couple os / variant inconnu du catalogue

{
  "type": "https://docs.lws.fr/kvm/errors/validation-failed",
  "title": "Paramètres invalides",
  "status": 400,
  "code": "validation_failed",
  "detail": "Aucun système ne correspond à ce couple os / variant.",
  "request_id": "3f9a1c07b2e45d18",
  "errors": {
    "os": "Reprenez un couple os / variant de /catalog/os-templates."
  }
}

clé de ssh_key_ids marquée weak

{
  "type": "https://docs.lws.fr/kvm/errors/validation-failed",
  "title": "Paramètres invalides",
  "status": 400,
  "code": "validation_failed",
  "detail": "La clé SSH 45 ne respecte plus les critères actuels (type reconnu, RSA d'au moins 2048 bits) : elle ne peut pas être posée à la réinstallation.",
  "request_id": "3f9a1c07b2e45d18",
  "errors": {
    "ssh_key_ids": "Retirez la clé 45, ou remplacez-la par une clé conforme."
  }
}
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 « full » requis.",
  "request_id": "3f9a1c07b2e45d18",
  "required_level": "full"
}

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 : invalid_state — mémoire du VPS inférieure au minimum du système, ou VPS absent de la base de son hyperviseur ; task_already_running — une réinstallation est déjà en cours ; 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.

mémoire du VPS inférieure au minimum du système, ou VPS absent de la base de son hyperviseur

{
  "type": "https://docs.lws.fr/kvm/errors/invalid-state",
  "title": "Opération impossible en l'état",
  "status": 409,
  "code": "invalid_state",
  "detail": "Ce système demande au moins 7 Go de mémoire ; ce VPS en dispose de 4.",
  "request_id": "3f9a1c07b2e45d18"
}

une réinstallation est déjà en cours

{
  "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 réinstallation 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 « 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
}
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 — catalogue, clés SSH ou file de réinstallation indisponibles.

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

catalogue, clés SSH ou file de réinstallation indisponibles

{
  "type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
  "title": "Service momentanément indisponible",
  "status": 502,
  "code": "upstream_unavailable",
  "detail": "La demande de réinstallation n'a pas pu être enregistrée. Réessayez dans quelques instants.",
  "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}/rebuild
LWS_API_KEY='…'curl -X POST \  "https://panelkvm.lwspanel.com/api/v1/servers/116807/rebuild" \  -H "Authorization: Bearer $LWS_API_KEY" \  -H "Content-Type: application/json" \  -d '{"os":"debian-12","variant":"default","ssh_key_ids":["45"]}'
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/servers/116807/rebuild");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, '{"os":"debian-12","variant":"default","ssh_key_ids":["45"]}');$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.post(    "https://panelkvm.lwspanel.com/api/v1/servers/116807/rebuild",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },    json={"os": "debian-12", "variant": "default", "ssh_key_ids": ["45"]},)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/servers/116807/rebuild", {  method: "POST",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,    "Content-Type": "application/json",  },  body: JSON.stringify({"os":"debian-12","variant":"default","ssh_key_ids":["45"]}),});const data = await res.json();
lwsApiKey := "…"body := strings.NewReader(`{"os":"debian-12","variant":"default","ssh_key_ids":["45"]}`)req, _ := http.NewRequest("POST",    "https://panelkvm.lwspanel.com/api/v1/servers/116807/rebuild", body)req.Header.Set("Authorization", "Bearer "+lwsApiKey)req.Header.Set("Content-Type", "application/json")resp, err := http.DefaultClient.Do(req)