VPS.org API

REST API Dokumentaro

API por sekurkopioj

Administru servilajn sekurkopiojn programece. Listigu, kreu, restarigu kaj forigu sekurkopiojn por viaj serviloj.

Finpunktoj 3 endpoints
Baza Pado /api/v1/backups
AKIRU /api/v1/backups/

Listigi Ĉiujn Sekurkopiojn

Akiri liston de ĉiuj sekurkopioj tra viaj serviloj.

Demandparametroj

Parametro Tipo Bezonata Priskribo
server_id integer Ne Filtri sekurkopiojn laŭ servila ID
backup_type string Ne Filtri laŭ tipo: manual , automatic

Ekzempla Peto

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

Ekzempla Respondo

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

Respondaj Statusaj Kodoj

200 Sukcese prenita sekurkopia listo
401 Neaŭtorizita - Malvalida aŭ mankanta aŭtentiga ĵetono
POŜTO /api/v1/backups/

Krei Manan Sekurkopion

Kreu manan sekurkopion de servilo. Manaj sekurkopioj ne eksvalidiĝas aŭtomate.

Parametroj de la petokorpo

Parametro Tipo Bezonata Priskribo
server_id integer Jes ID de la servilo por sekurkopio
description string Ne Laŭvola priskribo por la sekurkopio

Ekzempla Peto

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

Ekzempla Respondo

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

Respondaj Statusaj Kodoj

201 Kreado de sekurkopio sukcese komencita
400 Malbona Peto - Malvalidaj parametroj aŭ misformita peto
401 Neaŭtorizita - Malvalida aŭ mankanta aŭtentiga ĵetono
404 Ne trovita - Servilo ne ekzistas
Noto: Vi povas havi maksimume 10 manajn sekurkopiojn por ĉiu servilo. Aŭtomataj sekurkopioj estas konservataj laŭ la politiko de via plano pri konservado de sekurkopioj (tipe 7-30 tagoj).
FORIGI /api/v1/backups/{backup_id}/

Forigi sekurkopion

Forigi sekurkopion por ĉiam. Ĉi tiu ago ne povas esti malfarita.

Padaj Parametroj

Parametro Tipo Bezonata Priskribo
backup_id integer Jes Unika rezerva ID

Ekzempla Peto

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

Respondaj Statusaj Kodoj

204 Sekurkopio sukcese forigita
401 Neaŭtorizita - Malvalida aŭ mankanta aŭtentiga ĵetono
404 Ne trovita - Sekurkopio ne ekzistas
Averto: Forigi sekurkopion estas permanenta kaj ne povas esti malfarita. Certigu, ke vi jam ne bezonas ĉi tiun sekurkopion antaŭ ol forigi ĝin.

Restaŭrado el sekurkopioj

Por restarigi servilon el sekurkopio, uzu la restarigan finpunkton de la Serviloj API :

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

Por detalaj informoj pri servila restarigo, vidu la Dokumentaro pri Serviloj API.

Plej Bonaj Praktikoj pri Rezervo