VPS.org API

Документация за REST API

API за резервни копия

Управлявайте резервните копия на сървърите програмно. Изброявайте, създавайте, възстановявайте и изтривайте резервни копия за вашите сървъри.

Крайни точки 3 endpoints
Базов път /api/v1/backups
ПОЛУЧИ /api/v1/backups/

Списък на всички резервни копия

Извлечете списък с всички резервни копия на вашите сървъри.

Параметри на заявката

Параметър Тип Задължително Описание
server_id integer Не Филтриране на резервни копия по идентификатор на сървъра
backup_type string Не Филтриране по вид: manual , automatic

Примерна заявка

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

Примерен отговор

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

Кодове за състояние на отговора

200 Списъкът с резервни копия е успешно извлечен
401 Неоторизирано - Невалиден или липсващ токен за удостоверяване
ПУБЛИКАЦИЯ /api/v1/backups/

Създаване на ръчно архивиране

Създайте ръчно резервно копие на сървър. Ръчните резервни копия не изтичат автоматично.

Заявка за параметри на тялото

Параметър Тип Задължително Описание
server_id integer Да Идентификатор на сървъра за архивиране
description string Не Незадължително описание за резервното копие

Примерна заявка

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

Примерен отговор

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

Кодове за състояние на отговора

201 Създаването на резервно копие започна успешно
400 Невалидна заявка - Невалидни параметри или деформирана заявка
401 Неоторизирано - Невалиден или липсващ токен за удостоверяване
404 Не е намерен - Сървърът не съществува
Забележка: Можете да имате максимум 10 ръчни резервни копия на сървър. Автоматичните резервни копия се съхраняват въз основа на политиката за съхранение на резервни копия на вашия план (обикновено 7-30 дни).
ИЗТРИВАНЕ /api/v1/backups/{backup_id}/

Изтриване на резервно копие

Изтриване на резервно копие за постоянно. Това действие не може да бъде отменено.

Параметри на пътя

Параметър Тип Задължително Описание
backup_id integer Да Уникален идентификатор за резервно копие

Примерна заявка

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

Кодове за състояние на отговора

204 Резервното копие е изтрито успешно
401 Неоторизирано - Невалиден или липсващ токен за удостоверяване
404 Не е намерено - Резервно копие не съществува
Предупреждение: Изтриването на резервно копие е окончателно и не може да бъде отменено. Уверете се, че вече не се нуждаете от това резервно копие, преди да го изтриете.

Възстановяване от резервни копия

За да възстановите сървър от резервно копие, използвайте крайната точка за възстановяване на Servers API :

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

За подробна информация относно възстановяването на сървъра вижте Документация за API на сървърите.

Най-добри практики за архивиране