VPS.org API

Documentazione API REST

API di backup

Gestisci i backup dei server in modo programmatico. Elenca, crea, ripristina ed elimina i backup dei tuoi server.

Punti finali 3 endpoints
Percorso di base /api/v1/backups
OTTENERE /api/v1/backups/

Elenca tutti i backup

Recupera un elenco di tutti i backup sui tuoi server.

Parametri di query

Parametro Tipo Necessario Descrizione
server_id integer NO Filtra i backup in base all'ID del server
backup_type string NO Filtra per tipo: manual , automatic

Richiesta di esempio

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/backups/?server_id=12345" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/backups/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
params = {"server_id": 12345}

response = requests.get(url, headers=headers, params=params)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/backups/?server_id=12345', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const backups = await response.json();
console.log(backups);

Esempio di risposta

{
  "count": 3,
  "results": [
    {
      "id": 501,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "automatic",
      "status": "completed",
      "size_mb": 4523,
      "created_at": "2025-01-16T03:00:00Z",
      "expires_at": "2025-02-16T03:00:00Z",
      "description": "Automatic daily backup"
    },
    {
      "id": 499,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "manual",
      "status": "completed",
      "size_mb": 4456,
      "created_at": "2025-01-14T10:30:00Z",
      "expires_at": null,
      "description": "Pre-update backup"
    },
    {
      "id": 495,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "backup_type": "automatic",
      "status": "completed",
      "size_mb": 4389,
      "created_at": "2025-01-15T03:00:00Z",
      "expires_at": "2025-02-15T03:00:00Z",
      "description": "Automatic daily backup"
    }
  ]
}

Codici di stato della risposta

200 Elenco di backup recuperato con successo
401 Non autorizzato - Token di autenticazione non valido o mancante
INVIARE /api/v1/backups/

Crea backup manuale

Crea un backup manuale di un server. I backup manuali non scadono automaticamente.

Parametri del corpo della richiesta

Parametro Tipo Necessario Descrizione
server_id integer ID del server di cui eseguire il backup
description string NO Descrizione facoltativa per il backup

Richiesta di esempio

cURL
Python
JavaScript
PHP
curl -X POST "https://admin.vps.org/api/v1/backups/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": 12345,
    "description": "Pre-deployment backup"
  }'
import requests

url = "https://admin.vps.org/api/v1/backups/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "server_id": 12345,
    "description": "Pre-deployment backup"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/backups/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    server_id: 12345,
    description: 'Pre-deployment backup'
  })
});

const backup = await response.json();
console.log(backup);
$data = [
    'server_id' => 12345,
    'description' => 'Pre-deployment backup'
];

$ch = curl_init('https://admin.vps.org/api/v1/backups/');
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);

$response = curl_exec($ch);
$backup = json_decode($response, true);
curl_close($ch);

Esempio di risposta

{
  "id": 502,
  "server": {
    "id": 12345,
    "name": "web-server-01"
  },
  "backup_type": "manual",
  "status": "in_progress",
  "size_mb": null,
  "created_at": "2025-01-16T15:45:00Z",
  "expires_at": null,
  "description": "Pre-deployment backup",
  "message": "Backup is being created. This may take several minutes depending on server size."
}

Codici di stato della risposta

201 Creazione del backup avviata con successo
400 Richiesta non valida - Parametri non validi o richiesta malformata
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il server non esiste
Nota: È possibile effettuare un massimo di 10 backup manuali per server. I backup automatici vengono conservati in base ai criteri di conservazione dei backup del piano (in genere 7-30 giorni).
ELIMINARE /api/v1/backups/{backup_id}/

Elimina backup

Elimina definitivamente un backup. Questa azione non può essere annullata.

Parametri del percorso

Parametro Tipo Necessario Descrizione
backup_id integer ID di backup univoco

Richiesta di esempio

cURL
Python
JavaScript
curl -X DELETE "https://admin.vps.org/api/v1/backups/501/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

backup_id = 501
url = f"https://admin.vps.org/api/v1/backups/{backup_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)
print(response.status_code)
const backupId = 501;
const response = await fetch(`https://admin.vps.org/api/v1/backups/${backupId}/`, {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

console.log(response.status);

Codici di stato della risposta

204 Backup eliminato correttamente
401 Non autorizzato - Token di autenticazione non valido o mancante
404 Non trovato - Il backup non esiste
Avvertimento: L'eliminazione di un backup è permanente e non può essere annullata. Assicurati di non aver più bisogno di questo backup prima di eliminarlo.

Ripristino dai backup

Per ripristinare un server da un backup, utilizzare l'endpoint di ripristino dell'API Servers :

POST /api/v1/servers/{server_id}/restore/
{
  "backup_id": 501
}

Per informazioni dettagliate sul ripristino del server, vedere Documentazione API dei server.

Procedure consigliate per il backup