VPS.org API

Documentação da API REST

API de Snapshots

Tome instantâneos etiquetados de um servidor, lista-os e exclua os que você não precisa mais.

Pontos finais 4
Caminho base /api/v1/snapshots
PEGAR /api/v1/snapshots/

Listar todos os instantâneos

Devolve os instantâneos em sua conta, mais recente, 25 por página.

Permissão requerida: snapshots:list

Exemplo de solicitação

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);

Exemplo de resposta

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

Campos de resposta

Campo Tipo Descrição
uuid string Identificador de captura de dados (32 caracteres hexadecimais, sem guións)
label string Etiqueta dada quando o instantâneo foi criado
server_hostname string Nome de máquina do servidor o instantâneo foi tomado de, ou nulo se esse servidor já não existe
ready boolean Verdadeiro uma vez que o instantâneo terminou
deleting boolean Verdadeiro enquanto uma supressão está em curso
created_at datetime Hora de criação (ISO 8601, UTC)
size_gb number Tamanho comprimido em gigabytes
PEGAR /api/v1/snapshots/{uuid}/

Obter um Instantâneo

Devolve um objeto de instantâneo com os campos acima. Use-o para pesquisar pronto após criar um instantâneo.

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

Criar um Captura de Vidro

Encobre uma instantânea de um servidor implantado e retorna o novo snapshot uuid. O snapshot é listado imediatamente com configuração pronta para falso.

Permissão requerida: servers:snapshot

Parâmetros do corpo da requisição

Parâmetro Tipo Obrigatório Descrição
action string Sim Deve ser instantâneo
snapshot_label string Sim Uma etiqueta para reconhecer o instantâneo por
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"])

Exemplo de resposta

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

Códigos de status de resposta

200 A ação foi posta na fila
400 ação ou snapshot_label faltando, ou o servidor ainda não está implantado
402 Não há método de pagamento no processo, nem facturas não pagas
404 Não encontrado, ou pertence a outra conta
EXCLUIR /api/v1/snapshots/{uuid}/

Apagar uma captura de pantalla

Encobre o instantâneo para a exclusão permanente. excluir é verdadeiro até que ele se desapareça.

Permissão requerida: snapshots:delete

curl -X DELETE "https://admin.vps.org/api/v1/snapshots/3f9a1c0e5b7d4e2f8a6c1b3d5e7f9a0b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Snapshot deletion queued"
}

Códigos de status de resposta

202 Aceito: o pedido foi encadeado
404 Não encontrado, ou pertence a outra conta

Notas