VPS.org API

Documentation de l'API REST

API Snapshots

Prenez des instantanés étiquetés d'un serveur, listez-les et supprimez ceux dont vous n'avez plus besoin.

Points d'extrémité 4
Chemin de base /api/v1/snapshots
OBTENIR /api/v1/snapshots/

Liste de tous les instantanés

Retourne les instantanés de votre compte, les plus récents en premier, 25 par page.

Autorisation requise: snapshots:list

Exemple de requête

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

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

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

const data = await response.json();
console.log(data.results);

Exemple de réponse

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "3f9a1c0e5b7d4e2f8a6c1b3d5e7f9a0b",
      "label": "before-upgrade",
      "server_hostname": "web-01",
      "ready": true,
      "deleting": false,
      "created_at": "2026-09-14T18:30:00.000000Z",
      "size_gb": 3.4
    }
  ]
}

Champs de réponse

Champ Taper Désignation des marchandises
uuid string Identificateur de capture d'images (32 caractères hexadécimaux, pas de tirets)
label string Étiquette donnée lors de la création de l'instantané
server_hostname string Nom d'hôte du serveur l'instantané a été pris à partir, ou null si ce serveur n'existe plus
ready boolean Vrai une fois que l'instantané a terminé
deleting boolean Vrai alors qu'une suppression est en cours
created_at datetime Heure de création (ISO 8601, UTC)
size_gb number Taille comprimée en gigaoctets
OBTENIR /api/v1/snapshots/{uuid}/

Obtenez un instantané

Renvoie un objet instantané avec les champs ci-dessus. Utilisez-le pour effectuer un sondage prêt après avoir créé un instantané.

curl -X GET "https://admin.vps.org/api/v1/snapshots/3f9a1c0e5b7d4e2f8a6c1b3d5e7f9a0b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
POSTE /api/v1/servers/{uuid}/snapshot/

Créer une capture d'instantané

Requête un instantané d'un serveur déployé et renvoie l'uid du nouveau snapshot. L'instantané est listé immédiatement avec prêt à false.

Autorisation requise: servers:snapshot

Paramètres du corps de la requête

Paramètre Taper Requis Désignation des marchandises
action string Oui Doit être instantané
snapshot_label string Oui Une étiquette pour reconnaître l'instantané par
cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/snapshot/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "snapshot", "snapshot_label": "before-upgrade"}'
import requests

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

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

Exemple de réponse

{
  "message": "Snapshot queued successfully",
  "snapshot_uuid": "3f9a1c0e5b7d4e2f8a6c1b3d5e7f9a0b"
}

Codes d'état de réponse

200 L'action a été mise en attente
400 action ou snapshot_label manquant, ou le serveur n'est pas encore déployé
402 Aucun mode de paiement au dossier, ni factures impayées
404 Non trouvé, ou il appartient à un autre compte
SUPPRIMER /api/v1/snapshots/{uuid}/

Supprimer un snapshot

Queue l'instantané pour suppression permanente. suppression est vrai jusqu'à ce qu'il soit parti.

Autorisation requise: snapshots:delete

curl -X DELETE "https://admin.vps.org/api/v1/snapshots/3f9a1c0e5b7d4e2f8a6c1b3d5e7f9a0b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Snapshot 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

Annexe