VPS.org API

REST API-dokumentasie

Snapshots API

Bestuur bedienerkiekies vir vinnige herstel op 'n spesifieke tydstip. Kikies lê die volledige toestand van jou bediener vas.

Eindpunte 4 endpoints
Basispad /api/v1/snapshots
KRY /api/v1/snapshots/

Lys alle momentopnames

Kry 'n lys van alle kiekies op jou bedieners.

Navraagparameters

Parameter Tipe Vereis Beskrywing
server_id integer Nee Filter momentopnames volgens bediener-ID

Voorbeeldversoek

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

Voorbeeldantwoord

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

Reaksiestatuskodes

200 Suksesvol opgehaalde kiekielys
401 Ongemagtig - Ongeldige of ontbrekende verifikasietoken
POS /api/v1/snapshots/

Skep momentopname

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

Versoekliggaamparameters

Parameter Tipe Vereis Beskrywing
server_id integer Ja ID van die bediener om te neem
name string Ja Naam vir die momentopname (alfanumeries, koppeltekens, onderstrepe)
description string Nee Opsionele beskrywing vir die momentopname

Voorbeeldversoek

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

Voorbeeldantwoord

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

Reaksiestatuskodes

201 Skepping van momentopname suksesvol geïnisieer
400 Bad Request - Invalid parameters or snapshot limit reached
401 Ongemagtig - Ongeldige of ontbrekende verifikasietoken
404 Not Found - Server does not exist
Let wel: 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.
POS /api/v1/snapshots/{snapshot_id}/restore/

Herstel vanaf momentopname

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

Padparameters

Parameter Tipe Vereis Beskrywing
snapshot_id integer Ja Unieke momentopname-ID

Voorbeeldversoek

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

Voorbeeldantwoord

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

Reaksiestatuskodes

200 Herstel suksesvol geïnisieer
400 Bad Request - Server is not in a valid state for restoration
401 Ongemagtig - Ongeldige of ontbrekende verifikasietoken
404 Nie gevind nie - Momentopname bestaan nie
Waarskuwing: 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.
VERWYDER /api/v1/snapshots/{snapshot_id}/

Vee momentopname uit

Vee 'n momentopname permanent uit. Hierdie aksie kan nie ongedaan gemaak word nie.

Padparameters

Parameter Tipe Vereis Beskrywing
snapshot_id integer Ja Unieke momentopname-ID

Voorbeeldversoek

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)

Reaksiestatuskodes

204 Snapshot suksesvol uitgevee
401 Ongemagtig - Ongeldige of ontbrekende verifikasietoken
404 Nie gevind nie - Momentopname bestaan nie

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots API

  • Doel: Quick point-in-time recovery
  • Spoed: Faster to create and restore (3-15 min)
  • Gebruiksgeval: Before risky operations (updates, config changes)
  • Berging: Stored on same infrastructure
  • Limiet: 5 snapshots per server
  • Beste vir: Short-term rollback capability

Rugsteun-API

  • Doel: Long-term data protection
  • Spoed: Slower to create and restore (varies)
  • Gebruiksgeval: Regular automated data protection
  • Berging: Separate backup storage
  • Limiet: 10 manual + automatic backups
  • Beste vir: Disaster recovery and compliance

Best Practices