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 ها سنيپ شاٽ لاءِ سرور جي سڃاڻپ
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