VPS.org API

REST API-documentatie

Snapshots API

Beheer serversnapshots voor snelle herstel naar een specifiek tijdstip. Snapshots leggen de volledige status van uw server vast.

Eindpunten 4 endpoints
Basispad /api/v1/snapshots
KRIJGEN /api/v1/snapshots/

Alle momentopnamen weergeven

Vraag een lijst op van alle snapshots op uw servers.

Queryparameters

Parameter Type Vereist Beschrijving
server_id integer Nee Filter snapshots op server-ID

Voorbeeldverzoek

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

Responsstatuscodes

200 Momentopnamenlijst succesvol opgehaald
401 Niet geautoriseerd - Ongeldig of ontbrekend authenticatietoken
NA /api/v1/snapshots/

Maak een momentopname

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

Parameters van de aanvraagbody

Parameter Type Vereist Beschrijving
server_id integer Ja ID van de server waarvan een momentopname moet worden gemaakt
name string Ja Naam voor de momentopname (alfanumeriek, koppeltekens, underscores)
description string Nee Optionele beschrijving voor de momentopname

Voorbeeldverzoek

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

Responsstatuscodes

201 Het aanmaken van de momentopname is succesvol gestart.
400 Bad Request - Invalid parameters or snapshot limit reached
401 Niet geautoriseerd - Ongeldig of ontbrekend authenticatietoken
404 Not Found - Server does not exist
Opmerking: 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.
NA /api/v1/snapshots/{snapshot_id}/restore/

Herstellen vanuit momentopname

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

Padparameters

Parameter Type Vereist Beschrijving
snapshot_id integer Ja Unieke momentopname-ID

Voorbeeldverzoek

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

Responsstatuscodes

200 Herstel succesvol gestart
400 Bad Request - Server is not in a valid state for restoration
401 Niet geautoriseerd - Ongeldig of ontbrekend authenticatietoken
404 Niet gevonden - Momentopname bestaat niet
Waarschuwing: 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.
VERWIJDEREN /api/v1/snapshots/{snapshot_id}/

Momentopname verwijderen

Een momentopname permanent verwijderen. Deze actie kan niet ongedaan worden gemaakt.

Padparameters

Parameter Type Vereist Beschrijving
snapshot_id integer Ja Unieke momentopname-ID

Voorbeeldverzoek

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)

Responsstatuscodes

204 Momentopname succesvol verwijderd
401 Niet geautoriseerd - Ongeldig of ontbrekend authenticatietoken
404 Niet gevonden - Momentopname bestaat niet

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots API

  • Doel: Quick point-in-time recovery
  • Snelheid: Faster to create and restore (3-15 min)
  • Gebruiksscenario: Before risky operations (updates, config changes)
  • Opslag: Stored on same infrastructure
  • Beperken: 5 snapshots per server
  • Het meest geschikt voor: Short-term rollback capability

Backups API

  • Doel: Long-term data protection
  • Snelheid: Slower to create and restore (varies)
  • Gebruiksscenario: Regular automated data protection
  • Opslag: Separate backup storage
  • Beperken: 10 manual + automatic backups
  • Het meest geschikt voor: Disaster recovery and compliance

Best Practices