VPS.org API

REST-API-Dokumentation

Snapshots-API

Verwalten Sie Server-Snapshots für die schnelle Wiederherstellung zu einem bestimmten Zeitpunkt. Snapshots erfassen den vollständigen Zustand Ihres Servers.

Endpunkte 4 endpoints
Basispfad /api/v1/snapshots
ERHALTEN /api/v1/snapshots/

Alle Schnappschüsse auflisten

Ruft eine Liste aller Snapshots auf Ihren Servern ab.

Abfrageparameter

Parameter Typ Erforderlich Beschreibung
server_id integer NEIN Snapshots nach Server-ID filtern

Beispielanfrage

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

Beispielantwort

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

Antwortstatuscodes

200 Snapshot-Liste erfolgreich abgerufen
401 Nicht autorisiert – Ungültiges oder fehlendes Authentifizierungstoken
POST /api/v1/snapshots/

Snapshot erstellen

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

Anfragekörperparameter

Parameter Typ Erforderlich Beschreibung
server_id integer Ja ID des Servers, für den ein Snapshot erstellt werden soll
name string Ja Name für den Snapshot (alphanumerisch, Bindestriche, Unterstriche)
description string NEIN Optionale Beschreibung für den Snapshot

Beispielanfrage

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

Beispielantwort

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

Antwortstatuscodes

201 Snapshot-Erstellung erfolgreich gestartet
400 Bad Request - Invalid parameters or snapshot limit reached
401 Nicht autorisiert – Ungültiges oder fehlendes Authentifizierungstoken
404 Not Found - Server does not exist
Notiz: 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/

Wiederherstellung aus Snapshot

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

Pfadparameter

Parameter Typ Erforderlich Beschreibung
snapshot_id integer Ja Eindeutige Snapshot-ID

Beispielanfrage

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

Beispielantwort

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

Antwortstatuscodes

200 Wiederherstellung erfolgreich gestartet
400 Bad Request - Server is not in a valid state for restoration
401 Nicht autorisiert – Ungültiges oder fehlendes Authentifizierungstoken
404 Nicht gefunden – Snapshot existiert nicht.
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

Ein Snapshot wird endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.

Pfadparameter

Parameter Typ Erforderlich Beschreibung
snapshot_id integer Ja Eindeutige Snapshot-ID

Beispielanfrage

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)

Antwortstatuscodes

204 Snapshot erfolgreich gelöscht
401 Nicht autorisiert – Ungültiges oder fehlendes Authentifizierungstoken
404 Nicht gefunden – Snapshot existiert nicht.

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots-API

  • Zweck: Quick point-in-time recovery
  • Geschwindigkeit: Faster to create and restore (3-15 min)
  • Anwendungsfall: Before risky operations (updates, config changes)
  • Lagerung: Stored on same infrastructure
  • Limit: 5 snapshots per server
  • Am besten geeignet für: Short-term rollback capability

Backups-API

  • Zweck: Long-term data protection
  • Geschwindigkeit: Slower to create and restore (varies)
  • Anwendungsfall: Regular automated data protection
  • Lagerung: Separate backup storage
  • Limit: 10 manual + automatic backups
  • Am besten geeignet für: Disaster recovery and compliance

Best Practices