VPS.org API

REST API بەڵگەنامە

API-ya Wêneyên Snapşê

Wêneyên serverê ji bo vegerandina bilez a di demek diyarkirî de birêve bibin. Wêne rewşa tevahî ya servera we tomar dikin.

Xalên Dawî 4 endpoints
Riya bingehîn /api/v1/snapshots
STENDIN /api/v1/snapshots/

Hemû Wêneyên Snapkirî Bilîze

Lîsteyek ji hemî wêneyên demkî li ser serverên xwe bistînin.

Parametreyên Lêpirsînê

پارامەتر Awa Pêwîst باسکردن
server_id integer نەخێر Wêneyên li gorî nasnameya serverê parzûn bikin

Daxwaza Nimûne

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

Bersiva Mînakî

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

Kodên Rewşa Bersivê

200 Lîsteya wêneyên wêneyî bi serkeftî hat wergirtin
401 Bêdestûr - Nîşana pejirandinê ya nederbasdar an jî winda
پۆست /api/v1/snapshots/

Wêneyekî Biafirîne

وێنەیەکی ماوە درێژ دروست بکە لە حاڵەتی ئێستای خزمەتگوزارەکە. وێنەی ماوە درێژەکان کۆپییەکی کاتین لە هەموو خزمەتگوزارەکە.

Parametreyên Laşê Daxwazê

پارامەتر Awa Pêwîst باسکردن
server_id integer Erê Nasnameya serverê ji bo wênekêşanê
name string Erê Navê wêneyê (alfanumerîk, xêz, xêzên jêrîn)
description string نەخێر Ravekirina bijarte ji bo wêneyê

Daxwaza Nimûne

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

Bersiva Mînakî

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

Kodên Rewşa Bersivê

201 Çêkirina wêneyekî bi serkeftî dest pê kir
400 Bad Request - Invalid parameters or snapshot limit reached
401 Bêdestûr - Nîşana pejirandinê ya nederbasdar an jî winda
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/

Ji Wêneyê Vegerîne

دابەشکەرێک بگەڕێنەوە بۆ ئەو حاڵەتەی کە لە وێنەی کێشراودا گیراوە. ئەمە هەموو زانیارییەکانی ئێستا لەسەر دابەشکەرەکە دەنوسێت.

Parametreyên Rêyê

پارامەتر Awa Pêwîst باسکردن
snapshot_id integer Erê Nasnameya wêneyî ya bêhempa

Daxwaza Nimûne

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

Bersiva Mînakî

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

Kodên Rewşa Bersivê

200 Vegerandin bi serkeftî dest pê kir
400 Bad Request - Server is not in a valid state for restoration
401 Bêdestûr - Nîşana pejirandinê ya nederbasdar an jî winda
404 Nehat Dîtin - Wêneyek tune ye
Gazî: 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.
JÊBIRIN /api/v1/snapshots/{snapshot_id}/

Wêneyê Jê Bibe

Wêneyekî bi awayekî mayînde jê bibe. Ev çalakî nayê vegerandin.

Parametreyên Rêyê

پارامەتر Awa Pêwîst باسکردن
snapshot_id integer Erê Nasnameya wêneyî ya bêhempa

Daxwaza Nimûne

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)

Kodên Rewşa Bersivê

204 Wêneya wêneyê bi serkeftî hat jêbirin
401 Bêdestûr - Nîşana pejirandinê ya nederbasdar an jî winda
404 Nehat Dîtin - Wêneyek tune ye

Snapshots vs Backups

تێگەیشتن لەکاتی بەکارهێنانی وێنەکان بەرامبەر بە پشتگیری:

API-ya Wêneyên Snapşê

  • Armanc: Quick point-in-time recovery
  • Zûbûnî: Faster to create and restore (3-15 min)
  • Rewşa Bikaranînê: Before risky operations (updates, config changes)
  • Embarkirinî: Stored on same infrastructure
  • سنوور: 5 snapshots per server
  • Baştirîn Ji Bo: Short-term rollback capability

API-ya hilanînê

  • Armanc: Long-term data protection
  • Zûbûnî: Slower to create and restore (varies)
  • Rewşa Bikaranînê: Regular automated data protection
  • Embarkirinî: Separate backup storage
  • سنوور: 10 manual + automatic backups
  • Baştirîn Ji Bo: Disaster recovery and compliance

باشترین کار