VPS.org API

Documentatio API REST

API Copiarum Subsidiariarum

Copias reservatas servorum programmatice administra. Copias reservatas servorum tuorum enumera, crea, restitue, et dele.

Extrema 3 endpoints
Via Basis /api/v1/backups
ACQUIRE /api/v1/backups/

Enumera Omnes Copias Subsidiarias

Indicem omnium copiarum reservatarum per servitores tuos recupera.

Parametri Quaestionis

Parametrum Typus Requisitum Descriptio
server_id integer Non Filtra copias reservatas secundum identificationem servi
backup_type string Non Filtra secundum genus: manual , automatic

Exemplum Petitionis

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

Exemplum Responsionis

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

Codices Status Responsorum

200 Index copiarum reservatarum feliciter recuperatus est.
401 Non auctorizatus - Tessera authenticationis invalida vel absens
POST /api/v1/backups/

Creare Copiam Manualem

Crea exemplar manuale servi. Exemplaria manualia non sponte exspirant.

Parametri Corporis Petitionis

Parametrum Typus Requisitum Descriptio
server_id integer Ita Identificatio servi ad servandum
description string Non Descriptio facultativa pro subsidio

Exemplum Petitionis

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

Exemplum Responsionis

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

Codices Status Responsorum

201 Creatio subsidii feliciter incepta est
400 Petitio Mala - Parametri invalidi vel petitio male formata
401 Non auctorizatus - Tessera authenticationis invalida vel absens
404 Non Inventus - Servus non existit
Nota: Maximum decem exemplaria manualia per servitorem habere potes. Exemplaria automatica secundum rationem conservationis exemplarium consilii tui servantur (plerumque dies septem ad triginta).
DELE /api/v1/backups/{backup_id}/

Dele Copia Subsidiaria

Copiam secundariam perpetuo delere. Haec actio non potest irrita fieri.

Parametri Semitae

Parametrum Typus Requisitum Descriptio
backup_id integer Ita Identificatio singularis subsidiaria

Exemplum Petitionis

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

Codices Status Responsorum

204 Copia reservata feliciter deleta est
401 Non auctorizatus - Tessera authenticationis invalida vel absens
404 Non Inventum - Copia subsidiaria non exstat.
Monitio: Delere exemplar secundarium perpetuum est nec revocari potest. Fac ut hoc exemplar secundarium iam non egeas antequam id deleas.

Restitutio ex exemplaribus reservatis

Ad servatorem ex exemplari reservato restituendum, terminum restaurationis API Servorum utere:

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

De restitutione servitoris, vide [vel fortasse:] Documentatio API servorum.

Optimae Usus Subsidiorum