VPS.org API

REST API Dokumentatioun

Snapshots API

Verwalt Server-Snapshots fir eng séier Restauratioun zu engem bestëmmten Zäitpunkt. Snapshots erfaassen de komplette Zoustand vun Ärem Server.

Endpunkten 4 endpoints
Basiswee /api/v1/snapshots
KRITT /api/v1/snapshots/

All Schnappschëss oplëschten

Ruft eng Lëscht vun alle Snapshots op Äre Serveren un.

Ufroparameteren

Parameter Typ Erfuerderlech Beschreiwung
server_id integer Nee Filtert Snapshots no Server-ID

Beispill Ufro

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

Beispill Äntwert

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

Äntwertstatuscoden

200 Snapshot-Lëscht erfollegräich ofgeruff
401 Net autoriséiert - Ongültegen oder fehlenden Authentifikatiounstoken
POST /api/v1/snapshots/

Schnappschëss erstellen

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

Parameter vum Ufro-Kierper

Parameter Typ Erfuerderlech Beschreiwung
server_id integer Jo ID vum Server fir de Snapshot ze maachen
name string Jo Numm fir de Snapshot (alphanumeresch, Bindestrécher, Ënnersträicher)
description string Nee Optional Beschreiwung fir de Snapshot

Beispill Ufro

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

Beispill Äntwert

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

Äntwertstatuscoden

201 D'Erstellung vum Snapshot ass erfollegräich gestart
400 Bad Request - Invalid parameters or snapshot limit reached
401 Net autoriséiert - Ongültegen oder fehlenden Authentifikatiounstoken
404 Not Found - Server does not exist
Bemierkung: 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/

Vum Snapshot restauréieren

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

Weeparameter

Parameter Typ Erfuerderlech Beschreiwung
snapshot_id integer Jo Eenzegaarteg Snapshot-ID

Beispill Ufro

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

Beispill Äntwert

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

Äntwertstatuscoden

200 Restauratioun erfollegräich gestart
400 Bad Request - Server is not in a valid state for restoration
401 Net autoriséiert - Ongültegen oder fehlenden Authentifikatiounstoken
404 Net fonnt - Snapshot existéiert net
Warnung: 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.
LÄSCHEN /api/v1/snapshots/{snapshot_id}/

Snapshot läschen

E Snapshot permanent läschen. Dës Aktioun kann net réckgängeg gemaach ginn.

Weeparameter

Parameter Typ Erfuerderlech Beschreiwung
snapshot_id integer Jo Eenzegaarteg Snapshot-ID

Beispill Ufro

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)

Äntwertstatuscoden

204 Snapshot erfollegräich geläscht
401 Net autoriséiert - Ongültegen oder fehlenden Authentifikatiounstoken
404 Net fonnt - Snapshot existéiert net

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots API

  • Zweck: Quick point-in-time recovery
  • Geschwindegkeet: Faster to create and restore (3-15 min)
  • Benotzungsfall: Before risky operations (updates, config changes)
  • Späicherung: Stored on same infrastructure
  • Limit: 5 snapshots per server
  • Am beschten fir: Short-term rollback capability

Backups API

  • Zweck: Long-term data protection
  • Geschwindegkeet: Slower to create and restore (varies)
  • Benotzungsfall: Regular automated data protection
  • Späicherung: Separate backup storage
  • Limit: 10 manual + automatic backups
  • Am beschten fir: Disaster recovery and compliance

Best Practices