VPS.org API

REST API دستاویزات

سنیپ شاٹس API

فوری پوائنٹ ان ٹائم بحالی کے لیے سرور کے اسنیپ شاٹس کا نظم کریں۔ سنیپ شاٹس آپ کے سرور کی مکمل حالت کو پکڑتے ہیں۔

اینڈ پوائنٹس 4 endpoints
بنیاد کا راستہ /api/v1/snapshots
حاصل کریں۔ /api/v1/snapshots/

تمام سنیپ شاٹس کی فہرست بنائیں

اپنے سرورز پر تمام سنیپ شاٹس کی فہرست بازیافت کریں۔

سوال کے پیرامیٹرز

پیرامیٹر قسم درکار ہے۔ تفصیل
server_id integer نہیں سرور ID کے ذریعہ سنیپ شاٹس کو فلٹر کریں۔

مثال کی درخواست

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/snapshots/?server_id=12345" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/snapshots/"
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/snapshots/?server_id=12345', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const snapshots = await response.json();
console.log(snapshots);

مثال کا جواب

{
  "count": 2,
  "results": [
    {
      "id": 801,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "pre-migration-snapshot",
      "status": "completed",
      "size_mb": 5120,
      "created_at": "2025-01-15T18:30:00Z",
      "description": "Before major migration"
    },
    {
      "id": 798,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "weekly-snapshot-2025-01-08",
      "status": "completed",
      "size_mb": 4856,
      "created_at": "2025-01-08T12:00:00Z",
      "description": "Weekly snapshot"
    }
  ]
}

رسپانس اسٹیٹس کوڈز

200 سنیپ شاٹ کی فہرست کامیابی کے ساتھ بازیافت ہوئی۔
401 غیر مجاز - غلط یا گم شدہ تصدیقی ٹوکن
پوسٹ /api/v1/snapshots/

سنیپ شاٹ بنائیں

Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.

جسمانی پیرامیٹرز کی درخواست کریں۔

پیرامیٹر قسم درکار ہے۔ تفصیل
server_id integer جی ہاں سنیپ شاٹ کے لیے سرور کی ID
name string جی ہاں اسنیپ شاٹ کے لیے نام (الفانیومیرک، ہائفنز، انڈر سکور)
description string نہیں سنیپ شاٹ کے لیے اختیاری تفصیل

مثال کی درخواست

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/snapshots/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
  }'
import requests

url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/snapshots/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    server_id: 12345,
    name: 'before-update-snapshot',
    description: 'Snapshot before system update'
  })
});

const snapshot = await response.json();
console.log(snapshot);

مثال کا جواب

{
  "id": 802,
  "server": {
    "id": 12345,
    "name": "web-server-01"
  },
  "name": "before-update-snapshot",
  "status": "in_progress",
  "size_mb": null,
  "created_at": "2025-01-16T16:15:00Z",
  "description": "Snapshot before system update",
  "message": "Snapshot is being created. This may take 3-10 minutes depending on server size."
}

رسپانس اسٹیٹس کوڈز

201 سنیپ شاٹ کی تخلیق کامیابی کے ساتھ شروع ہو گئی۔
400 Bad Request - Invalid parameters or snapshot limit reached
401 غیر مجاز - غلط یا گم شدہ تصدیقی ٹوکن
404 Not Found - Server does not exist
نوٹ: You can have a maximum of 5 snapshots per server. Creating a snapshot while the server is running may result in filesystem inconsistencies. For best results, stop the server before creating a snapshot.
پوسٹ /api/v1/snapshots/{snapshot_id}/restore/

سنیپ شاٹ سے بحال کریں۔

Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.

راستے کے پیرامیٹرز

پیرامیٹر قسم درکار ہے۔ تفصیل
snapshot_id integer جی ہاں منفرد سنیپ شاٹ ID

مثال کی درخواست

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/snapshots/801/restore/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/restore/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers)
print(response.json())
const snapshotId = 801;
const response = await fetch(`https://admin.vps.org/api/v1/snapshots/${snapshotId}/restore/`, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const result = await response.json();
console.log(result);

مثال کا جواب

{
  "status": "success",
  "message": "Server is being restored from snapshot. This may take 5-15 minutes.",
  "snapshot": {
    "id": 801,
    "name": "pre-migration-snapshot",
    "created_at": "2025-01-15T18:30:00Z"
  },
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "restoring"
  }
}

رسپانس اسٹیٹس کوڈز

200 بحالی کامیابی سے شروع ہو گئی۔
400 Bad Request - Server is not in a valid state for restoration
401 غیر مجاز - غلط یا گم شدہ تصدیقی ٹوکن
404 نہیں ملا - سنیپ شاٹ موجود نہیں ہے۔
انتباہ: Restoring from a snapshot will overwrite all current data on the server. This action cannot be undone. The server will be automatically stopped before restoration begins.
حذف کریں۔ /api/v1/snapshots/{snapshot_id}/

سنیپ شاٹ کو حذف کریں۔

اسنیپ شاٹ کو مستقل طور پر حذف کریں۔ اس کارروائی کو کالعدم نہیں کیا جا سکتا۔

راستے کے پیرامیٹرز

پیرامیٹر قسم درکار ہے۔ تفصیل
snapshot_id integer جی ہاں منفرد سنیپ شاٹ ID

مثال کی درخواست

cURL
Python
curl -X DELETE "https://admin.vps.org/api/v1/snapshots/801/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)
print(response.status_code)

رسپانس اسٹیٹس کوڈز

204 سنیپ شاٹ کامیابی کے ساتھ حذف ہو گیا۔
401 غیر مجاز - غلط یا گم شدہ تصدیقی ٹوکن
404 نہیں ملا - سنیپ شاٹ موجود نہیں ہے۔

Snapshots vs Backups

Understanding when to use snapshots versus backups:

سنیپ شاٹس API

  • مقصد: Quick point-in-time recovery
  • رفتار: Faster to create and restore (3-15 min)
  • کیس استعمال کریں: Before risky operations (updates, config changes)
  • ذخیرہ: Stored on same infrastructure
  • حد: 5 snapshots per server
  • کے لیے بہترین: Short-term rollback capability

بیک اپ API

  • مقصد: Long-term data protection
  • رفتار: Slower to create and restore (varies)
  • کیس استعمال کریں: Regular automated data protection
  • ذخیرہ: Separate backup storage
  • حد: 10 manual + automatic backups
  • کے لیے بہترین: Disaster recovery and compliance

Best Practices