VPS.org API

REST API Documentation

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

Parameter Typus Requisitum Description
server_id integer No Filtra copias reservatas secundum identificationem servi
backup_type string No Filter by type: 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

Parameter Typus Requisitum Description
server_id integer Ita Identificatio servi ad servandum
description string No 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
Note: 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

Parameter Typus Requisitum Description
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