VPS.org API

REST API Documentation

API ya Vijipicha

Dhibiti picha za seva kwa ajili ya urejeshaji wa haraka wa wakati unaofaa. Picha za skrini hunasa hali kamili ya seva yako.

Sehemu za Mwisho 4 endpoints
Njia ya Msingi /api/v1/snapshots
PATA /api/v1/snapshots/

Orodhesha Picha Zote Muhtasari

Pata orodha ya picha zote kwenye seva zako.

Vigezo vya Hoja

Parameter Aina Inahitajika Description
server_id integer No Chuja picha kwa kitambulisho cha seva

Ombi la Mfano

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

Jibu la Mfano

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

Misimbo ya Hali ya Majibu

200 Imefanikiwa kurejesha orodha ya picha
401 Hairuhusiwi - Tokeni ya uthibitishaji si sahihi au haipo
POST /api/v1/snapshots/

Unda Picha Muhtasari

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

Omba Vigezo vya Mwili

Parameter Aina Inahitajika Description
server_id integer Ndiyo Kitambulisho cha seva cha kupiga picha
name string Ndiyo Jina la picha (alfabeti, vistari, mistari ya chini)
description string No Maelezo ya hiari kwa picha

Ombi la Mfano

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

Jibu la Mfano

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

Misimbo ya Hali ya Majibu

201 Uundaji wa picha umeanzishwa kwa mafanikio
400 Bad Request - Invalid parameters or snapshot limit reached
401 Hairuhusiwi - Tokeni ya uthibitishaji si sahihi au haipo
404 Not Found - Server does not exist
Note: 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.
POST /api/v1/snapshots/{snapshot_id}/restore/

Rejesha kutoka kwa Picha ya Muhtasari

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

Vigezo vya Njia

Parameter Aina Inahitajika Description
snapshot_id integer Ndiyo Kitambulisho cha picha cha kipekee

Ombi la Mfano

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

Jibu la Mfano

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

Misimbo ya Hali ya Majibu

200 Urejeshaji umeanzishwa kwa mafanikio
400 Bad Request - Server is not in a valid state for restoration
401 Hairuhusiwi - Tokeni ya uthibitishaji si sahihi au haipo
404 Haipatikani - Picha ya haraka haipo
Onyo: 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.
FUTA /api/v1/snapshots/{snapshot_id}/

Futa Muhtasari

Futa picha ya moja kwa moja. Kitendo hiki hakiwezi kutenduliwa.

Vigezo vya Njia

Parameter Aina Inahitajika Description
snapshot_id integer Ndiyo Kitambulisho cha picha cha kipekee

Ombi la Mfano

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)

Misimbo ya Hali ya Majibu

204 Picha ya haraka imefutwa kwa mafanikio
401 Hairuhusiwi - Tokeni ya uthibitishaji si sahihi au haipo
404 Haipatikani - Picha ya haraka haipo

Snapshots vs Backups

Understanding when to use snapshots versus backups:

API ya Vijipicha

  • Kusudi: Quick point-in-time recovery
  • Kasi: Faster to create and restore (3-15 min)
  • Kesi ya Matumizi: Before risky operations (updates, config changes)
  • Hifadhi: Stored on same infrastructure
  • Limit: 5 snapshots per server
  • Bora kwa: Short-term rollback capability

API ya Hifadhi Rudufu

  • Kusudi: Long-term data protection
  • Kasi: Slower to create and restore (varies)
  • Kesi ya Matumizi: Regular automated data protection
  • Hifadhi: Separate backup storage
  • Limit: 10 manual + automatic backups
  • Bora kwa: Disaster recovery and compliance

Best Practices