VPS.org API

Documentation de l'API REST

API des serveurs

Créez, inspectez, alimentez, redimensionnez et supprimez vos serveurs VPS. Les serveurs sont identifiés par leur uuid.

Points d'extrémité 15
Chemin de base /api/v1/servers
OBTENIR /api/v1/servers/

Liste de tous les serveurs

Retourne les serveurs de votre compte, les plus récents en premier, 25 par page. Les serveurs qui sont supprimés ne sont pas inclus.

Autorisation requise: servers:list

Paramètres de requête

Paramètre Taper Requis Désignation des marchandises
page integer Numéro Page numéro, à partir de 1
page_size integer Numéro Résultats par page (par défaut 25, maximum 100)

Exemple de requête

cURL
Python
JavaScript
PHP
curl -X GET "https://admin.vps.org/api/v1/servers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for server in response.json()["results"]:
    print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = json_decode(curl_exec($ch), true);
curl_close($ch);

foreach ($data['results'] as $server) {
    echo $server['hostname'] . ' ' . $server['status'] . "\n";
}

Exemple de réponse

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
      "hostname": "web-01",
      "status": "on",
      "error_description": null,
      "location_name": "New Jersey",
      "plan_name": "1 vCPU / 2 GB RAM / 10 GB",
      "os_name": "Ubuntu",
      "ipv4_addresses": ["203.0.113.10"],
      "ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
      "created_at": "2026-07-30T03:54:14.914364Z",
      "deployed": true
    },
    {
      "uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
      "hostname": "db-01",
      "status": "queue",
      "error_description": null,
      "location_name": "New Jersey",
      "os_name": "Debian",
      "ipv4_addresses": [],
      "ipv6_addresses": [],
      "created_at": "2026-09-14T19:33:49.426508Z",
      "deployed": false
    }
  ]
}

Champs de réponse

Champ Taper Désignation des marchandises
uuid string Identifiant de serveur utilisé dans tous les autres paramètres du serveur
hostname string Nom d'hôte que vous avez choisi lors de la création du serveur
status string État actuel. Voir les valeurs d'état du serveur ci-dessous.
error_description string | null Détails de la dernière défaillance lorsque le statut est une erreur, sinon null
location_name string Nom de l'emplacement dans lequel le serveur fonctionne
os_name string Nom du système d'exploitation, sans la version
plan_name string Sommaire du plan lisible, par exemple 1 vCPU / 2 Go RAM / 10 Go
ipv4_addresses array IPv4 s'adresse comme des chaînes. Videz jusqu'à ce que le serveur soit déployé, et sur les plans sans IPv4.
ipv6_addresses array IPv6 s'adresse comme des chaînes. Videz jusqu'à ce que le serveur soit déployé.
created_at datetime Heure de création (ISO 8601, UTC)
deployed boolean Vrai une fois que la provision est terminée

Codes d'état de réponse

200 Liste des serveurs récupérée avec succès
403 Jeton API manquant ou invalide, ou le jeton manque la permission requise
POSTE /api/v1/servers/

Créer un nouveau serveur

En attente d'un nouveau serveur pour le déploiement et le renvoie immédiatement avec la file d'attente d'état. La mise à disposition se poursuit en arrière-plan : sondagez le paramètre d'état jusqu'à ce que le déploiement soit vrai.

Votre compte a besoin d'un mode de paiement sauvegardé. Selon votre historique de compte, une période temporaire de préautorisation d'environ une semaine du prix du forfait (au moins 1 USD) peut être placée sur votre carte avant la création du serveur.

Autorisation requise: servers:create

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
hostname string Oui Au moins 3 caractères. Lettres, chiffres, tirets et périodes seulement.
location_id integer Oui L'identité d'un emplacement actif depuis l'API des emplacements
plan_uuid string Oui L'uid d'un plan actif de l'API Plans
operating_system_version_uuid string Oui L'uid d'une entrée active dans la liste des versions d'un système d'exploitation
ssh_key_uuids array Numéro UUIDs de clés SSH de l'API de clés SSH à installer sur le serveur
ssh_key_ids array Numéro Des ids entiers de clés SSH, comme alternative à ssh_key_uuids. Si les deux sont envoyés, ssh_key_ids est utilisé.
ssh_key_uuid, ssh_key_id string, integer Numéro Shorthand pour une seule clé SSH
auth_method string Numéro par défaut, ou aux deux quand les clés SSH sont fournies.

Exemple de requête

cURL
Python
JavaScript
PHP
curl -X POST "https://admin.vps.org/api/v1/servers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hostname": "web-01",
    "location_id": 1,
    "plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
  }'
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
    "hostname": "web-01",
    "location_id": 1,
    "plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}

response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    hostname: 'web-01',
    location_id: 1,
    plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
    operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
    ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
  })
});

const server = await response.json();
console.log(server.uuid, server.status);
$data = [
    'hostname' => 'web-01',
    'location_id' => 1,
    'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
    'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
    'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];

$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server = json_decode(curl_exec($ch), true);
curl_close($ch);

Exemple de réponse

201 Créé avec l'objet serveur complet décrit dans Get Server Details. Les adresses et vmid sont remplies une fois le déploiement terminé.

{
  "uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
  "hostname": "web-01",
  "vmid": null,
  "status": "queue",
  "error_description": null,
  "location": {
    "id": 1,
    "name": "New Jersey",
    "country_name": "United States",
    "is_active": true
  },
  "plan": {
    "uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "cpu": 1,
    "ram": 2,
    "ram_unit": "GB",
    "disk_space": 10,
    "disk_space_total": 10240,
    "transfer": 500,
    "price": "3.50",
    "cpu_type_name": "Shared",
    "is_active": true,
    "hourly_price": "0.005",
    "monthly_price": "3.50",
    "is_gpu": false,
    "gpu_count": 0,
    "gpu_model": ""
  },
  "operating_system": {
    "id": 1,
    "name": "Ubuntu",
    "svg_icon": "<svg ...>",
    "versions": [ ... ]
  },
  "operating_system_version": {
    "uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "name": "24.04 LTS x64",
    "os_name": "Ubuntu",
    "os_svg_icon": "<svg ...>",
    "is_active": true
  },
  "ipv4_addresses": [],
  "ipv6_addresses": [],
  "deployed": false,
  "created_at": "2026-09-14T21:02:11.402113Z",
  "recent_actions": []
}

Codes d'état de réponse

201 Serveur créé et en attente pour le déploiement
400 Erreur de validation, par exemple une version inactive de système de localisation, de plan ou de système d'exploitation
402 Aucun mode de paiement au dossier, factures impayées ou autorisation préalable de la carte n'a été refusé.
403 Jeton API manquant ou invalide, ou le jeton manque la permission requise
429 Votre compte a atteint sa limite de création de serveur
OBTENIR /api/v1/servers/{uuid}/

Obtenir les détails du serveur

Retourne un serveur avec son emplacement, son plan, son système d'exploitation, ses adresses IP et les cinq actions les plus récentes.

Autorisation requise: servers:list

curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Exemple de réponse

{
  "uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
  "hostname": "web-01",
  "vmid": 1042,
  "status": "on",
  "error_description": null,
  "location": {
    "id": 1,
    "name": "New Jersey",
    "country_name": "United States",
    "is_active": true
  },
  "plan": {
    "uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
    "cpu": 1,
    "ram": 2,
    "ram_unit": "GB",
    "disk_space": 25,
    "disk_space_total": 25600,
    "transfer": 1,
    "price": "5.00",
    "cpu_type_name": "Shared",
    "is_active": true,
    "hourly_price": "0.007",
    "monthly_price": "5.00",
    "is_gpu": false,
    "gpu_count": 0,
    "gpu_model": ""
  },
  "operating_system": {
    "id": 1,
    "name": "Ubuntu",
    "svg_icon": "<svg ...>",
    "versions": [ ... ]
  },
  "operating_system_version": {
    "uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "name": "24.04 LTS x64",
    "os_name": "Ubuntu",
    "os_svg_icon": "<svg ...>",
    "is_active": true
  },
  "ipv4_addresses": [
    {
      "ip": "203.0.113.10",
      "gateway": "203.0.113.1",
      "subnet": "203.0.113.0",
      "rdns": "web-01.example.com"
    }
  ],
  "ipv6_addresses": [
    {
      "ip": "2001:db8:2:dd::f9:6b",
      "gateway": "2001:db8:2:dd::f9:1",
      "subnet": "2001:db8:2:dd::f9:0",
      "rdns": "web-01.example.com"
    }
  ],
  "deployed": true,
  "created_at": "2026-07-30T03:54:14.914364Z",
  "recent_actions": [
    {
      "id": 17028,
      "action": "create",
      "action_display": "Create",
      "description": "Server deployed with VMID 1042",
      "user_email": "you@example.com",
      "created_at": "2026-07-30T03:54:32.860854Z"
    }
  ]
}

Le balisage de l'icône SVG et la liste des versions sont raccourcis ici.

Champs de réponse

Champ Taper Désignation des marchandises
vmid integer | null Numéro de machine virtuelle, réglé pendant le déploiement
location object Objet de localisation, tel que retourné par l'API de localisation
plan object Objet Plan, tel que retourné par l'API Plans
operating_system, operating_system_version object Système d'exploitation et version installée, tel que retourné par l'API Systèmes d'exploitation
ipv4_addresses, ipv6_addresses array Un objet par adresse avec ip, passerelle, sous-net et rdns (le nom d'hôte DNS inverse)
recent_actions array Jusqu'à cinq dernières actions : id, action, action_display, description, user_email, created_at

Codes d'état de réponse

200 Informations du serveur récupérées avec succès
404 Non trouvé, ou il appartient à un autre compte
OBTENIR /api/v1/servers/{uuid}/status/

Obtenir l'état du serveur

Un appel léger pour le sondage après la création, la puissance ou la redimensionnement d'un serveur.

curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "status": "on",
  "deployed": true,
  "resizing": false
}

Valeurs de l'état du serveur

Valeur Désignation des marchandises
queue Une action (déploiement, puissance, redimensionnement, restauration) est en attente ou en cours
deploying Les serveurs créés à partir du panneau de contrôle utilisent cet état ; les serveurs créés par l'API restent en file d'attente jusqu'à ce qu'ils soient prêts.
on Courir
off Débranché
error La dernière action a échoué. Voir erreur_description.
suspended_payment Suspendu en raison de factures impayées
POSTE /api/v1/servers/{uuid}/power/

Contrôle de la puissance du serveur

Enquête sur une action de puissance. L'état du serveur change en file d'attente jusqu'à ce que l'action soit terminée.

Autorisation requise: servers:power

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
action string Oui start: puissance
shutdown: arret gracieux, forcé si l'invité ne s'arrête pas
restart: cycle de puissance dure (arrêt, puis démarrage)
stop: Actuellement, le cycle de puissance est le même que le redémarrage. Utilisez l'arrêt pour laisser un serveur hors fonction.

Exemple de requête

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "restart"}'
import requests

server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())

Exemple de réponse

{
  "message": "Server restart queued"
}

Codes d'état de réponse

200 L'action a été mise en attente
400 Action manquante ou non soutenue
402 début refusé parce que le compte a des factures impayées
404 Non trouvé, ou il appartient à un autre compte
POSTE /api/v1/servers/{uuid}/resize/

Redimensionner un serveur

Le nouveau plan ne peut pas avoir moins d'espace disque que le présent, et le corps de requête doit inclure une action définie pour redimensionner. La capacité d'hyperviseur du nouveau plan est vérifiée avant que n'importe quoi soit en file d'attente, donc une requête refusée laisse le serveur inchangé.

Le serveur est fermé pendant qu'il est redimensionné et recommencé après. Si le redimensionnement échoue, le serveur est remis sur son plan précédent et recommencé s'il était en cours d'exécution. La croissance du disque ne peut pas être annulée.

Autorisation requise: servers:resize

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
action string Oui Doit être redimensionné
new_plan_uuid string Oui Le projet de passer à
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
  "message": "Resize queued successfully"
}

Exemple de redimensionnement refusé (409):

{
  "error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}

Codes d'état de réponse

200 L'action a été mise en attente
400 Action manquante ou plan_uuid, plan invalide ou inactif, plan avec moins d'espace disque, ou plan GPU (les plans GPU ne peuvent pas être redimensionnés via l'API)
404 Non trouvé, ou il appartient à un autre compte
409 Un changement de taille ou de stockage est déjà en cours, ou il n'y a pas assez de capacité d'hyperviseur pour le nouveau plan
503 La capacité n'a pas pu être vérifiée en ce moment. Le serveur n'a pas été modifié; reessayez plus tard.
POSTE /api/v1/servers/{uuid}/reset-password/

Réinitialiser le mot de passe racine

Génére un nouveau mot de passe racine, le renvoie dans la réponse et fait la queue sur le serveur. Le nouveau mot de passe vous est également envoyé par e-mail. Le serveur doit être déployé. Aucun corps de requête n'est nécessaire.

curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Password reset queued. New password will also be emailed to you.",
  "password": "generated-password",
  "job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}

Codes d'état de réponse

200 L'action a été mise en attente
400 Le serveur n'est pas encore déployé
404 Non trouvé, ou il appartient à un autre compte
OBTENIR POSTE /api/v1/servers/{uuid}/rdns/

DNS inversé (PTR)

GET liste le nom d'hôte DNS inverse de chaque adresse IPv4 et IPv6 sur le serveur. POST le définit pour une adresse. L'envoi d'un nom d'hôte vide réinitialise l'adresse à son nom DNS inverse par défaut.

Autorisation requise: servers:update

Paramètres du corps de la requête (POST)

Paramètre Taper Requis Désignation des marchandises
ip string Oui Une adresse IPv4 ou IPv6 attribuée à ce serveur
hostname string Numéro Le nom d'hôte PTR. Laissez vide pour réinitialiser à la valeur par défaut.
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
  "message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
  "ip": "203.0.113.10",
  "hostname": "mail.example.com"
}

Obtenir la réponse :

{
  "rdns": [
    {"ip": "203.0.113.10", "hostname": "mail.example.com"},
    {"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
  ]
}

Codes d'état de réponse

400 ip manquant, ou le nom d'hôte ne peut pas être défini
404 L'adresse IP n'est pas attribuée à ce serveur
POSTE /api/v1/servers/{uuid}/exec/

Exécuter une commande sur un serveur

Exécute une commande shell à l'intérieur du serveur via l'agent invité QEMU et attend qu'il soit terminé. Le serveur doit être déployé et exécuté, et qemu-invité-agent doit être installé et exécuté dans l'invité.

Autorisation requise: servers:exec

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
command string Oui Ligne de commande avec /bin/sh -c, jusqu'à 2000 caractères
timeout integer Numéro Secondes à attendre pour la commande, 1 à 300 (par défaut 30)
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"command": "uptime", "timeout": 30}'
{
  "stdout": " 21:14:03 up 46 days,  2:10,  0 users,  load average: 0.08, 0.03, 0.01\n",
  "stderr": "",
  "exit_code": 0,
  "timed_out": false
}

Si la commande est toujours en cours d'exécution lorsque le timeout expire, la réponse est timed_out définie à true et le code exit_definitive définie à null.

Codes d'état de réponse

200 Commande terminée ou chronométrée
400 Serveur non déployé ou non en cours d'exécution, ou paramètres invalides
409 L'agent invité QEMU ne fonctionne pas sur le serveur
503 Problème de connexion temporaire. Reessayer après l'en-tête Retry-After.
SUPPRIMER /api/v1/servers/{uuid}/

Supprimer le serveur

Queue le serveur pour une suppression permanente. Le serveur disparaît immédiatement de la liste et ne peut pas être récupéré.

Autorisation requise: servers:delete

curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Server deletion queued"
}

Codes d'état de réponse

202 Acceptée : la demande a été en attente
404 Non trouvé, ou il appartient à un autre compte
OBTENIR POSTE /api/v1/ssh-keys/

Clés SSH

Stockez les clés publiques SSH dans votre compte, puis passez leurs uuids comme ssh_key_uuids lorsque vous créez un serveur. GET liste vos clés (25 par page); POST en ajoute une.

Autorisation requise: ssh-keys:list (GET), ssh-keys:create (POST)

Paramètres du corps de la requête (POST)

Paramètre Taper Requis Désignation des marchandises
name string Oui Un nom pour reconnaître la clé par, jusqu'à 100 caractères
public_key string Oui La clé publique au format OpenSSH, par exemple le contenu de id_ed25519.pub

Exemple de requête

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests

url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

with open("/home/you/.ssh/id_ed25519.pub") as f:
    data = {"name": "laptop", "public_key": f.read().strip()}

response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])

Exemple de réponse

{
  "id": 19,
  "uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
  "name": "laptop",
  "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
  "fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
  "created_at": "2026-08-23T19:16:11.547183Z",
  "last_used_at": null
}

Champs de réponse

Champ Taper Désignation des marchandises
id, uuid integer, string Identificateurs de clés. Utilisez uuid dans ssh_key_uuids et dans l'URL ci-dessous; id fonctionne dans ssh_key_ids.
fingerprint string Empreinte MD5 de la clé, calculée par la plate-forme
last_used_at datetime | null Quand la clé a été installée pour la dernière fois sur un nouveau serveur

Codes d'état de réponse

201 Clé ajoutée
400 Nom manquant, ou la clé publique n'est pas une clé publique valide SSH
OBTENIR SUPPRIMER /api/v1/ssh-keys/{uuid}/

Obtenir ou supprimer une clé SSH

GET retourne une clé avec les champs ci-dessus. DELETE la supprime de votre compte et renvoie 204 sans corps. La suppression d'une clé ne la supprime pas des serveurs déjà installés. Les clés ne peuvent pas être modifiées: supprimer et ajouter à nouveau.

Autorisation requise: ssh-keys:list (GET), ssh-keys:delete (DELETE)

curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Sauvegardes et snapshots

Créer une sauvegarde ou un instantané est également une action serveur: