VPS.org API

وثائق REST API

واجهة برمجة تطبيقات النسخ الاحتياطي

قائمة النسخ الاحتياطي لخوادمك، بدء نسخ احتياطي جديد واستعادة الخادم من واحد.

نقاط النهاية 4
المسار الأساسي /api/v1/backups
يحصل /api/v1/backups/

عرض جميع النسخ الاحتياطية

يعيد النسخ الاحتياطية من جميع خوادمك، أحدث أولاً، 25 لكل صفحة. لا يوجد مرشح الخادم: استخدم server_ hostname لتجميعهم.

الإذن المطلوب: backups:list

معلمات الاستعلام

البارامترات يكتب مطلوب وصف المشروع
page integer لا رقم الصفحة، بدءا من ١

مثال على الطلب

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/backups/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/backups/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for backup in response.json()["results"]:
    print(backup["id"], backup["server_hostname"], backup["created_at"])
const response = await fetch('https://admin.vps.org/api/v1/backups/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

مثال على الاستجابة

{
  "count": 96,
  "next": "https://admin.vps.org/api/v1/backups/?page=2",
  "previous": null,
  "results": [
    {
      "id": 5512,
      "server_hostname": "web-01",
      "name": "vzdump-qemu-1042-2026_09_14-16_44_10.vma.zst",
      "size_gb": 3.12,
      "deletion_date": "2026-09-21T20:45:40.697512Z",
      "days_remaining": 6,
      "created_at": "2026-09-14T20:45:40.699494Z"
    }
  ]
}

حقول الاستجابة

الميدان يكتب وصف المشروع
id integer هوية النسخ الاحتياطي، المستخدمة من قبل نقاط النهاية للحصول على النسخ الاحتياطية واستعادتها
server_hostname string اسم مضيف الخادم الذي أخذت منه النسخة الاحتياطية
name string اسم ملف الأرشيف الاحتياطي
size_gb number حجم الضغط بالغيغابايت
deletion_date datetime متى يتم إزالة النسخ الاحتياطي تلقائياً
days_remaining integer عدد الأيام الكاملة المتبقية حتى تاريخ الحذف
created_at datetime وقت الإنشاء (ISO 8601، UTC)

رموز حالة الاستجابة

200 استرجعت بنجاح قائمة احتياطية
403 رمز API مفقود أو غير صحيح، أو يفتقر الرمز إلى الإذن المطلوب
يحصل /api/v1/backups/{id}/

احصل على نسخة احتياطية

يعيد كائن احتياطي واحد مع الحقول أعلاه.

curl -X GET "https://admin.vps.org/api/v1/backups/5512/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
الوظائف /api/v1/servers/{uuid}/backup/

إنشاء نسخة احتياطية

يقوم بتصفية نسخة احتياطية من خادم منشر. لا يلزم وجود جسد طلب. يظهر النسخ الاحتياطي في القائمة بمجرد الانتهاء منه، وهو ما قد يستغرق عدة دقائق اعتماداً على استخدام القرص.

الإذن المطلوب: servers:backup

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/backup/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/backup/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers)
print(response.json())

مثال على الاستجابة

{
  "message": "Backup queued successfully"
}

رموز حالة الاستجابة

200 تم وضع العمل في صف
400 لم ينشر حاسوب خدمة الشبكة بعد
402 عدم وجود طريقة دفع في الملف، أو فواتير غير مدفوعة
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر
الوظائف /api/v1/backups/{id}/restore/

استعادة الخادم من النسخ الاحتياطي

يوقف الخادم الذي أخذ منه النسخ الاحتياطي، ويكتب على قرصه بالنسخ الاحتياطي ويبدأه مرة أخرى. لا يلزم وجود جسد طلب. حالة الخادم هي صف بينما يجري الاستعادة.

الإذن المطلوب: backups:restore

curl -X POST "https://admin.vps.org/api/v1/backups/5512/restore/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Backup restore queued. The server will be stopped, restored, and restarted.",
  "backup": "vzdump-qemu-1042-2026_09_14-16_44_10.vma.zst",
  "job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}
تحذير: كل ما كتب إلى الخادم بعد أن تم أخذ النسخ الاحتياطي سوف يفقدها. لا يمكن إلغاء الاستعادة.

رموز حالة الاستجابة

200 تم وضع العمل في صف
400 لم ينشر حاسوب خدمة الشبكة بعد
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر

حواشي